<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sybase数据库技术，数据库恢复专家 &#187; Sybase ASA</title>
	<atom:link href="http://www.dbainfo.net/category/anywhere/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dbainfo.net</link>
	<description>提供Sybase ASE及Sybase SQL Anywhere数据库修复服务，电话：13811580958(微信)，QQ：289965371！We have many years of experience in recovering data from damanged Sybase devices. Contact us by Phone: +86 13811580958 Wechat: 13811580958 Email: 289965371@qq.com</description>
	<lastBuildDate>Sat, 14 Jun 2025 16:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Sybase ASE及SQL Anywhere数据库修复专家</title>
		<link>https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm</link>
		<comments>https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm#comments</comments>
		<pubDate>Thu, 11 Apr 2019 16:15:20 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[ReadASADB]]></category>
		<category><![CDATA[recovery tools]]></category>
		<category><![CDATA[SQL Anywhere]]></category>
		<category><![CDATA[sybase]]></category>
		<category><![CDATA[恢复]]></category>
		<category><![CDATA[恢复工具]]></category>
		<category><![CDATA[物理存储结构]]></category>
		<category><![CDATA[读取设备内容]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=3030</guid>
		<description><![CDATA[专注于Sybase ASE以及Sybase ASA数据库文件的恢复。专注于各种勒索病毒加密数据库的修复。 联系手机： 13811580958（微信），QQ： 289965371！ 郑重承诺，修不好不收费。客户验证数据的正确性后，再付款。 一、Sybase ASE数据库恢复工具READSYBDEVICE主要功能有： &#160;被勒索病毒加密数据文件及备份文件情况下的恢复；&#160; &#160;系统崩溃只剩下数据文件的情况下的恢复，甚至数据库文件不存在而只有损坏的备份文件情况下的恢复； &#160; 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复； &#160; delete数据恢复、误update数据恢复、误删除表(drop）恢复、误truncate表恢复&#160; 等； &#160; 各种sybase内部系统表损坏、索引错误的修复； &#160; master数据库损坏而无法正常运行情况下的恢复； &#160; sybase数据库被标记为可疑，不可用等情况的恢复； &#160; sybase数据库中数据文件内部出现坏块情况下的恢复； &#160; sybase数据库无数据文件但有日志文件的情况下的恢复； &#160;sybase数据库只有数据文件无任何日志文件的情况下的恢复； &#160;sybase数据文件被误删除情况下的碎片提取恢复； &#160;磁盘阵列上的sybase数据库被误格式化情况下的数据库恢复； &#160;数据库sysobjects等系统表损坏无法正常应用情况下的恢复； &#160;sybase数据库还原数据库出现失败情况下的恢复； &#160;sybase数据库只剩下损坏的备份文件情况下的恢复。 &#160; 二、Sybase ASE数据库恢复工具READSYBDEVICE支持的版本： Sybase ASE 11.0.x，11.5.x，11.9.2，12.0.x，12.5.x，15.0.x，15.5.x，15.7.x，16.0.x &#160; 三、Sybase SQL Anywhere （ASA）数据库恢复工具ReadASADB功能： &#160;&#160;&#160;&#160;&#160;&#160; 能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具 &#160;&#160;&#160;&#160; 适用于所有的SQL Anywhere版本&#160;&#160;&#160; 包括：5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x &#160;&#160;&#160; 适用于所有的UltraLite版本 &#160;&#160;&#160; 能够恢复出来表结构和数据 &#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:16px;">专注于Sybase ASE以及Sybase ASA数据库文件的恢复。专注于各种勒索病毒加密数据库的修复。</span></p>
<p><span style="font-size:16px;">联系手机： 13811580958（微信），QQ： 289965371！<br />
	<strong><span style="color:#f00;">郑重承诺，修不好不收费。客户验证数据的正确性后，再付款。</span></strong><br />
	</span></p>
<p><span style="font-size:18px;">一、Sybase ASE数据库恢复工具READSYBDEVICE主要功能有：</span></p>
<ol>
<li><span style="font-size:14px;">&nbsp;被勒索病毒加密数据文件及备份文件情况下的恢复；&nbsp; </span></li>
<li><span style="font-size:14px;">&nbsp;系统崩溃只剩下数据文件的情况下的恢复，甚至数据库文件不存在而只有损坏的备份文件情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; delete数据恢复、误update数据恢复、误删除表(drop）恢复、误truncate表恢复&nbsp; 等；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; 各种sybase内部系统表损坏、索引错误的修复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; master数据库损坏而无法正常运行情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; sybase数据库被标记为可疑，不可用等情况的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; sybase数据库中数据文件内部出现坏块情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp; sybase数据库无数据文件但有日志文件的情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;sybase数据库只有数据文件无任何日志文件的情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;sybase数据文件被误删除情况下的碎片提取恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;磁盘阵列上的sybase数据库被误格式化情况下的数据库恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;数据库sysobjects等系统表损坏无法正常应用情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;sybase数据库还原数据库出现失败情况下的恢复；<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;sybase数据库只剩下损坏的备份文件情况下的恢复。</span></li>
</ol>
<p>&nbsp;</p>
<p>
	<span style="font-size:18px;">二、Sybase ASE数据库恢复工具READSYBDEVICE支持的版本：</span><br />
	<span style="font-size:16px;">Sybase ASE 11.0.x，11.5.x，11.9.2，12.0.x，12.5.x，15.0.x，15.5.x，15.7.x，16.0.x</span></p>
<p>&nbsp;</p>
<p>
	<span style="font-size:18px;"> 三、Sybase SQL Anywhere （ASA）数据库恢复工具ReadASADB功能：</span><br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size:16px;">能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具</span></p>
<ol>
<li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size:14px;">适用于所有的SQL Anywhere版本&nbsp;&nbsp;&nbsp; 包括：5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 适用于所有的UltraLite版本<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够恢复出来表结构和数据<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够恢复自定义数据类型<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够恢复存储过程等对象的语法<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够导出到目标数据库<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够导出到SQL文件并生成导入脚本<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 支持多种字符集&nbsp; 包括：cp850、cp936、gb18030、utf8等<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 能够恢复未加密或者简单加密类型的数据<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp; 简单易用<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp; 限制：不支持AES加密的数据文件</span></li>
</ol>
<p>
	<span style="font-size:18px;">四、Sybase SQL Anywhere （ASA）数据库恢复工具ReadASADB适用场景：</span></p>
<p>	<span style="font-size:16px;">各种误操作：</span></p>
<ol>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 误截断表(truncate table)<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 误删除表(drop table)<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 错误的where条件误删数据<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 误删除db或log文件<br />
		</span></li>
<li><span style="font-size:14px;">&nbsp;&nbsp;&nbsp; 误删除表中的字段<br />
		</span></p>
<p><span id="more-3030"></span></p>
</li>
</ol>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm">https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm">Sybase ASE及SQL Anywhere数据库修复专家</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-06-22 -- <a href="https://www.dbainfo.net/introduce-sql-anywhere-recovery-tool-readasadb.htm" title="Sybase SQL Anywhere(ASA)数据库非常规恢复工具">Sybase SQL Anywhere(ASA)数据库非常规恢复工具</a> (0)</li><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2013-06-02 -- <a href="https://www.dbainfo.net/recovery-tools" title="Sybase数据库恢复工具">Sybase数据库恢复工具</a> (0)</li><li>2013-06-02 -- <a href="https://www.dbainfo.net/2120.htm" title=""></a> (0)</li><li>2012-06-11 -- <a href="https://www.dbainfo.net/i-have-the-tool-can-recover-from-asa-db-file.htm" title="研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具">研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具</a> (3)</li><li>2012-04-11 -- <a href="https://www.dbainfo.net/ase-alter-table-modify-column-default-value.htm" title="ASE修改列的默认值属性">ASE修改列的默认值属性</a> (0)</li><li>2009-11-18 -- <a href="https://www.dbainfo.net/sybase-ase-recovery-tool.htm" title="Sybase Adaptive Server Enterprise(ASE)数据库恢复工具">Sybase Adaptive Server Enterprise(ASE)数据库恢复工具</a> (2)</li><li>2013-09-16 -- <a href="https://www.dbainfo.net/select-random-rows-from-table.htm" title="ASE从表中随机选择数据的三种方法">ASE从表中随机选择数据的三种方法</a> (0)</li><li>2013-09-08 -- <a href="https://www.dbainfo.net/get-current-running-sql.htm" title="查看ASE v15正在执行的SQL语句内容">查看ASE v15正在执行的SQL语句内容</a> (0)</li><li>2013-05-23 -- <a href="https://www.dbainfo.net/rename-sybase-ase-servername.htm" title="修改ASE的服务器名称">修改ASE的服务器名称</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP SQL Anywhere的所有已知BUG列表（8）</title>
		<link>https://www.dbainfo.net/sap-asa-cr-number-8.htm</link>
		<comments>https://www.dbainfo.net/sap-asa-cr-number-8.htm#comments</comments>
		<pubDate>Sat, 07 Mar 2015 17:09:20 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[CR]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2861</guid>
		<description><![CDATA[随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。 只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。 考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。 在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。 需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。 以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！ 不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。 SQL Anywhere的所有已知BUG列表（1） SQL Anywhere的所有已知BUG列表（2） SQL Anywhere的所有已知BUG列表（3） SQL Anywhere的所有已知BUG列表（4） SQL Anywhere的所有已知BUG列表（5） SQL Anywhere的所有已知BUG列表（6） SQL Anywhere的所有已知BUG列表（7） SQL Anywhere的所有已知BUG列表（8） &#160; CR Number Description 740222 When describing a cloud server running on a [...]]]></description>
			<content:encoded><![CDATA[<p><base target="_blank" /></p>
<p>随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。<br />
	只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。<br />
	考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。<br />
	在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。<br />
	需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。<br />
	以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！<br />
	不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。</p>
<p><a href="https://www.dbainfo.net/sap-asa-cr-number-1.htm">SQL Anywhere的所有已知BUG列表（1）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-2.htm">SQL Anywhere的所有已知BUG列表（2）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-3.htm">SQL Anywhere的所有已知BUG列表（3）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SQL Anywhere的所有已知BUG列表（4）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SQL Anywhere的所有已知BUG列表（5）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SQL Anywhere的所有已知BUG列表（6）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SQL Anywhere的所有已知BUG列表（7）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SQL Anywhere的所有已知BUG列表（8）</a><br />
	&nbsp;</p>
<table align="left" border="1" cellpadding="0" cellspacing="0" style="table-layout: fixed; word-break:break-all; word-wrap: break-all;" width="100%">
<tbody>
<tr align="center">
<td width="11%">CR <br />
				Number</td>
<td>Description</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740222">740222</a></td>
<td>When describing a cloud server running on a Linux host, the TCP addresses listed may have include �::1�. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740226">740226</a></td>
<td>Using &#39;*&#39; when specifying the publication list would have caused the UltraLite runtime to crash during a synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740328">740328</a></td>
<td>The Relay Server would have incorrectly stopped relaying and reported the error RSE4008 with 揗alformed HTTP chunk� when it encountered chunked server responses with valid extensions or trailers (see RFC2616 section 3.6.1). This has been fixed. Logging of the extensions and trailers were added for log level 4 and higher.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740334">740334</a></td>
<td>The ICommandPersist interface methodes, LoadCommand, DeleteCommand, and SaveCommand, did not qualify system tables references with an owner name. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740400">740400</a></td>
<td>In rare cases, a copy node or mirror server could have used more memory than expected. If this occurred, the extra memory would typically have been less than 1MB. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740412">740412</a></td>
<td>The 32-bit version of the Version 9 or earlier physical store library (dboftsp.dll) was not installed on a 64-bit OS when the 32-bit Client feature was selected. Furthermore, dboftsp.dll was not installed when the MobiLink or SQL Remote features were selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740414">740414</a></td>
<td>The SQL Anywhere Extension Agent library (dbsnmp*.dll) was not being installed on a 64-bit systems. The 64-bit install needs to put down the 32-bit dbsnmp*.dll to support Microsoft SNMP, which is a 32-bit only service. This has been fixed.<span id="more-2861"></span></td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740440">740440</a></td>
<td>The Relay Server would have responsed with &quot;HTTP 200 OK&quot; to requests that didn抰 carry User-Agent headers, without actually performing the relay. The Relay Server uses the User-Agent header (or alternatively the IAS-RS-User-Agent header) to group metrics for aggregated statistics. A fix has been made so that requests that don抰 carry User-Agent or IAS-RS-User-Agent headers are now processed, and their metrics are collected under the group with User-Agent 揰unknown_�. This problem was reported when using the Relay Server with Windows 8 Store app which accesses NetWeaver Gateway OData services via the Relay Server and SUP 2.2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740441">740441</a></td>
<td>If certain SMTP errors occured during xp_sendmail, the error code and text returned by xp_get_mail_error_code() and xp_get_mail_error_text() may have been 250 and �2.0.0 Reset state� respectively, regardless of what actual error occurred. This has been fixed to return the correct SMTP error details.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740486">740486</a></td>
<td>Clients are not expected to use expired affinity, however not all client development can support proprietary expiry defined by the Relay Server. For that reason, the Outbound Enabler was relaxed to let in new requests with expired affinity. This relaxation was found to be incomplete. Under certain access sequence, a POST request may still suffer errors like the following:</p>
<p>				RS16: RSE4015: Outbound enabler of backend server &#39;S0&#39; in backend farm &#39;RSTEST02.F0&#39; reports session error OEE_SESSION_ACCESS_FAILED(1051) with parameters &#39;RS_CLI_REQUEST_CONTINUE&#39;, &#39;disconnected at the middle of a request&#39;, &#39;_unused_&#39;</p>
<p>				OE16: OEE1051: The Outbound Enabler was unable to access the session with ridx=0 sidx=0 snum=0000 sfp=01aa9daa on a RS_CLI_REQUEST_CONTINUE packet due to disconnected at the middle of a request</p>
<p>				RS12: RSE4004: Outbound enabler of backend server &#39;S0&#39; in backend farm &#39;MLVM-SARSX64.F0&#39; reports session error OEE25100 with parameters &#39;_unused_&#39;, &#39;_unused_&#39;, &#39;_unused_&#39;</p>
<p>				OE12: Session was disconnected at the middle of a packet sequence. Aborting sidx=0</p>
<p>				The problematic sequence has been identified and a fix has been made so that the OE can handle the POST that falls into that sequence. If the traffic is RESTful, a user workaround is to turn off all affinity injection from the Relay Server using the active_cookie=no and active_header=no property in the backend_farm configuration section of the affected backend farm and clear HTTP cookies from the client after the Relay Server configuration has been updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740488">740488</a></td>
<td>Attempting to create a table column or domain with an empty string as the default value would have caused the object to be created with no default value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740548">740548</a></td>
<td>Information returned by the system procedure sa_mirror_server_status() was not updated for the hour after a daylight savings time change that changed the local time to be an hour earlier. The sa_mirror_server_status row corresponding to the server that was running the sa_mirror_server_status query was note affected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740559">740559</a></td>
<td>The affinity information injected by the Relay Server carries information for addressing the socket opened from the Outbound Enabler to the backend server. This was required for end-to-end persistent connections between Client-RS and OE-Backend, while the shared RS-OE connection is always persistent. Such socket level affinity calls for affinity information isolation per socket on the client side. This proprietary isolation requirement was found to be too restrictive. Partners have been releasing their clients or utilizing third party client software in solutions using the Relay Server where the isolation requirement has not been met. Not all development environments or third party clients can support the implementation of the isolation. A change has now been made to introduce an optional relaxation from the Relay Server so that it will reduce the level of addressing information to backend server level instead of socket level. Persistent connection between Client-RS can still be maintained as the Relay Server will work with the Outbound Enabler to transform the OE-Backend accesses into non-persistent transient access. The net result is a liberation on developing integration between the client and the Relay Server.</p>
<p>				A new backend_farm property called socket_level_affinity has been added for controlling the behavior in a per backend farm manner. The liberation described above is DISABLED by default (i.e. socket_level_affinity=yes is the default). Online configuration update of this property is supported.</p>
<p>				External Requirements</p>
<p>				Updating to this new Relay Server, with socket_level_affinity=no, doesn抰 require deploying a client to clear previous affinity cookie assigned by the Relay Server. Also, the Outbound Enabler doesn抰 need to be upgraded in order to enjoy the liberation. This is an internal behavior change which continues to require the backend servers to allow non-persistent HTTP traffic and/or broken up persistent HTTP traffic. This backend server requirement remains regardless of whether the liberation is used or not. If liberation is enabled, the backend server doesn抰 need to support or allow persistent HTTP connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740636">740636</a></td>
<td>The MobiLink user password and new password could have been shown in MobiLink server log files in plain text. This would have occured if the password and new password, as named-parameters, were referenced in any user authentication scripts, and the MobiLink server was running with the 杤c command line option. This as been corrected. Now the MobiLink server will replace the password and new password with asterisks &quot;*&quot;, and then log them.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740649">740649</a></td>
<td>Under very rare conditions, the server may have entered an infinite loop while performing massive amounts of concurrent inserts. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740651">740651</a></td>
<td>If the Unload utility (dbunload) was run on a database that had a user with an expired password, or if a new user had been created that was forced to change their password on first login, the resulting reload script would have contained an ALTER USER statement that would have failed with a syntax error. This problem has been fixed. The correct &quot;ALTER USER &lt;user-id&gt; FORCE PASSWORD CHANGE ON&quot; syntax is now correctly generated in the reload script.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740695">740695</a></td>
<td>The ADO.NET provider could have thrown an exception when closing a pooled connection which used an integrated login. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740701">740701</a></td>
<td>Calling the system stored procedure dbo.sp_objectpermission() would in some cases have returned the string &#39;NULL&#39; in some of the result columns, instead of returning the NULL value. This problem has been fixed. Note that a database upgrade is required to get this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740708">740708</a></td>
<td>In SYSUSER, SYSEXTERNLOGIN and SYSLDAPSERVER system views, columns containing password hashes were visible to users without SELECT ANY TABLE privilege. This has been fixed.</p>
<p>				Note that in order to apply this fix, existing version 16.0 database will need to be upgraded once the server containing the fix is deployed. New databases created with the fixed version of the server do not need to be upgraded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740710">740710</a></td>
<td>The MobiLink server now supports the 杁t command line option for Oracle only:</p>
<p>				-dt detect transactions only within the current database (for Microsoft SQL Server, Adaptive Server Enterprise and Oracle only)</p>
<p>				When this option is used on the command line with Oracle, the MobiLink server will fetch the earliest starting time of the open transactions only that have modified any tables to the current database schema in the prepare_for_download phase, and then the MobiLink server will use this time that is named the next_last_download_timestamp to generate the download stream for the client in the next sync. With this option the MobiLink server may considerably reduce redundant download for any clients that use a timestamp-based download on a busy Oracle database server.</p>
<p>				In order to use this new command line option, the user ID the MobiLink server uses to connect to the Oracle database must have a selection permission of the following global views on the Oracle database:</p>
<p>				GV$TRANSACTION, GV$SESSION, GV$LOCKED_OBJECT</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740747">740747</a></td>
<td>The Apache Relay Server did not respect the client&#39;s application timeout header (IAS-RS-App-Timeout-Minute). If the client&#39;s application timeout header value eas smaller than Apache&#39;s &#39;Timeout&#39; directive, the Apache Relay Server would have taken longer to timeout the client&#39;s request, upto Apache&#39;s Timeout directive. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740784">740784</a></td>
<td>When OPENSTRING() is used in the FROM clause, the ROWID() function can be used to get the row number of each row read from the string. In execution plans where the same OPENSTRING() was executed more than one time, the ROWID() values for second and subsequent executions would not have given the correct line number: they would have continued to increase. In addition, error messages for rows loaded from the string value could have reported incorrect line numbers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740787">740787</a></td>
<td>The connection property ApproximateCPUTime was reporting twice the amount of CPU time consumed by a connection. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740792">740792</a></td>
<td>The system function xp_getenv() could have become &quot;sql security definer&quot; in databases initialized to run system procedures as definer. However, all new procedures in version 16 and higher are supposed to remain as 搒ql security invoker.� This would have happened if a version 16 database was initialized with either the -pd flag for dbinit, or the &quot;system procedure as definer on&quot; clause was used in either the CREATE DATABASE or the ALTER DATABASE UPGRADE statements. This has now been fixed.</p>
<p>				In order to repair the function in an existing database, run ALTER DATABASE UPGRADE PROCEDURE ON with an upgraded server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740795">740795</a></td>
<td>Java is not pre-installed with Mac OS X versions 10.7(Lion) and above. In order to use the administration tools on Mac OS X, Java SE Runtime Environment 7(JRE 1.7) must be manually installed. Without a JRE properly installed, the admin tools silently fail to start. When the admin tools were selected in the install, the user should have been notified that they will need to install JRE 1.7 if it was not already installed. This has been improved by providing the messages from 揑nstall SQL Anywhere� application and/or setup from 揟erminal� application. The messages will be displayed if JRE 1.7 is not installed on the system (Mac OS X) when installing the components that require Java.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740799">740799</a></td>
<td>Performance of the server when run on Linux systems was much slower than when run on Windows. The performance of the server has now been improved so the speed on Linux should now be comparable to speeds on Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740808">740808</a></td>
<td>Multithreading .NET application could have failed with an access violation exception. Fixed by modifying thread synchronization code for some interface functions, and code for managed connection pooling.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740842">740842</a></td>
<td>When using the ODBC Data Source Administrator to configure a SQL Anywhere 11 ODBC data source, the Database File 揃rowse� button would have returned a truncated string. Only the first 7, or 3 characters, of the file path are returned (depending on bitness). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740879">740879</a></td>
<td>If a SQL Anywhere MobiLink client database had been rebuilt using the Unload utility (dbunload), and it previously had been upgraded using the Ugrade utility (dbupgrad) or using the ALTER DATABASE UPGRADE command, then subsequent synchronizations could have resulted in dbmlsync sending up the wrong schema definition to the MobiLink Server, or it could have resulted in a crash of the dbmlsync process. This can be worked around by dropping and re-creating all the SYNCHRONIZATION SUBSCRIPTIONS in the remote database after the rebuild or upgrade. This issue has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740895">740895</a></td>
<td>If a NULL byte was used in the string provided to the DELIMITED BY, ROW DELIMITED BY, COMMENTS INTRODUCED BY, QUOTE, or ESCAPE CHARACTER clauses of a LOAD TABLE statement or OPENSTRING expression, then the server would have used all characters prior to the first null byte as the argument to the option. For example, if the user specified DELIMITED BY &#39;#\x00@&#39; then the server would use &#39;#&#39; as the column delimiter. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740897">740897</a></td>
<td>If a web service was created with authentication off, attempting to execute the procedure while specifying a user that required LDAP authentication would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740992">740992</a></td>
<td>SQL keywords from the CREATE FUNCTION statement are now suggested properly. Previously, opening the text completer when the caret was after the function name, but before the BEGIN keyword, would cave caused the Interactive SQL utility to suggest only CREATE FUNCTION and CREATE FUNCTION...BEGIN...END. A similar issue with the CREATE PROCEDURE statement was also fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741078">741078</a></td>
<td>A server could, in rare cases, have failed assertion 104301 (&quot;Attempt to free a user descriptor with non-zero reference count&quot;) on database shutdown if there were active external environment calls at the time of shutdown request. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741082">741082</a></td>
<td>On Windows, event log entries for version 12.0.1 MobiLink and SQL Anywhere database server services would have shown the service name only on the General tab of the Event Viewer/Windows Logs/Application window. There was no accompanying message.</p>
<p>				For example, the following text could have been displayed:</p>
<p>				SQLANYe_test12</p>
<p>				As a workaround, the Details tab can be used to see the missing message for this event. This problem has now been fixed so that the Details tab will include the message, as in the following:</p>
<p>				SQLANYe_test12: Starting service SQLANYe_test12</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741205">741205</a></td>
<td>The Relay Server and the Outbound Enabler were not designed for clients that did not maintain affinity isolation. The Outbound Enabler has been incrementally patched to fulfill such a need. The new Relay Server liberation option (socket_level_affinity=no) is an efficient way to have the Relay Server transform the traffic so that the relay mechanism will no longer be exposed to unintended use. In other words, the net effect is to support the previously unintended use with the liberation option. Liberation is not turned on by default and some customers may be willing to upgrade their Outbound Enabler, but not the Relay Server in the DMZ. So testing of such unintended use without liberation has been increased, and yet another case where such unintended use may still fail without using liberation has been found. This change is to fix the Outbound Enabler to deal with such a case. A workaround is to use liberation by explicitly setting socket_level_affinity=no.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741303">741303</a></td>
<td>A DATE datatype would have included time components if the value supplied contained a time component. As a result, queries could have returned incorrect results when providing a DATE only predicate value. UltraLite now stores DATE datatypes correctly when setting or changing the value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741408">741408</a></td>
<td>Relay Server for Apache correctly sets the HTTP status code on the client&#39;s HTTP response, however, it didn&#39;t return that same HTTP status code back to the Apache webserver. This caused the wrong HTTP status code to be printed in Apache&#39;s access_log.</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741432">741432</a></td>
<td>JSON Edm.DateTime values were being returned relative to the local time zone instead of UTC. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741546">741546</a></td>
<td>Authenticating with an LDAP server may have failed, even when the correct user name and password were given. This is dependent on the LDAP server being used and would not have been intermittent (i.e. if it failed, it failed all the time). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741547">741547</a></td>
<td>Authenticating with LDAP using an empty password could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741572">741572</a></td>
<td>UltraLite could have returned incorrect results for queries using LIKE &#39;C%&#39;, where C contained &#39;large&#39;/multi-byte characters. This affected only UTF-8 encoded databases (created with utf8_encoding=yes, which is the default). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741704">741704</a></td>
<td>The changes for Engineering case 735654 were incomplete. Using a 11.0.1 database with a 12.0.1 or 16.0.0 .net provider and server, could still have resulted in the exception &quot; Invalid option &#39;timestamp_with_time_zone_format&#39; -- no PUBLIC setting exists&quot;. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741707">741707</a></td>
<td>An access violation exception in the ADO.NET provider could have caused the database server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741721">741721</a></td>
<td>Calling the SAConnection.ConnectionString property could have caused the provider to crash with a NullReferenceException. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741724">741724</a></td>
<td>If a DSN contained a connection string with double quotes (eg. 搒erver=MyServer;start=抎beng16 -o \攆ile with spaces.txt\� � �), the output from dbdsn -cm (intended to be a dbdsn command that would re-create the DSN) would have incorrectly escaped the double quotes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741870">741870</a></td>
<td>If the database server was started with the 杅ips option, but the FIPS library was not available, the server would have given an error and then hung. The server process would have to have been killed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741954">741954</a></td>
<td>Performance of schema API calls could have been poor for large schemas. Querying any table would have been slow with Sybase Central and Interactive SQL when the schema was large. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR741971">741971</a></td>
<td>A TLS error (for example, a problem with a server抯 certificate) that occurred when executing a secure web service may have returned the error 揟he secure connection to the remote host failed: &lt;NULL&gt;� or 揌TTP request failed. Status code �0挃. On MacOS systems, the message 揟he TLS handshake failed, error code 0� would have been displayed on the server console. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742010">742010</a></td>
<td>A mirror server or copy node could have crashed if snapshot isolation was enabled and read-only connections were committed or rolled back. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742013">742013</a></td>
<td>Starting a database could have taken 10 seconds or more longer than it should have taken if the -ar, -ad or -xp database options were used with servers running on Windows. This could have occurred if files other than the database and current transaction log files for the server that was attempting to start the database were in the same directory as the database&#39;s log file, and these files were locked by the current server or another process. For example, if a single directory contained database files in use by a different server process, or a console log file in use by the server starting the database, a server starting the database with -ar, -ad or -xp would have started slowly. This has now been fixed.</p>
<p>				As a workaround, the database files could be put in a directory containing only the database files for a single database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742016">742016</a></td>
<td>If a certificate used one of a number of algorithms (including SHA256, SHA384, and SHA512) for signing, SQL Anywhere would not have been able to use it for TLS or HTTPS. An error code of 12357 or 12394 may have been displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742023">742023</a></td>
<td>Methods of the C++ DatabaseManager class could have failed or returned null, but not set any error in the supplied ULError object. For example, OpenConnection would return null but set the error code to 0 (NOERROR) if the database-manager was not initialized. Now an error is set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742037">742037</a></td>
<td>Requests to update or delete may return incorrect errors in an environment with many clients modifying entities.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742161">742161</a></td>
<td>The conditions for a restartable download to be available have been improved. This only applies to UltraLite clients at this time that have been upgraded to build 1584. </p>
<p>				IMPORTANT: These newer UltraLite clients may in rare cases cause older 16.0 MobiLink servers (prior to build 1584) to crash due to a previously undetected bug.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742293">742293</a></td>
<td>A case sensitive database with the DBA user name spelled in a way other than 慏BA� (for example, 慸BA� or 慸ba�) and password other than 憇ql� could have failed to be unloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742355">742355</a></td>
<td>SQL Anywhere ADO.NET drivers without the fix for Engineering case 741707, could have sent invalid connection pooling requests to the server which could have resulted in a server crash. This has been fixed so that the server will not crash even if the client makes invalid connection pooling requests. </p>
<p>				SQL Anywhere ADO.NET drivers without the 714707 fix may have requests fail with the error &quot;Run time SQL error -- *** ERROR *** Assertion failed: 104909&quot;. The ADO.NET driver needs to be updated if this occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742365">742365</a></td>
<td>A number of incorrect behaviors could have occurred when using database mirroring, including:</p>
<p>				- in rare, timing dependent cases, a mirror or copy node could have crashed, hung or failed assertion 102010</p>
<p>				- when a mirror or copy node reconnected to the primary or parent, it was possible for it to not request, write or apply log pages.</p>
<p>				- when a mirror was yielding to a preferred server, or the &quot;ALTER DATABASE SET PARTNER FAILOVER&quot; statement was executed on the primary, it was possible for the previous mirror to not take over as the primary (both partner servers could have had the mirror role)</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742377">742377</a></td>
<td>The SQL Anywhere Monitor could have raised alerts for high memory usage incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742543">742543</a></td>
<td>When iterating through the parameters of a SACommand using 揻oreach (SAParameter param in command.Parameters)�, the first iteration would have worked, but subsequent iterations would not have had the parameters. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742549">742549</a></td>
<td>The Validation utility (dbvalid) would have returned EXIT_BAD_DATA(=2) if an invalid object name was included in the object-name-list. If these obests are not found, ideally the error EXIT_FAIL(=1) should be returned instead. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742551">742551</a></td>
<td>The SQL Anywhere Monitor did not localize the desktop for the 慳dmin� user properly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742630">742630</a></td>
<td>After opening the Sample Range Properties window, some counts could have been incorrect in the Events tab for subsequent invocations of the Sample Properties or Sample Range Properties windows. This problem has been fixed.</p>
<p>				A workaround is to re-open the profiling session after opening the Sample Range Properties window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742729">742729</a></td>
<td>If launching the SQL Anywhere Monitor failed, the error message would have been garbled for FR and DE locales. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742733">742733</a></td>
<td>When calling a procedure without a RESULT clause using ODBC and JDBC, the performance was not as fast as it could have been. This has been fixed so that the performance has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742768">742768</a></td>
<td>The Deployment wizard would have accepted an invalid product code. Now, the Next button is disabled until a valid product code is entered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742779">742779</a></td>
<td>Connection status in the SQL Anywhere Connection widget was not localized. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742780">742780</a></td>
<td>Sparkline in the Table widget would have always displayed the one hour graph when a different scale was chosen, another dashboard was selected, and then the original dashboard was reselected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742857">742857</a></td>
<td>When reading Long Varchar or Long Binary columns using SADataReader, the results could have been truncated to 65535 chars. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742862">742862</a></td>
<td>On Windows systems, if the database server address cache file (sasrv.ini) was not writable by the current user, repeated connection attempts to a non-cached server may have been slow. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742872">742872</a></td>
<td>The server could have become unresponsive or extremely slow if it was involved in multiple high-availability configurations (for example, if it was running a number of read-only copy nodes), and there were networking problems causing loss of connectivity. This would have been more noticeable on single-processor machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742949">742949</a></td>
<td>If a user was logged into a mirror or a copy node, or an object owned by that user was in use on a mirror or copy node, and the user was dropped on the primary server using the REVOKE CONNECT statement, the mirror or copy node would have stopped with a fatal assertion. This has been fixed. Connections logged in as the dropped user, as well as connections using objects owned by that user, will now be dropped before the user is dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR742979">742979</a></td>
<td>If data from a text file was imported, the contents of the file could have been misinterpreted, resulting in garbage characters being imported. For this to happen, the file must have been encoded in Unicode, must have contained a literal string (enclosed in apostrophes) which contained a backslash ( &quot;\&quot; ) character, and the string must have contained characters which cannot be expressed in 7-bit ASCII. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743027">743027</a></td>
<td>HTTP Basic authentication in persistent HTTP synchronizations could have reported the error: -1305: MobiLink communication error -- code: 216. This has been fixed.</p>
<p>				Note, this fix also applies to UltraLite and UltraLiteJ for Android.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743046">743046</a></td>
<td>When the Apache httpd shutdown raced ahead of the Outbound Enabler shutdown, the Up channel may never have been gracefully shutdown, as Apache terminates the worker process non-gracefully. This could in turn could have caused the Relay Server State Manager (rshost) to leak System V semaphores on shutdown. The 搃pcs 杝� command can be used to review System V semaphore being used. This has been fixed by eliminating the latency on Up channel shutdown so that the race condition is much less likely to happen. This change is not a complete solution, but it reduces the possibility of this problem occurring.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743048">743048</a></td>
<td>Opening of pooled connections was taking longer than necessary. Open performance of pooled connections has now been improved by caching and reusing some internal values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743069">743069</a></td>
<td>When manually submitting an error report with a command like: dbsupport -sc ... , usage statistics would have been submitted, but the report itself would not. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743243">743243</a></td>
<td>Users could not use Sybase Central to view the contents of a view owned by SYS unless they had exercise rights on the SELECT ANY TABLE system privilege. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743341">743341</a></td>
<td>In rare cases, if an application made an external environment call that in turn performed a server-side request, then the server could have crashed or lost an update if the server-side request resulted in a deadlock error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743364">743364</a></td>
<td>The fix for Engineering case 740747 - &quot;The Apache Relay Server did not respect the client&#39;s application timeout header&quot; was incomplete for Apache 2.2.21 and 2.2.24 on Linux systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743367">743367</a></td>
<td>Sybase Central would have reported an internal error on startup if it was configured to run with recent updates of the Java Virtual Machine (JVM), for example, 1.6.0 update 45, and if the Fast Launcher was turned on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743448">743448</a></td>
<td>If a column with a default was added to a table with existing data and the default was subsequently changed, some rows in the table could have been left in an inconsistent state resulting in assertions, crashes or incorrect results. This has now been fixed. A work around would be to unload and reload the table before the second ALTER.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743465">743465</a></td>
<td>Metric collection was not being done for most metrics. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743469">743469</a></td>
<td>Setting the element of an array in a procedure could have caused the server to crash under some circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743562">743562</a></td>
<td>Using the 慏BCreatedVersion� DBTools method against a version 16 database would have returned an incorrect value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743572">743572</a></td>
<td>Clicking on a backup&#39;s &#39;backup result&#39; link in the &#39;Back Up &amp; Restore&#39; panel for a database may have resulted in the error: </p>
<p>				The task which created this backup (BP-XXXX) could not be found. </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743578">743578</a></td>
<td>In extremely rare, timing dependent cases, the server could have crashed when a database was starting. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743587">743587</a></td>
<td>When duplicating a user via copy-and-paste or drag-and-drop, the password for the new user was copied from the original user. Now, Sybase Central prompts for the new user抯 password.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743592">743592</a></td>
<td>When rebuilding a database that used SQL Remote replication, the rebuild may have failed because a user id was already in use for a system user id in the new software version. The problem only occurred when the customer created database users with server version 6.0.3.2928 or before, and never rebuild the database using dbunload option -m. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743662">743662</a></td>
<td>On a heavily loaded server, client connections could have been incorrectly dropped in timing dependent cases. If this occurred, the client would likely get &quot;Communication error&quot; error and the server would report &quot; Disconnecting Client - 120 seconds since last contact&quot; (or a different number of seconds) in the console log.</p>
<p>				This has been fixed so the dropped connections are less likely. Note that these errors can still correctly occur if there is a network issue or if either the client or server computers completely bog down (most likely due to limited resources).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743684">743684</a></td>
<td>The Extract Database wizard would have reported that the SELECT ANY TABLE system privilege was required, when in fact the SYS_REPLICATION_ADMIN_ROLE role is actually what is required. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743685">743685</a></td>
<td>If a user was on the Databases panel and filtered the list, then chose another panel, switching back to the Databases panel may have refreshed the databases list, but not have reapplied the filter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743688">743688</a></td>
<td>If the MobiLink Profiler database (MLProfilerDB) was closed while a profiling session was active then the profiling session was ended, a Java RuntimeException internal error would have occurred. This has been fixed. Now appropriate error dialogs are displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743689">743689</a></td>
<td>Changing the properties for a maintenance plan and setting an incremental backup schedule would not have save it if the 慚ake incremental backups� checkbox was not selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743691">743691</a></td>
<td>In the Apply Maintenance Plan wizard, the user can choose to apply the plan to databases that use another plan. If the user gave an invalid maintenance plan name, or a maintenance plan that had no databases assigned to it, all databases would have been chosen. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743692">743692</a></td>
<td>Servers with the fix for Engineering case 742355 could have returned garbage characters for connection_property( &#39;Name&#39; ), if there were non-ASCII characters in the CON connection parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743743">743743</a></td>
<td>When an ADO.NET connection was closed and returned to the connection pool by the SQL Anywhere .NET Data Provider, the connection name was cleared. However, when the pooled connection was reclaimed from the pool, the ConnectionName was not restored. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743761">743761</a></td>
<td>When editing Event Subscriptions for a user, the list of objects took longer and longer to populate when adding or removing an object. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743778">743778</a></td>
<td>Validation of a recently truncated table using a read-only server may have caused a crash. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR743779">743779</a></td>
<td>Typing a very long expression in the Search box or a Filter box would have resulted in a horizontal scroll bar appearing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR743857">743857</a></td>
<td>UltraLite may have blocked concurrent database access while synchronizing, during the UL_SYNC_STATE_FINISHING_UPLOAD synchronization state. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR743862">743862</a></td>
<td>UltraLite on iOS previously required that certificates named in synchronization parameters be packaged as resources in the root of the application bundle. Now, if the named certificate resolves to a filename (directly), that file is used instead of searching the bundle. This means any certificate file in the application sandbox is now accessible given the proper path.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR743871">743871</a></td>
<td>If the query of a cursor used the OrderedGroupBy algorithm in its execution plan, and was used to perform fetches that reversed direction of the scan, incorrect results could have been returned. This could have been observed for a cursor that fetched the first row, then second, then returned to the first row of an aggregate query. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR743948">743948</a></td>
<td>When a task was chosen to run in the 慠un new task� wizard, if the 慣ask Parameters� page had text inputs with the 慏efault� prompt text, choosing an item with browse would have overlayed that item name on top of the 慏efault� text, making it very hard to read. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744027">744027</a></td>
<td>The SQL Anywhere PHP External Environment supports several versions of the PHP interpreter. The SQL Anywhere install bundle includes a separate PHP external environment dll or shared object for each supported version of PHP. In addition, whenever support for a new version of the PHP interpreter is added, the SQL Anywhere install bundle is updated to include the new PHP external environment dll or shared object for the new version of the PHP interpreter. Going forward, the SQL Anywhere install bundle will no longer be updated with additional PHP external environment dlls or shared objects when support for new versions of the PHP interpreter are added. Instead, the new PHP external environment dlls and shared objects will now only be available on the download site.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744039">744039</a></td>
<td>It was not possible to connect to a tracing database when profiling using a client-only install. This has been fixed. Now, only opening an analysis file is prevented in a client-only install.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744044">744044</a></td>
<td>When testing a connection to a MySQL remote server, Sybase Central could sometimes have reported that the connection failed, when in fact it had succeeded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744047">744047</a></td>
<td>In some cases, a server with a database containing procedures with nested row parameters could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744130">744130</a></td>
<td>When adding a database, if the user did not have permission to apply maintenance plans and tried to set one for the database, the wizard would have given an error after clicking Finish. Going back to the maintenance plan page to select the default plan would have resulted in the wizard continuously asking for credentials after Finish was clicked. This has been fixed. The maintenance plan page is not shown if the user does not have the permission to set it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744132">744132</a></td>
<td>If a database name started with a number it could not have been moved with the Move Database wizard. The move would have failed with the error:</p>
<p>				Error in the search query &quot;database:4&quot; near &quot;database:4&quot;. </p>
<p>				Error code: -20090 (DBCLOUDERR_SEARCH_STRING)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744212">744212</a></td>
<td>On the Databases panel, columns previously hidden would have re-appeared when revisiting the panel. The Servers panel also had a blank menu for the cloud. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744228">744228</a></td>
<td>Paging to a page other than page 1 on the Servers or Databases panels, would not have reset the page number if another panel was visited and then the panel was gone back to. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744299">744299</a></td>
<td>If a 12.0.l database was added to a 16.0 server with the name beginning with a digit, a copy database could not have been created for it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744458">744458</a></td>
<td>Mac OSX, SUN, Linux, AIX, and HP platforms no longer require setting the shared library path before launching the Interactive SQL utility. The path is now set by the launcher using the &#39;LIBRARY_PATHS&#39; setting in the dbisql.ini file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744754">744754</a></td>
<td>The INPUT statement or the Import wizard in the Interactive SQL utility could have skipped rows from a TEXT formatted input file if it contained strings which were delimited by quotation marks, and the string contained an apostrophe. This has been fixed. Note, there was no problem if the strings were delimited by apostrophes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR744845">744845</a></td>
<td>The context menu for the SQL Statements panel includes a &quot;Help on&quot; menu item if there might be online help for the statement under the mouse. Clicking the &quot;Help on&quot; menu item opens help in a browser if local help is not installed. The process of opening the help has been sped up, especially if no help files were installed. How much faster depends on the network connection. </p>
<p>				Also, the software is now more tolerant of whitespace between keywords. For example, suppose the SQL Statements panel contained the following valid statement, spread across four lines:</p>
<p>				CREATE</p>
<p>				VARIABLE</p>
<p>				retcode</p>
<p>				INT</p>
<p>				Clicking &quot;Help on&quot; in the context menu would have failed to open help because of the newlines that separate the tokens. Now, help for the CREATE VARIABLE statement will be opened.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745191">745191</a></td>
<td>The Outbound Enabler has a fixed limit of 1000 active connections with the backend server per Relay Server. The Outbound Enabler would have crashed when the limit was exceeded. This has been fixed by relaxing the internal limit to 32768 active connections. An OEE1051 error is given when that limit is now exceeded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745198">745198</a></td>
<td>The ODBC driver could have exhibited inconsistent behavior when calling a stored procedure with blob parameters. The problem only occurred with data-at-execution-time blob parameters. Blobs of type Varchar worked correctly, but blobs of type binary did not. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745250">745250</a></td>
<td>After adding a new MobiLink server in the MobiLink Farm Configuration Resource window, the new server was not shown in the &quot;Identify the servers in the farm&quot; field. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745256">745256</a></td>
<td>If a cloud server required a proxy server to get to the internet, it would have been unable to contact the Cloud Software download site. The Console would have reported: &quot;The list is being updated&quot;, stayed like that for a very long time, and then reported: &quot;There is nothing to download&quot;. This has been fixed.</p>
<p>				Note, until SP4 becomes available, to enable current Clouds that have a proxy setting to take advantage of this fix, the new patch &quot;dbcloud-fix-checkforupdates-proxy.patch&quot; must be applied to the Cloud.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745266">745266</a></td>
<td>The &quot;Failed Synchronization Rate&quot; metric did not show a trend when failed synchronization was 0. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745267">745267</a></td>
<td>The maximum value allowed for the OData Producer PageSize option was only 1000. This was deemed unreasonably small and has now been increased to 1,000,000. The default setting has not been changed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745394">745394</a></td>
<td>When connected using TDS (Open Client or jConnect), executing a procedure that contained a SELECT INTO statement, could have caused the server to crash. Note that chained mode needed to be off for this to have occurred. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745468">745468</a></td>
<td>If a Directory Access server accessed a file with a size over 4GB, the file length would have been reported as a size smaller than 4GB. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745564">745564</a></td>
<td>When using the LogFile connection parameter, the timestamp logged before each connection was truncated to only include the first digit of the seconds. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745646">745646</a></td>
<td>Downloads could have been incorrectly skipped in persistent connections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745648">745648</a></td>
<td>In rare timing dependent cases, near when a transaction log rename was being performed, the sa_mirror_server_status log_written or log_applied columns could have been inaccurate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR745838">745838</a></td>
<td>Too many sockets opened between RSOE and SUP</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746082">746082</a></td>
<td>When an application using ADO.NET had disconnected all of its connections so that they were pooled, an autostarted database, and/or server, could have autostopped, causing the server to need to be autostarted again if the same application connected again. This has been fixed so that in most cases, the presence of a pooled ADO.NET connection will prevent the server from autostopping. Note that in cases where pooled connections cannot be reused (for example, connections using integrated login, or the user&#39;s password was changed), the database and/or server may still autostop even with this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746108">746108</a></td>
<td>The MobiLink server could have crashed when it was trying to upload updates to tables that contained BLOB columns, if the upload_update script took BLOB columns in its Where clause and the parameters in the script are specified by question marks. To prevent the crash, a workaround is to change the question marks to use named parameters instead. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746236">746236</a></td>
<td>Under very rare circumstances, the server may have crashed during server shutdown if a SQL Anywhere debugger was still connected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746290">746290</a></td>
<td>On Windows systems, CPUs numbered 32 and above were not detected correctly and treated as offline. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746461">746461</a></td>
<td>The OData Producer now respects Content-Encoding and Accept-Encoding HTTP request headers as specified by the HTTP 1.1 spec:</p>
<p>				http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html</p>
<p>				The Content-Encoding header is used by clients to indicate the encoding of the request body. The Accept-Encoding header is used by clients to indicate the preferred encoding of the response body.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746575">746575</a></td>
<td>When a .NET application disconnected and then reconnected to the server, the timestamp_with_time_zone_format option was not re-established to the required .NET default (&#39;YYYY-MM-DD HH:NN:SS.SSSSSS+HH:NN&#39;). When the connection is pooled, the server resets server options to their defaults. When a connection was retrieved from the connection pool, the SQL Anywhere .NET provider must re-issue a SET TEMPORARY OPTION statement. This lead to a DateTimeOffset (timestamp with time zone) conversion error at run-time.</p>
<p>				A work-around is to execute a ...</p>
<p>				SET OPTION PUBLIC.timestamp_with_time_zone_format = &#39;YYYY-MM-DD HH:NN:SS.SSSSSS+HH:NN&#39; </p>
<p>				statement which sets the default required for all .NET connections.</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746586">746586</a></td>
<td>In rare cases, the server may have crashed or returned an incorrect SQL error if the UPDATE clause of a bypass update statement had an invalid subselect as table-expression. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746650">746650</a></td>
<td>The units reported for the system dbpace file size metric was MB and should have been KB. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746678">746678</a></td>
<td>The XML output from the Event Trace Data File Management utility (dbmanageetd) did not display the correct output of strings if the ETD file was generated by a database that was encoded in something other than UTF-8. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746688">746688</a></td>
<td>The following improvements and bug fixes have been made to the SQL Anywhere OLE DB provider:</p>
<p>				1. When a column cannot be fetched in its entirety, set status to DBSTATUS_S_TRUNCATED instead of DBSTATUS_S_OK and length to actual length, not amount fetched.</p>
<p>				2. IRowsetUpdate methods InsertRow/Update should insert rows in manual commit mode (i.e., commit in batches) rather than autocommit each row.</p>
<p>				3. Improved support for DBTYPE_DBTIMESTAMPOFFSET data types.</p>
<p>				4. In order to identify columns that are DEFAULT AUTOINCREMENT, IColumnsInfo::GetColumnInfo now sets the DBCOLUMNFLAGS_ISROWVER bit for those columns. Microsoft defines a column with this attribute as a non-writable versioning column (such as the SQL Server TIMESTAMP) which suits SQL Server. Note, however, that SQL Anywhere supports versioning columns that are writable.</p>
<p>				5. Corrected failure to describe money/smallmoney as DBTYPE_CY (currency type). Also corrected OLE DB schema queries DBSCHEMA_COLUMNS, DBSCHEMA_PROCEDURE_COLUMNS, and DBSCHEMA_PROCEDURE_PARAMETERS results for DBTYPE_CY.</p>
<p>				6. Corrections to schema rowset information (DBSCHEMA_COLUMNS, DBSCHEMA_PROCEDURE_COLUMNS, and DBSCHEMA_PROCEDURE_PARAMETERS) for datetime/time precision and scale.</p>
<p>				7. Corrections to 搑un-time� information for datetime/time precision and scale.</p>
<p>				8. Add &quot;DATETIME&quot; to list of DBPARAMBINDINFO.pwszDataSourceType types for SetParameterInfo (SQL Server uses this undocumented type name). Type names are usually of the form 揇BTYPE_xxx� (for example, 揇BTYPE_I4�, 揇BTYPE_STR�, 揇BTYPE_DBTIMESTAMP�).</p>
<p>				9. Adjust GetConversionSize values for TIME, DATETIME, DATETIMEOFFSET data types (only 6 fractional digits are supported by SQL Anywhere).</p>
<p>				10. Fixed memory leak caused by failure to free rows whose refcount is 0 in Update().</p>
<p>				11. Fixed possible memory corruption in calls to IRowsetChange::SetData, IRowsetChange::InsertRow, ISequentialStream::Write, and IRowChange::SetColumns.</p>
<p>				12. Fixed performance problem when DataConvert is used when no conversion is required.</p>
<p>				13. The LoadCommand, DeleteCommand, and SaveCommand methods of the ICommandPersist interface did not qualify system tables references with an owner name. This has been corrected.</p>
<p>				14. The OLE DB provider accepts two cbBookmark values, 1 which is the 搒hort� DBBMK_FIRST/LAST value, and 4 or 8 depending on the bitness of the provider. The 64-bit provider flags �4� was an illegal value for cbBookmark. The 32-bit provider flags �8� was an illegal value for cbBookmark. The OLE DB provider should accept both 4 and 8 as the length of a bookmark value and fetch the appropriate 32-bit/64-bit bookmark value from memory. This problem has been corrected. The fix affects IRowsetLocate::GetRowsAt, IRowsetLocate::Compare, RowsetLocate::GetRowsByBookmark, IRowsetLocate::Hash, and IRowsetScroll::GetApproximatePosition, and IRowsetExactScroll::GetExactPosition. Both 32-bit and 64-bit providers now support 4-byte and 8-byte bookmark values, in addition to 1-byte values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746767">746767</a></td>
<td>In a .NET application, it was possible to store a decimal number into a NUMERIC/DECIMAL table column when the precision of the decimal number exceeded the precision of the NUMERIC/DECIMAL column by 1. </p>
<p>				Also, when the stated precision of a decimal value parameter was much less than the actual precision of a decimal value, it is possible to corrupt the heap.</p>
<p>				parm.Precision = 5;</p>
<p>				parm.Value = (decimal) 123456789;</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746924">746924</a></td>
<td>In very rare, timing dependent cases, mirroring servers (likely more than one) could have hung indefinitely.</p>
<p>				If, while processing ALTER DATABASE SET PARTNER FAILOVER, connections between the primary and mirror servers timed out, or were dropped, before the failover operation completed, the primary server could have stopped accepting connections. </p>
<p>				The sa_mirror_server_status log_written offset could have been incorrect about the time a log rename occurred.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR746935">746935</a></td>
<td>The dbo.sp_list_directory() stored procedure can be used to obtain information about directories and files that are accessible to the SQL Anywhere Server. Currently the sp_list_directory() procedure returns the following three columns:</p>
<p>				file_path long nvarchar the path of the server accessible file or directory</p>
<p>				file_type nvarchar(1) either F for file or D for directory</p>
<p>				file_size unsigned bigint the size of the file or NULL for directories</p>
<p>				In order to provide more information about the various files and directories, dbo.sp_list_directory() has now been enhanced to return five additional columns. These five additional columns are:</p>
<p>				owner nvarchar(128) the owner of the file or directory</p>
<p>				create_date_time* timestamp with time zone the date and time the file or directory was created</p>
<p>				modified_date_time* timestamp with time zone the date and time the file or directory was last modified</p>
<p>				access_date_time* timestamp with time zone the date and time the file or directory was last accessed</p>
<p>				permissions varchar(10) the set of access permissions for the file or directory</p>
<p>				All other aspects of dbo.sp_list_directory() � including the set of system privileges and secure feature privileges � remain unchanged.</p>
<p>				A database either has to be upgraded or initialized in order for applications to obtain this new information from dbo.sp_list_directory(). In addition, if an upgraded or newly initialized database is subsequently moved to an older version of the server, then the new columns will continue to be returned but the values of the new columns will be NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747038">747038</a></td>
<td>When the HAVING clause of a query contained predicates of the following form, the server attempted to estimate the selectivity based on the column statistics:</p>
<p>				- HAVING SUM( column ) &lt;= constant</p>
<p>				- HAVING SUM( column ) &lt; constant</p>
<p>				- HAVING SUM( column ) &gt; constant</p>
<p>				- HAVING SUM( column ) &gt;= constant</p>
<p>				so that incorrect selectivity could be returned in the following cases:</p>
<p>				- the column was a number but the constant was not (e.g., it was a date).</p>
<p>				- the comparison relation was &lt;&gt; or = (these can not be estimated).</p>
<p>				- the comparison was of the form SUM(column) LIKE string_constant.</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747053">747053</a></td>
<td>If the primary server failed and the mirror took over as the new primary, the old primary could have failed to start and reported &quot;database is not compatible with primary; files must be replaced&quot; in the console log, even though it should have been able to start. In order for this failure to have been reported when it should not have been, there had to be over 64 transaction log pages since the last checkpoint.</p>
<p>				This has been fixed. Note that this failure (database is not compatible) can still validly occur in certain cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747118">747118</a></td>
<td>In the MobiLink Plugin, if the MobiLink Server CommandLine was renamed and then deleted it without shutting down Sybase Central, the delete confirmation dialog would have shown the old name for the commandline instead of the new one. This has now been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747141">747141</a></td>
<td>In very rare timing dependent cases, a copy node&#39;s transaction log could have been corrupted if the primary failed over to the mirror. In order for this to have occurred, the old primary would have needed to still be running and not in the process of stopping during the failover (for example, running extremely slowly due to lack of machine resources). If this problem did occur, the most likely failures would be assertion 100902, 100903 or 100904, but other failures were also possible. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747205">747205</a></td>
<td>The geospatial method ST_BUFFER is now supported for all geometry types. This method is compatible with the SQL/MM and OGC standards. ST_BUFFER returns the ST_Geometry value that represents all points whose distance from any point of an ST_Geometry value is less than or equal to a specified distance in the given units.</p>
<p>				ST_GEOMETRY::ST_BUFFER( distance double, unit_name long varchar )</p>
<p>				- distance: The distance the buffer should be from the geometry value. Must be greater than or equal to 0.</p>
<p>				- unit_name: The units in which the distance parameter should be interpreted. Defaults to the unit of the spatial reference system. The unit name must match the UNIT_NAME column of a row in the ST_UNITS_OF_MEASURE view where UNIT_TYPE is &#39;LINEAR&#39;.</p>
<p>				- Returns the ST_Geometry value representing all points within the specified distance of the original geometry.</p>
<p>				The ST_Buffer method generates a geometry that expands a geometry by the specified distance. This method can be used, for example, to find all points in geometry A that are within a specified distance of geometry B. The distance parameter must be a positive value. This method will return an error if distance is negative. If the distance parameter is equal to 0, the original geometry is returned. The ST_Buffer method is best used only when the actual buffer geometry is required. Determining whether two geometries are within a specified distance of each other should be done using ST_WithinDistance instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747227">747227</a></td>
<td>The MobiLink Server leaked memory when using secure streams on Mac OS X systems. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747231">747231</a></td>
<td>The default query to fetch the next &#39;last download&#39; timestamp was slow when using a HANA consolidated. This has been fixed. The server now caches the results of this query, so its value can be up to 8 seconds out of date. This can result in extra rows being downloaded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747277">747277</a></td>
<td>A new database property, BackupInProgress, has been added. Querying the property will return &#39;on&#39; when there is a backup happening, and &#39;off&#39; otherwise.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747308">747308</a></td>
<td>The Entity Framework method Import would have failed to find procedures if the procedures had comments in front of 慉LTER PROCEDURE�. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747334">747334</a></td>
<td>A client application could have hung when opening a pooled connection following a failed connection. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747342">747342</a></td>
<td>On Windows systems, the Data Source utility (dbdsn) would have failed with the error 揢ser Data Source �&lt;name&gt;� could not be written to registry� when trying to create a DSN with a name longer than 32 characters. This is a Windows limitation so a more appropriate error message is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747358">747358</a></td>
<td>If a proxy was set to reach the internet, it was not used by the software update checker. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747426">747426</a></td>
<td>Now, dbmlsync/dbremote support synchronization/replication for databases in a cloud. Instead of directly accessing the offline transaction log files, dbmlsync/dbremote will retrieve offline transaction logs through the database server. The user ID that is used by dbmlsync/dbremote to connect to the synchronization/replication database must have the READ FILE and WRITE FILE privileges and all the offline transaction log files must be in the online transaction log directory. The database server must have the same level of SP in order to support this feature. Dbmlsync/dbremote will retrieve the offline transaction logs through the server, if the given offline transaction log directory cannot be opened or contains no offline transaction log files, but offline transaction logs are required. Synchronized/replicated offline transaction log files will also be deleted through the server, if the database option, delete_old_logs is set to be 慜n�, 慏elay�, or 憂 days�.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747538">747538</a></td>
<td>The UltraLite runtime may have generated UUID values which were not globally unique on iOS 7. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747637">747637</a></td>
<td>If an ODBC application performed a wide or array INSERT, where the number of rows times the number of columns was more than 32767, the INSERT may not have been as efficient as it should have been. This has been fixed so that the wide or array INSERT is more efficient in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747649">747649</a></td>
<td>In rare timing dependent cases, a copy node could have failed with a log mismatch message or an assertion failure when a log rename was performed. In order for this problem to have occurred, in addition to processing the log rename, the copy node needed to be transitioning from requesting to receiving log pages from its parent, or a connection to its parent would have had to be dropped and reconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747714">747714</a></td>
<td>Trying to save the Application Profiling recommendations could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747794">747794</a></td>
<td>The server now recognizes when it is running on Windows 8.1 and Windows Server 2012 R2 operating systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747798">747798</a></td>
<td>A new system function has been added, READ_SERVER_FILE(). This function reads data from a specified file on the server and returns the full or partial contents of the file as a LONG BINARY value.</p>
<p>				Syntax:</p>
<p>				READ_SERVER_FILE( filename ) [, start [ , length] ] </p>
<p>				Parameters:</p>
<p>				- filename LONG VARCHAR value indicating the path and name of the file on the </p>
<p>				server. </p>
<p>				- start The start position of the file to read, in bytes. The first byte in </p>
<p>				the file is at position 1. A negative starting position specifies </p>
<p>				the number of bytes from the end of the file rather than from the </p>
<p>				beginning. </p>
<p>				* If start is not specified, a value of 0 is used. </p>
<p>				* If start is zero and length is non-negative, a start value of 1 </p>
<p>				is used. </p>
<p>				* If start is zero and length is negative, a start value of -1 is </p>
<p>				used. </p>
<p>				- length The length of the file to read, in bytes. </p>
<p>				* If length is not specified, the function reads from the starting </p>
<p>				position to the end of the file. </p>
<p>				* If length is positive, the function read ends length bytes to the </p>
<p>				right of the starting position. </p>
<p>				* If length is negative, the function returns at most length bytes </p>
<p>				up to, and including, the starting position, from the left of the </p>
<p>				starting position. </p>
<p>				Returns:</p>
<p>				LONG BINARY</p>
<p>				Remarks:</p>
<p>				This function returns the full or partial (if start and/or length are specified) </p>
<p>				contents of the named file as a LONG BINARY value. If the file does not exist or </p>
<p>				cannot be read, NULL is returned. </p>
<p>				filename is relative to the starting directory of the database server.</p>
<p>				The READ_SERVER_FILE function supports reading files larger than 2GB. However, </p>
<p>				the returned content is limited to 2GB. If the returned content exceeds this </p>
<p>				limit, a SQL error is returned. </p>
<p>				If the data file is in a different character set, you can use the CSCONVERT </p>
<p>				function to convert it. You can also use the CSCONVERT function to address the </p>
<p>				character set conversion requirements you may have when using the </p>
<p>				READ_SERVER_FILE server function. </p>
<p>				If disk sandboxing is enabled, the file referenced in filename must in an </p>
<p>				accessible location. </p>
<p>				Privileges:</p>
<p>				When reading from a file on a client computer:</p>
<p>				* You must have the READ FILE system privilege.</p>
<p>				* You must have read permissions on the directory being read from.</p>
<p>				Standards: SQL/2008 Vendor extension. </p>
<p>				Example:</p>
<p>				The following statement reads 20 bytes in a file, starting from byte 100 of the</p>
<p>				file.</p>
<p>				SELECT READ_SERVER_FILE( &#39;c:\\data.txt&#39;, 100, 20 )</p>
<p>				See also</p>
<p>				* xp_read_file system procedure</p>
<p>				* CSCONVERT function [String]</p>
<p>				* Disk sandboxing</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747805">747805</a></td>
<td>For Syntax 2 of the DELETE statement and Syntax 2 of the UPDATE statement the error detection behaviour of the server has been improved. These two syntax forms allow an additional FROM clause that may contain the table-name of the updated or deleted table, for example:</p>
<p>				DELETE</p>
<p>				FROM [owner.]table_1 [ [ AS ] correlation-name ]</p>
<p>				FROM [owner.]table_1 [ [ AS ] correlation-name ] ...</p>
<p>				WHERE ...</p>
<p>				and</p>
<p>				UPDATE [owner.]table_1 [ [ AS ] correlation-name ]</p>
<p>				SET columns_1 = ...</p>
<p>				FROM [owner.]table_1 [ [ AS ] correlation-name ] ...</p>
<p>				WHERE ...</p>
<p>				If the DELETE or UPDATE clause and the additional FROM clause have a table reference that contains the same table name, in the above example &quot;table_1&quot;, then the server can only decide whether both are identical table references if one of the following conditions is true:</p>
<p>				- both table references are not qualified by specifying a user ID</p>
<p>				- both table references are qualified by specifying a user ID</p>
<p>				- both table references are specified with a correlation name</p>
<p>				In cases where the server cannot decide whether the above table references are identical or not it will now return an SQL error to prevent the user from unintended semantics like deleting and updating to many rows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747810">747810</a></td>
<td>When a mirror or copy node was shutdown while a connection was blocked on a lock held by an internal connection which was applying log operations, the shutdown could have hung. Note that mirror or copy node databases shutdown and restart automatically for a number of internal reasons, for example, the mirror database can shutdown and restart if the connection between the partner servers becomes disconnect but the primary partner is still running. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747819">747819</a></td>
<td>When the server encounterd a file error when writing to an ETD file, it should have returned it as a SQL error; but in some cases, the error is not returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747898">747898</a></td>
<td>When using the SQL Anywhere JDBC driver, if two or more addBatch calls are followed by an executeBatch and then the application used executeUpdate in non-batched mode, the application would have crashed. This problem has been fixed. </p>
<p>				A work-around is to use addBatch/executeBatch for all executions of the prepared statement once addBatch/executeBatch has been used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR747910">747910</a></td>
<td>In certain cases, initialization of the cloud could result in an invalid IPv6 address among those listed for a cloud host. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748083">748083</a></td>
<td>The server may have crashed when using ARRAY or ROW type values in string operations. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748096">748096</a></td>
<td>If a stored procedure containing a single SELECT statement that uses a key join was inlined, and the connected user was not the procedure owner and has no select permissions on the table(s) in the query, a permission error could have been returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748102">748102</a></td>
<td>The cloud Agent could hang after an HTTP GET request returned an HTTP status code of 4xx. The most common scenario for this issue was when starting a cloud on the primary server, the Agent would have received a 404 or 401 HTTP error on its first poll request and hang. In that case, the cloud Console would have reportd 揾ost disconnected� for the host. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748170">748170</a></td>
<td>In rare timing dependent cases, a copy node that had just processed a Log rRename could have failed assertion 200505, if its child was requesting log pages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748349">748349</a></td>
<td>In extremely rare timing dependent cases, it was possible for the transaction log on a copy node to have become corrupted. In order for the potential corruption to have occurred, the copy node needed to have a parent other than the primary/root server, and the parent must have been writing a page to the transaction log at the same time the child copy node was requesting the last page of the parent&#39;s transaction. Note that once the copy node has caught up the log operation of the parent, the parent sends pages to the copy node during commit operations. This problem could have only occurred when the copy node is requesting pages from the parent, and not when the parent is sending pages to the copy node. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748351">748351</a></td>
<td>Mirror and copy node servers were not applying transaction log changes as efficiently as they could have been. This has been fixed to be more efficient.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748414">748414</a></td>
<td>Relay Server monitoring provided via the SQL Anywhere Monitor may have suffered stack overflow exceptions on the Java data collection client. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748429">748429</a></td>
<td>With some versions of Linux and Unix, the Port field of the Connect to MobiLink Server window was not displayed correctly; it was too narrow for the port number to be visible. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748450">748450</a></td>
<td>In some rare cases, the server may have crashed while processing HTTP/HTTPS requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748531">748531</a></td>
<td>Synchronizations could have spuriously failed if the MobiLink server was configured to use end-to-end encryption, but the client was not. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748535">748535</a></td>
<td>The Linux GTK and Mac OS X UI installer improperly reported insufficient disk space if there was more than 2 TB of available disk space. This has been fixed.</p>
<p>				A workaround is to use setup -nogui to avoid the use of the graphical installer. Alternatively, install to a smaller disk drive.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748538">748538</a></td>
<td>Specifying the command line option -nogui after the option -silent when running the UNIX setup script would have caused the -silent flag to be ignored. This has been fixed. The -nogui option now has no effect if -silent is specified at any point.</p>
<p>				A workaround is to avoid specifying -nogui when doing a silent install.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748541">748541</a></td>
<td>When upgrading a 32-bit SQL Anywhere installation containing SQL Anywhere Monitor, the 64-bit server would have been installed, whether or not it was previously installed. Similarly, upgrading a 64-bit SQL Anywhere installation containing SQL Anywhere Monitor would have caused the 32-bit server to be installed, whether or not it was previously installed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748548">748548</a></td>
<td>If a database contained subscriptions for more than one MobiLink user, and at least one of those users had a name containing non-alphanumeric characters, then it was possible for synchronizations to fail and generate incorrect error messages. The messages generated may have included, 揟here is no synchronization subscription for user ? to publication ?� or 揅ommunication protocol mismatch. Unable to negotiate an appropriate communication protocol with the MobiLink server.� Other error messages were likely also possible. This has been fixed. Having non-alphanumeric characters in MobiLink user names should now be handled correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748557">748557</a></td>
<td>Opening the text completer when connected to an ASE database could have caused the Interactive SQL utility to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748710">748710</a></td>
<td>Under some circumstances, the server could have crashed when executing a procedure with NO RESULT SET clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748717">748717</a></td>
<td>UltraLiteJ for Android no longer supports ARMv5 CPU architectures. The minimum supported CPU architecture is now ARMv7.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748725">748725</a></td>
<td>When MobiLink uploaded a UUID (GUID) to SAP HANA, hyphens would have been added to the resulting string, resulting in a VARCHAR(40) field instead of a VARCHAR(36). This change removes the hyphens from UUIDs so that UUID columns can now be stored as a VARCHAR(36) in SAP HANA, which matches the SAP HANA default UUID format.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748972">748972</a></td>
<td>When the Utilization Graph pane was enabled, if the Chart pane did not have a vertical scroll bar the Zoom To Selection menu and toolbar button might not have worked correctly, and scrolling might not have worked correctly. This has been fixed.</p>
<p>				A workaround is to disable the Utilization Graph pane, or to resize the Chart pane so that it has a scroll bar.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748976">748976</a></td>
<td>If a database had one or more of the following public options set differently:</p>
<p>				- ansinull=On</p>
<p>				- conversion_error=On</p>
<p>				- divide_by_zero_error=On</p>
<p>				- sort_collation=Internal</p>
<p>				- string_rtruncation=On</p>
<p>				, and the specified value was then set as a temporary option for the connection creating a materialized view, recovery of the CREATE MATERIALIZED VIEW statement would have failed. This has been fixed.</p>
<p>				Note that the fix applies only to the CREATE statement executed with the fixed version of the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR748989">748989</a></td>
<td>The cloud infrastructure would have always returned an error if the AlterCloud task was used to attempt to set a different set of secure features. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749074">749074</a></td>
<td>If the Data Source utility (dbdsn) was used with the -or command line option to create a DSN that used the SQL Anywhere Oracle driver, the driver name would have been incorrect. The driver name should be 揝QL Anywhere &lt;version&gt; - Oracle� rather than 搃Anywhere Solutions &lt;version&gt; - Oracle&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749081">749081</a></td>
<td>The HANA server would have complained with the following error:</p>
<p>				&quot;unsupported function included: CURRENT_TIMESTAMP is not supported by generated always&quot;</p>
<p>				when trying to run the MobiLink server setup script file, synchana.sql against a database running on a HANA server, if the HANA server revision was 1.00.64 or later. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749169">749169</a></td>
<td>In some rare cases, attempting to modify a database file after the server using that file had been shut down using the Stop Server utility (dbstop) would have failed with &#39;permission denied&#39;. For this to have occurred, the server must have been using the external environment (e.g. php). This is a very timing sensitive bug and rarely reproduces. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749170">749170</a></td>
<td>When invoked with a very large integer value, the hours() function could have returned an incorrect result. For example, hours function invoked with a �12:00� time and a very large integer argument would return a value like �22:44�. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749256">749256</a></td>
<td>Strong encryption now achieved using OpenSSL</p>
<p>				--------------------------------------------</p>
<p>				Prior to this change, SQL Anywhere included a Certicom encryption module that provided strong encryption used throughout the software. Now, SQL Anywhere includes an OpenSSL encryption module for the strong encryption. The Certicom encryption module has been removed.</p>
<p>				Read the following descriptions to determine how you may be impacted by this change.</p>
<p>				FIPS encryption now requires the private key of an identity file to be encrypted using AES </p>
<p>				- OpenSSL FIPS supports AES encryption for the private key of an identity file. New servers using the OpenSSL FIPS encryption module will not start when using an identity file that has its private key encrypted with 3DES. You must re-encrypt the identity file using AES. To do this, run a command similar to the following using an upgraded viewcert utility:</p>
<p>				viewcert -p -o new-file-name -op new-password -ip old-password old-file-name</p>
<p>				The new and old passwords can be the same.</p>
<p>				- The sample server identity file (rsaserver.id) and client identity file (rsaclient.id) have been modified so that the private keys are encrypted using AES rather than 3DES.</p>
<p>				- Versions of the server that use the Certicom encryption module will not start when using an identity file that has its private key encrypted using AES. Trusted root certificate files specified using trusted_certificates do not need to be modified.</p>
<p>				Self-signed certificates must now have the Certificate Signing attribute set</p>
<p>				Self-signed certificates must now have the Certificate Signing attribute set when using the identity encryption option (for example, the -x mlsrvXX and -xs dbsrvXX options). To determine if a certificate has the Certificate Signing attribute set, use the viewcert utility and look for the Certificate Signing attribute in the Key Usage portion of the output. If your self-signed certificates do not have the Certificate Signing attribute set, then you must regenerate the certificates.</p>
<p>				Create Certificate utility (createcert) now uses AES encryption instead of 3DES </p>
<p>				The Create Certificate utility (createcert) now uses AES rather than 3DES encryption for encrypting the private key in the server identity file.</p>
<p>				A new option, -3des, has been added to the Create Certificate utility. Use this option when you want to create a 3DES-encrypted server identity file that can be used by both new and old servers. Note that new servers running in FIPS mode cannot start using 3DES-encrypted certificates; however, if you are not running in FIPS mode, then you can use 3DES-encrypted certificates.</p>
<p>				View Certificate utility (viewcert) now uses AES encryption instead of 3DES </p>
<p>				The View Certificate utility (viewcert) now uses AES rather than 3DES encryption when you specify the -p option to PEM-encode the output and when you specify the -ip and -op options to set the password.</p>
<p>				A new option, -3des, has been added to the View Certificate utility to allow you encrypt output and passwords using 3DES instead of AES.</p>
<p>				Database server now loads the FIPS driver file, dbfipsXX.dll, at startup</p>
<p>				Previously, the 32-bit Windows database server loaded the FIPS driver file, dbfipsXX.dll, only when needed. Now, the 32-bit Windows database server always attempts to load dbfipsXX.dll at startup, and keeps it loaded for the life of the server. If loading dbfipsXX.dll fails, then an error is returned only when an attempt is made to use FIPS encryption.</p>
<p>				Deploying FIPS </p>
<p>				If you are deploying FIPS encryption, then there are new shared libraries to deploy; these files are included in your software. The former files, sbgse2.dll and libsbgse2.so, are no longer installed by the software. The new files to deploy are:</p>
<p>				- Windows 64-bit: libeay32.dll, ssleay32.dll, and msvcr100.dll</p>
<p>				- Windows 32-bit: libeay32.dll, ssleay32.dll, and msvcr90.dll</p>
<p>				- Linux: libcrypto.so and libssl.so</p>
<p>				Note: On Windows, although 32-bit and 64-bit FIPS-certified OpenSSL libraries for encryption are provided, you must use the 64-bit libraries on a 64-bit system.</p>
<p>				MobiLink-related changes and information </p>
<p>				Connecting to a MobiLink server using client-side certificates now requires the Digital Signature certificate attribute to be set </p>
<p>				TLS/SSL connections to a MobiLink server using client-side certificates now require the client-side certificate to have the Digital Signature attribute set. If the attribute is not set, then the connection will fail.</p>
<p>				To determine if a certificate has the Digital Signature attribute set, use the View Certificate utility (viewcert) and look for the Digital Signature attribute in the Key Usage portion of the output. If your client-side certificates do not have the Digital Signature attribute set, then you must regenerate the certificates.</p>
<p>				FIPS-based end-to-end encryption now requires the private key to be encrypted using AES </p>
<p>				If the private key file provided to a MobiLink server by the e2ee_private_key file option of the 杧 command-line option is encoded using 3DES and you are running in FIPS mode, then the private key file needs to be regenerated with the private key encrypted using AES.</p>
<p>				How to update a MobiLink deployment that uses non-FIPS TLS/SSL (includes HTTPS) and client-side certificates </p>
<p>				1. If your client-side identity certificates do not have the Digital Signature attribute set and the client connects directly to the MobiLink server, then you must regenerate and deploy client-side certificates with the Digital Signature attribute set. </p>
<p>				2. Update the server-side binaries. </p>
<p>				3. Update the client-side binaries. </p>
<p>				How to update a MobiLink deployment that uses FIPS, TLS/SSL (includes HTTPS) and client-side certificates </p>
<p>				These steps update the client identity certificates twice if the Digital Signature attribute is missing from client-side identity certificates. This procedure can make the update less disruptive because synchronizations can continue without having to coordinate the client-side and server-side updates to occur at the same time. </p>
<p>				1. If your current client-side identity certificates do not have the Digital Signature attribute set and the client connects directly to the MobiLink server, then you must regenerate and deploy client-side certificates with the Digital Signature attribute set. </p>
<p>				2. Update the server-side binaries (remembering to include the new FIPS driver files) and deploy server identity certificates with AES-encrypted private keys. </p>
<p>				3. Update the client-side binaries (remembering to include the new FIPS driver files) and deploy client identity certificates with AES-encrypted private keys.</p>
<p>				How to update a MobiLink deployment that uses FIPS and end-to-end encryption </p>
<p>				1. Regenerate the primary key file referenced by the e2ee_private_key encryption option. </p>
<p>				2. Shut down the MobiLink server. </p>
<p>				3. Update the MobiLink server binaries, remembering to include the new required FIPS driver files. </p>
<p>				4. Change the e2ee_private_key option to point to the new private key file (or replace the old file), updating the e2ee_private_key_password, if required. </p>
<p>				5. Restart the MobiLink server.</p>
<p>				Note, connecting to and creating a MobiLink server resource in the 32-bit Windows SA Monitor that will use FIPS encryption to connect to the MobiLink server, may fail with the error, 揊ailed to load library mlcrsafips12.dll�. To work around this, you can either not use FIPS encryption, or use 64-bit SA Monitor. Similarly, connecting to a database server from 32-bit DBISQL, DBConsole, or Sybase Central using FIPS encryption, may also fail with the error, 揊ailed to load library mlcrsafips12.dll�. To work around this problems, you can either not use FIPS encryption, or use 64-bit client software.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749295">749295</a></td>
<td>The Dispose function of SATransaction did not automatically do a rollback. This nhas now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749387">749387</a></td>
<td>Under certain rare circumstances the server could have become deadlocked. For this to have occurred there must be a table continually undergoing many insertions and deletions. This has been addressed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749407">749407</a></td>
<td>If the connection between the MobiLink Notifier and the consolidated database had been disconnected, it was possible for the MobiLink Notifier to have failed to re-connect to the consolidated database. This has now been fixed.</p>
<p>				A work around to the issue is to restart the MobiLink Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749465">749465</a></td>
<td>Previously, an Oracle JRE was shipped with the software for use by clients. Now, the SAP JRE is shipped instead.</p>
<p>				Upgrading overwrites the JRE directory (%SQLANY16%\binXX\jre170) and its subdirectories. If you are using certificates, then your certificate store (%SQLANY16%\binXX\jre170\lib\security\cacerts) is overwritten, including your certificates. Similarly, fonts you added to the %SQLANY16%\binXX\jre170\lib\fonts\fallback directory to help display characters in the administration tools may be lost. To minimize upgrading steps with regards to the JRE change, create a backup copy of the JRE directory and all of its subdirectories before you upgrade so that you can refer to or restore files (such as cacerts) from the backup, as needed. To restore settings, use the java_vm_options option (SQL Anywhere), and/or the -sl java option (MobiLink) to optimize your Java VM startup settings.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749484">749484</a></td>
<td>In rare cases, after a log rename on the primary, a mirror or copy node could have stopped writing and applying changes. In order for this to have occurred, all of the following conditions must have applied:</p>
<p>				- the mirror or copy node must have been fairly recently started and requesting log pages (in the case of the mirror, not yet synchronized)</p>
<p>				- the mirror or copy node must have been writing pages from the primary&#39;s current log file</p>
<p>				- the primary log file was renamed</p>
<p>				- something (such as a virus scanner) must have accessed the renamed log on the primary (or parent), preventing the primary from opening the file when the mirror or copy node requested pages from it</p>
<p>				This has been fixed so that the primary or parent will attempt to open the renamed log several times before failing. If the file open still fails after multiple attempts, the primary will display the message &quot;Database &quot;&lt;database-name&gt;&quot; mirroring: failure when opening log file &lt;file-name&gt; for remote server &lt;server-name&gt;&quot; and the mirror or copy node will display the message &quot;Database &quot;&lt;database-name&gt;&quot; mirroring: database is not compatible with primary; files must be replaced&quot; and shut down the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749610">749610</a></td>
<td>When the Interactive SQL utility was run on Japanese or Chinese Linux, the list of categories in the &quot;Options&quot; window was sized so narrow that the names of the categories were not displayed at all. This has now been corrected.</p>
<p>				Note, the same sizing issue also occurred with the 揙ptions� window of the SQL Anywhere Console utility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749622">749622</a></td>
<td>If an archive backup was corrupt in a specific way, it was possible for the database server to crash when attempting to restore it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749628">749628</a></td>
<td>During execution of a Validate statement the server would have taken a data lock on the primary key table of any foreign keys of the table being validated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_106.htm#CR749714">749714</a></td>
<td>If the SET REMOTE OPTION statement had been used to store message control parameters in the database, it was possible for SQL Remote to have failed to gather the message control parameters from the database in very rare circumstances. The user would typically be prompted with a dialog box to fill in the message control parameters, and all the parameters would be blank. If the message control parameters were manually entered in the dialog, SQL Remote would succeed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR749821">749821</a></td>
<td>This change fixes several issues with regard to property attributes in the metadata document:</p>
<p>				- The OData Version 2 specification is unclear in the case of the max constant for the MaxLength attribute of a property. Many clients will accept both 搈ax� and 揗ax� as valid cases, but the Microsoft clients only accept 揗ax�. In OData version 4+, the spec is clear that the correct case is 搈ax�. To avoid such issues two things have been done:</p>
<p>				1. For SQLA and ASE, the MaxLength attribute will always specify the MaxLength attribute with a number in the range 1 to 2^31-1 (to avoid the use of 搈ax� altogether).</p>
<p>				2. It is possible for an IQ column to have a value that is larger than 2^31-1 bytes/characters, in which case we must continue to use 搈ax�. The default case will continue to be 搈ax� but the OData server administrator can override the case using the __MaxLengthMaxString option in the config file.</p>
<p>				- The DefaultValue attribute was being used incorrectly. The Microsoft OData clients expect the DefaultValue attribute of a given type to be a valid value (as would appear in a request URL) for that type. For example, the DefaultValue for an Edm.Int32 must be an 32-bit integer. This is somewhat unclear in the version 2 OData spec but is clearly the stated behaviour in OData version 4+.</p>
<p>				The DefaultValue attribute was being used to represent the underlying default of the database (for example, an autoincrement column would have DefaultValue=攁utoincrement�). Since the DefaultValue attribute is not appropriate for all possible default values that an underlying column in the database can have, we will no longer expose default value information in the metadata document using the DefaultValue attribute.</p>
<p>				- ASE Money data type columns were reporting a Precision and Scale of 0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR749824">749824</a></td>
<td>If a secure web procedure contained any of the certificate_unit, certificate_name, or certificate_company options, and one or more did not match the certificate used by the server, the connection could have hung or timed out. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750008">750008</a></td>
<td>In a multithreaded ADO.NET application, there was a possibility for process execution to hang, or for an exception to occur. Three problems were identified and corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750288">750288</a></td>
<td>If a network server was started with the LocalOnly TCP option set, and the server was running on a portable device (eg. a laptop), changes to the IP addresses on the machine would have been reflected in the server. For example, if a new IP address was added, a new listener would have been started on that IP address which could then accept connections from remote machines. This has been fixed. The LocalOnly option now disables IP address monitoring.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750296">750296</a></td>
<td>Three new features/modifications have been introduced in the MobiLink server:</p>
<p>				a) The setting for the ldap_failover_to_std property for a user authentication policy is extended to be 0, 1, or 2 [it originally accepts only 0 (FALSE) or 1 (TRUE)). The MobiLink server will authenticate users in the following ways, when ldap_failover_to_std is</p>
<p>				0: The MobiLink server will authenticate the user against LDAP server only. If the user cannot be authenticated against a LDAP server, the MobiLink server will fail the sync request, regardless of the types of the errors;</p>
<p>				1: The MobiLink server will authenticate the user using the standard script-based user authentication, if and only if the LDAP server(s) are not available. The authentication status, 6000 will be passed to the user authentication scripts, if the LDAP servers are not available;</p>
<p>				2: The MobiLink server will authenticate the user against a LDAP server first and then authenticates the user with the standard script-based user authentication, no matter if the user is authenticated or not with the LDAP server. The MobiLink server will pass one of the following values as a user authentication status to the scripts:</p>
<p>				1000: if the user is authenticated against the LDAP server;</p>
<p>				4000: if the user is not authenticated against the LDAP server; or</p>
<p>				6000: if the LDAP servers are not available.</p>
<p>				b) User authentication using a default authentication policy:</p>
<p>				The MobiLink server now supports user authentication against a LDAP server using a default user authentication policy. The default policy name can be specified from the new MobiLink server command option: -zup &lt;name&gt; &quot;set default policy name for user authentication (implies -zu+, cannot be used with -zu-)&quot;</p>
<p>				When a policy name is specified on the MobiLink server command line with this new option, any new MobiLink users that aren抰 in the ml_user table will be first authenticated against the LDAP server using this default policy, and then optionally calls the user authentication scripts, if the ldap_failover_to_std property for the default policy is configured with a value of 1 or 2. If the user is fully authenticated, it will be added into the ml_user table and the same user authentication policy will then be used to authenticate this user later. This new command line option implies 杬u+ and it cannot be used with 杬u-. The MobiLink server will complain, if both 杬up and 杬u- are given on the command line.</p>
<p>				Please note: the given default user authentication policy name must exist in the ml_user_auth_policy table , otherwise the MobiLink server will complain and refuses to start.</p>
<p>				c) The MobiLink user password will be hashed and stored in the ml_user table in the consolidated database, if and only if the ldap_failover_to_std property is configured with a value of 1 or 2. The password will not be saved, if this property is set to 0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750298">750298</a></td>
<td>In very rare, timing dependent cases, a copy node with children could have hung when it was reconnecting to its parent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750363">750363</a></td>
<td>If using FIPS, the SQL Anywhere FIPS DLL (dbfips16.dll) does not have to be in the path but the actual FIPS module DLLs (libeay32.dll, ssleay32.dll on Windows, libcrypto.so, libssl.so on Unix) do. On unix, they need to be in the LD_LIBRARY_PATH. If they were not found, the error message that results would have daid that the dbfips DLL could not be found. This has been fixed. The correct filename for the missing file will now be given, and the error message will indicate whether the file could not be found at all or if it could not be found in the path.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750493">750493</a></td>
<td>On Linux systems, the Relay Server State Manager (rshost) process could have failed to start under the following conditions:</p>
<p>				- the -o option was not specified, AND</p>
<p>				- if any of the environment variables $TMPDIR, $TMP, $TEMP was defined but the directory did not exist.</p>
<p>				Depending on how rshost was started, it could have failed silently. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750502">750502</a></td>
<td>Mirror server connections were ignoring the CommBufferSize (CBSIZE) connection parameter. This has been fixed so that CBSIZE can now be used to specify the maximum size of communication packets between mirror servers.</p>
<p>				In addition, transferring many log pages between mirror servers may have been slower than necessary. The default maximum packet size used for connections between mirror servers has been increased, which can improve performance in some cases. 16.0.0 mirror server connections now default to a maximum packet size of 64240 bytes, and 12.0.1 mirror server connections now default to a maximum packet size of 16000 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750511">750511</a></td>
<td>The connection between Relay Server Outbound Enabler and the backend server specified through the 朿s option no longer supports tls_type=ecc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750513">750513</a></td>
<td>The server could have crashed if a TDS based connection sent a cancel request and a cursor close request at the same time for the same connection. Note that the cancel request could have either been sent explicitly by the application or implicitly by the underlying driver due to a query timeout. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750611">750611</a></td>
<td>When a row was inserted into a table with a UNIQUE INDEX, with a NULL value in the index key and matching an existing index key with NULLs considered equal, the error SQLE_INDEX_NOT_UNIQUE was signaled. This has been fixed.</p>
<p>				Note that UltraLite does not support the clause 揥ITH NULLS NOT DISTINCT� for the CREATE INDEX statement. Therefore, an index key should be considered unique if it contains NULL in at least one column.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750618">750618</a></td>
<td>UltraLite is now supported for Windows 8 store applications and Windows Phone 8 applications.</p>
<p>				Each bottom level directory in the following tree under the SQLA install root contains a WinRT-based component (UltraLite.winmd/UltraLite.dll) that implements the UltraLite API for the noted platform.</p>
<p>				UltraLite</p>
<p>				+-- WinRT</p>
<p>				|-- WindowsPhone</p>
<p>				| +-- 8.0</p>
<p>				| +-- arm : Windows Phone 8 devices</p>
<p>				| +-- x86 : Windows Phone 8 emulator</p>
<p>				+-- Windows</p>
<p>				+-- 8.0</p>
<p>				+-- arm : Windows RT ARM-based devices</p>
<p>				|-- x64 : Windows 8 store apps for x64 architecture</p>
<p>				+-- x86 : Windows 8 store apps for x86 architecture</p>
<p>				Developing UltraLite applications using this software requires SQL Anywhere 16 and Microsoft Visual Studio 2012 or later.</p>
<p>				Developing Windows Phone applications requires the Windows Phone SDK 8.0, which is available from:</p>
<p>				http://dev.windowsphone.com/en-us/downloadsdk</p>
<p>				Windows Phone SDK 8.0 requires Windows 8. Microsoft lists the complete system requirements at:</p>
<p>				http://www.microsoft.com/en-us/download/details.aspx?id=35471</p>
<p>				Developing Windows store applications requires the Windows SDK for Windows 8, which is available from:</p>
<p>				http://msdn.microsoft.com/en-us/library/windows/desktop/hh852363.aspx</p>
<p>				The UltraLite.WinRT directory under the SQLA samples root contains a Visual Studio 2012 solution for the CustDb sample that appears in various forms for other UltraLite supported platforms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750638">750638</a></td>
<td>If a client application had included the 揈xpect: 100-continue� header in the request and had passed this request through the Relay Server, it was possible for the client to have received multiple 揌TTP 100 Continue� responses, which would likely have caused the client to have failed the request. This has been fixed, and only a single 揌TTP 100 Continue� response will now be sent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750691">750691</a></td>
<td>In rare cases, appending or prepending data to the value in a compressed column could have resulted in a server hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750713">750713</a></td>
<td>When trying to start an evaluation edition of the MobiLink server, it would fail with the following error:</p>
<p>				[-10382] The MobiLink Server has failed to start</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750915">750915</a></td>
<td>The SABulkCopy method would have thrown an exception when using SQL Server as the data source. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750919">750919</a></td>
<td>Opening online help (DCX) from the graphical administration tools may have failed with the error message &quot;Web page is not accessible&quot;. This would have happened under the following conditions:</p>
<p>				- Interactive SQL 12 was being run and the &quot;Help&quot; button was clicked on the &quot;Connect&quot; window the first time it was opened, and the network used a proxy to connect to the internet. </p>
<p>				- Sybase Central 12 or later, or Interactive SQL 12 or later, was being run and the fast launcher was turned on, and the network used a proxy to connect to the internet. </p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR750992">750992</a></td>
<td>The server may have crashed when attempting to execute a certain class of incorrect queries if the select list contained alias names and aggregate functions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751019">751019</a></td>
<td>When the Import and Export wizards offered a list of owners for a SQL Anywhere or IQ database, role names were consistently excluded. This has been corrected so that role names are now included..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751198">751198</a></td>
<td>The SQL Anywhere Oracle ODBC driver now supports the following new features when the database is running on an Oracle 12.1 server and the OCI library is from the Oracle 12.1 installation:</p>
<p>				- The maximum size of the VARCHAR2, NVARCHAR2, and RAW data types has been increased from 4,000 to 32,767 bytes</p>
<p>				- Implicit result sets can be returned from stored procedures. However the number of implicit result sets is limited to one per stored procedure. The implicit result set will be detected automatically by the ODBC driver regardless of the setting for the 揚rocedure returns results or uses VARRAY parameters� option in the DSN used by the ODBC application</p>
<p>				When the database is running on an Oracle 12.1 server and the OCI library is from the Oracle 12.1 installation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751199">751199</a></td>
<td>The MobiLink server now supports consolidated databases running on an Oracle 12.1 server. In order to use any of these Oracle 12.1 new features: 32K-byte varchar2, nvarchar2, raw data types, and implicit result sets, the build numbers of the SQLA Oracle ODBC driver must be greater than or equal to 1733 and the Oracle OCI library must be installed from the Oracle 12.1 installation image.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751207">751207</a></td>
<td>Using SACommandBuilder.DeriveParameters with a stored procedure or function that contained long data values as input or output parameters would have reported the size as 32767 bytes. This has been fixed and will now report a size of 0 bytes (to use the maximum size of the long data value during binding) instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751208">751208</a></td>
<td>An attempt to run the Extraction utility (dbxtract)on a database could have failed with a the error: 揷annot perform specified operation, number of administrators for role &#39;SYS_AUTH_WRITEFILE_ROLE&#39; falls below min_role_admins option value�, if the SYS_AUTH_DBA_ROLE had been migrated. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751211">751211</a></td>
<td>If there were many inserts, updates or deletes on a primary server, then checkpoints on the mirror or copy node could have been slow. In some cases, the primary&#39;s performance could be significantly impacted by slow checkpoints on the mirror. This has been fixed so that the mirror or copy node checkpoint performance has increased.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751213">751213</a></td>
<td>If multiple connections were using secure LDAPUA simultaneously while the public.trusted_certificates_file option was being changed, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751283">751283</a></td>
<td>If dbdsn was used with the -or switch to create an Oracle DSN, dbdsn -g would not have listed the Oracle-specific parameters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751285">751285</a></td>
<td>Some complex statements took a long time to open a cursor. For some classes, opening the cursor could not have been interrupted by cancelling the statement, nor could the server have been stopped until the open completed. One such instance has been corrected and the open will now respond properly to a cancel.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751374">751374</a></td>
<td>Under rare circumstances, a very long line segment defined in a Round Earth SRS (for example, SRS 4326) could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751386">751386</a></td>
<td>There were a number of problems with the CREATE ENCRYPTED/DECRYPTED DATABASE statements with respect to dbspace files with relative pathnames:</p>
<p>				- If a database contained a dbspace with a relative pathname, and the server was not started in the same directory as that file, the CREATE ENCRYPTED/DECRYPTED DATABASE statements would not have been able to find the dbspace file</p>
<p>				- In the above case, the error message would have said 揙utput file cannot be written� even though it was an input file causing the problem. The error message had no indication of which file caused the problem</p>
<p>				- If the target filename for these statements was in a different directory, the encrypted or decrypted dbspace files would have remained in the original directory.</p>
<p>				For example, if a database had a dbspace with the filename 揹bspace.dbs� and the following was executed: </p>
<p>				create encrypted database 憂ew/sales.db� from 憇ales.db� key 憁yencryptionkey�</p>
<p>				the server would have created the new dbspace.dbsE file in the same directory as dbspace.dbs, rather than in the 搉ew� subdirectory.</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751440">751440</a></td>
<td>When installing SQL Anywhere on Solaris, AIX, HP-UX and Mac OS X systems, some of the 32-bit files were erroneously excluded. This meant that some 32-bit client programs or external environments may not have been able to run. There is no workaround other than to use the 64-bit equivalent of these programs. This has been fixed. The missing files will now be installed along with the SQL Anywhere Client component.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751566">751566</a></td>
<td>The antialiasing algorithm used for SQL editors (including the SQL Anywhere auditing viewer, and the MobiLink server log file viewer) did not render certain fonts optimally. Chinese fonts on RedFlag Linux and small fonts generally were poorly drawn (or were not drawn at all). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751585">751585</a></td>
<td>If a database server attempted to send more than 16k of data over an HTTPS connection at one time, the client side of the connection could have hung. With version 16.x, this could also have happened if a TLS connection used a packet size bigger than 16000 bytes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751586">751586</a></td>
<td>Under very rare circumstances, renaming of cloud transaction logs could have failed, causing the logs to grow indefinitely. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751588">751588</a></td>
<td>The ASP.NET provider&#39;s database configuration tool, SetupAspNet, would have failed with a syntax error message. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751684">751684</a></td>
<td>If a domain was dropped and re-created within a batch, and the batch also included a subsequent reference to the domain in a CREATE TABLE or ALTER TABLE statement, the old (before drop &amp; create) domain was used for the column definitions. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751752">751752</a></td>
<td>A secure web procedure call through a proxy server could have failed with error code -988, 揑nvalid response from the HTTP server� if the web server or proxy attempted to redirect the call with a �301 Moved Permanently� status code. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751771">751771</a></td>
<td>A user defined function with a SELECT statement containing a common table expression could have been incorrectly inlined. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751847">751847</a></td>
<td>If an HTTP connection was manually dropped (using DROP CONNECTION), and another HTTP connection was accepted at the same time, it was possible for the server to have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751859">751859</a></td>
<td>On Windows, the UltraLite runtime would have crashed when the database file grew to over 2 GB in size. On Android, a SQLE_DEVICE_ERROR (-305) was signaled when the database file grew to over 2 GB. This has been fixed so that the UltraLite database files can now grow to 4 GB as documented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751863">751863</a></td>
<td>The CSDL namespace URL in the metadata document was incorrectly referring to CSDL 1.0 using URL http://schemas.microsoft.com/ado/2006/04/edm. It has now been updated to refer correctly to the CSDL 2.0 namespace URL: http://schemas.microsoft.com/ado/2008/09/edm.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751936">751936</a></td>
<td>The MobiLink Plugin now supports:</p>
<p>				The new MobiLink Server 杬up switch. This switch can be accessed from the Advanced tab of the property sheet for a MobiLink Server Command Line. An error is reported if 杬up is set and 杬u is set to false, as this is not allowed.</p>
<p>				For user authentication policies we now support calling the standard MobiLink authentication scripts: Never, Always or only when an LDAP server could not be found. This change affects the LDAP Servers page of the New User Authentication Policy wizard. It also affects the property sheet for user authentication policies. The setting is also shown in the right hand pane when User Authentication Policies are shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751937">751937</a></td>
<td>In rare cases, a copy node could have started but never have written or applied any changes that the primary or root had made until the copy node was restarted or the connection to its parent was lost. All of the following conditions must have been met for this problem to have been possible:</p>
<p>				- the database was backed up from the primary or root using dbbackup or the BACKUP statement</p>
<p>				- while dbbackup was running, there must have been other connections to the primary or root that had modified the database</p>
<p>				- between the backup and when the copy node was started on the backed up database, there was no commit done on the primary or root</p>
<p>				If this problem was occurring, the sa_mirror_server_status row for the copy node would show the copy node was connected with a recent last_updated value, but the log_written and log_applied values would not change. If the copy node was restarted, it would start applying and writing changes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751941">751941</a></td>
<td>If a database server received an HTTP POST request with a large payload, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR751948">751948</a></td>
<td>In rare timing dependent cases, a Linux or Unix server using TLS mirroring or diagnostic connections could hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752025">752025</a></td>
<td>If the server was running on a Windows machine which was suspended, the server could have hung once the machine was resumed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752033">752033</a></td>
<td>An attempt to use the Extraction utility (dbxtract) on a database running in the cloud would have failed with an invalid login_mode option error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752108">752108</a></td>
<td>An alert email subject line was mangled for the ZH locale. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752109">752109</a></td>
<td>The MobiLink server with an integrated Relay Server Outbound Enabler could have hung or crashed on shutdown. The has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752201">752201</a></td>
<td>If a procedure was defined with the special values SQLCODE or SQLSTATE as parameters, and the procedure was used in the FROM clause of SELECT statement, it was possible that the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752203">752203</a></td>
<td>If a certificate had an expiry date in the month of December, calling sa_certificate_info on that certificate could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752328">752328</a></td>
<td>In very rare cases the server may have hung at shutdown. This would only have happened while disconnecting TCP/IP connections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752347">752347</a></td>
<td>If there were multiple rows in the ml_scripts_modified MobiLink system table, the MobiLink Server would have failed to start and reported a primary key violation on the ml_scripts_modified table. This has now been fixed.</p>
<p>				A workaround is to manually remove all but one row from ml_scripts_modified table before starting the MobiLink Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752428">752428</a></td>
<td>In rare timing dependent cases, if a connection between a copy node and its parent was lost, it was possible for the new connection to have repetitively connected and disconnected. Normally this condition would have resolved itself within a minute or so, but in some cases it could have continued indefinitely. This has been fixed.</p>
<p>				If an ALTER MIRROR SERVER statement was used to add an alternate parent to a running and connected copy node, the alternate parent would have been used until the copy node restarted. This has been fixed so the alternate parent can be used the next time the copy node loses its connection to its parent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752610">752610</a></td>
<td>Sybase Central could have crashed if it was running and something was done to change the Windows desktop theme. This same problem could also have been encountered when using a Remote Desktop Connection with a low-bandwidth connection; in this configuration, Remote Desktop may automatically change the desktop theme to satisfy the bandwidth limitations. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752612">752612</a></td>
<td>When fetching a Date, Time, or Timestamp from the database as a string in a client, the fetch was much slower than if the data was bound to be fetched as a timestamp type or structure. This performance has been improved.</p>
<p>				Also, when fetching a Date, Time, or Timestamp, or other types that are not native strings or numerics, from the database when the clients character set is different from the database character set, the data would have been returned in the database character set. This has been fixed so the data will returned to the client in the client&#39;s character set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752638">752638</a></td>
<td>SQL Remote for SQL Anywhere could have failed with the following error:</p>
<p>				SQL statement failed: (-685) Resource governor for &#39;prepared statements&#39; exceeded</p>
<p>				when it was running in a continuous mode with the command line option 杧. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752641">752641</a></td>
<td>If a server was started with one database on the command line with mirroring enabled, and then other databases were started on the server, the server could have stopped incorrectly if the mirrored database failed to start when the database was restarted. Note that mirrored databases are automatically restarted by the server if they lose quorum, as well as other cases. This has been fixed so that if the mirrored database fails to start in this case, only the mirrored database will be stopped, and the server will remain running if there are other databases running.</p>
<p>				Also, if a server to server mirror connection failed due to a liveness timeout, no message was logged even if -z was enabled. In addition, other server to server connections contained little diagnostic information even if -z diagnostic logged was enabled. This has been fixed so that liveness timeout messages for mirror server connection are logged with or without -z. In addition, the messages &quot;mirror server connection closed by other side&quot; and &quot;connection terminated abnormally; error code &lt;number&gt;&quot; will be logged if -z is used and a mirror server connection is closed by the remote server or fails due to a network error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752756">752756</a></td>
<td>In very rare cases, the server may have crashed on currently unsupported arguments to the row constructor function. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752772">752772</a></td>
<td>Conversion of NUMERIC/DECIMAL columns to the .NET DECIMAL type has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752866">752866</a></td>
<td>When displaying results as text, column values might have been misaligned if a column to the left contained text with full-width Asian characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752869">752869</a></td>
<td>In very rare timing dependent cases, if the arbiter for a running High Availability system was changed to a different arbiter server, and then changed back to the original arbiter server later, the arbiter may have contained incorrect state information. If this occurred, there was a small chance that the incorrect partner could have become the primary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR752967">752967</a></td>
<td>The server may have returned an incorrect result set for a complex query with multiple nested derived tables or views, if there was an equality predicate that could have been pushed inside the nested derived tables and the outside derived table could have been flatted. If the problem happened, the equality predicate was not executed and the result </p>
<p>				set contains additional incorrect result rows.</p>
<p>				For example, in the below query the predicate &quot;v2.c = 0&quot; can be pushed inside the derived table &quot;v2&quot; and derived table &quot;v2&quot; can be flatted. Predicate is not executed in this case.</p>
<p>				select * </p>
<p>				from ( select distinct *</p>
<p>				from ( select a, sum(b) c from T1 group by a ) v1</p>
<p>				) v2 </p>
<p>				where v2.c = 0</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753080">753080</a></td>
<td>When a column inside a row was referenced in the GROUP BY list, the column could not be found when it was referenced through the row. For example, consider the following query:</p>
<p>				select (B.gencol1).id as gencol1 from (</p>
<p>				select ROW(A.id) as gencol1</p>
<p>				from Product A </p>
<p>				group by A.id) B order by gencol1</p>
<p>				B.gencol1 is a row with one column named id in it. (B.gencol1).id should have been able to reference to that column. In fact, it can reference it when 揼roup by A.id� is removed. However, when the GROUP BY was present, an error was returned: 揷olumn 慽d� not found in variable (B.gencol1)�. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753086">753086</a></td>
<td>UltraLite now supports Xcode 5 and iOS 7. Version 16 includes 64-bit libraries for the new A7 (arm64) chip along with the 64-bit simulator.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753092">753092</a></td>
<td>The MobiLink Agent for central administration of remote databases could have crashed when shut down. For the crash to have occurred, the agent must have executed a task that was conditional on the current network name on the device. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753095">753095</a></td>
<td>The MobiLink Agent for central administration of remote databases could have stored bad character data for task results. This in turn could have caused errors during synchronization with a MobiLink server. This problem would have occurred on a host with a multi-byte character set, and a task with an 揺xecute SQL script� command that returned a result set with multi-byte characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753178">753178</a></td>
<td>Identifiers such as namespace, entity, association, property and service operation names were not restricted in length and allowable characters, as required by the OData specification. This has been fixed. </p>
<p>				Note, model files may still refer to Database names that are not valid OData identifiers, however they must be renamed using 揂S� clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753193">753193</a></td>
<td>If a database server was running multiple databases with mirroring enabled, and one of the databases incorrectly used a primary or mirror alternate server name that was already in use by another database, connections to the other database that used the alternate server name could have failed. This has been fixed so that if one database starts using a particular alternate server name, that alternate server name will not be removed if a second database attempts to use it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753195">753195</a></td>
<td>Some compiler options have been changed in this build that can result in performance improvements in the SQL Anywhere server in certain situations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753279">753279</a></td>
<td>Execution of a DROP statement with an IF EXISTS clause for a table, view or materialized view, incorrectly returned an error if the object of the requested object type did not exist but there was an object with the same name but different object type. For example: there exists a table &quot;Products&quot; then a &quot;DROP VIEW IF EXISTS Products&quot; returns the error &quot;Table &#39;Products&#39; not found&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753293">753293</a></td>
<td>The SQL Anywhere OData producer was not properly handing JSON requests containing dates before Jan 1, 1970. This has been fixed so that these dates are now handled correctly</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753296">753296</a></td>
<td>Edm.Decimal values differed in format between EntityIDs and response bodies. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753365">753365</a></td>
<td>Typing in to the SQL field of the Spatial Viewer window could have caused an internal error if the database connection had been closed from the main DBISQL window. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753386">753386</a></td>
<td>When following skiptokens, the OData Producer could have been slower to retrieve data than optimal. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753522">753522</a></td>
<td>If a skiptoken contained nulls, it would not have been parsed properly resulting in an error like:</p>
<p>				The value for property &quot;{columnname}&quot; in a key predicate is formatted incorrectly.</p>
<p>				If paging through descending order on a column with nulls, skiptoken may have missed results or restarted at top (thus creating an infinite dataset). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753615">753615</a></td>
<td>In very rare, timing dependent cases, the server could have crashed when starting or stopping a database, failing on a &quot;MESSAGE ... TO CLIENT FOR ALL&quot; statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753632">753632</a></td>
<td>In certain cases, duplicate download rows may not have been detected by UltraLite, and rather, silently applied as if AllowDownloadDupRows were active. This has been corrected so that duplicate download rows will now signal SQLE_PRIMARY_KEY_NOT_UNIQUE errors, or SQLE_DUPLICATE_ROW_FOUND_IN_DOWNLOAD warnings (if the AllowDownloadDupRows option is specified).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753708">753708</a></td>
<td>The REPLACE string function could have crashed on certain inputs such as:</p>
<p>				&quot;select replace( &#39;XAAAAAAAXBBBBXBBBB&#39;, &#39;XAAAAAAA&#39;, &#39;Z&#39; )&quot;.</p>
<p>				This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753719">753719</a></td>
<td>Zero-length linestrings were being treated as invalid. For example, selecting ST_Geometry::ST_GeomFromText( &#39;LineString( 1 1, 1 1 )&#39; ) would have resulted in an error indicating that linestrings must have at least two points. The OGC standard does not forbid zero-length linestrings, so this geometry should be accepted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753721">753721</a></td>
<td>The row-level update triggers and referential update actions may have incorrectly fired for unchanged columns if the UPDATE statement was executed by SQL Remote and caused an update conflict. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753782">753782</a></td>
<td>Opening the property sheet for an index on a materialized view could have crashed Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753783">753783</a></td>
<td>Sybase Central could not re-enable a secured feature for a version 12 database running on a version 16 server. Attempting to do so would have resulted in a 揚rocedure &#39;sp_use_secure_feature_key&#39; not found� error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR753866">753866</a></td>
<td>The JRE location used in the SIS_SimpleListener sample was out of dated and may have caused the listener to fail actions requiring JRE if the search path didn抰 already cover any JRE locations. The JRE location used in the SIS_SimpleListener sample has now been brought up to date.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754211">754211</a></td>
<td>The SQL Anywhere sample program build procedures have been updated to simplify Microsoft Visual Studio x64 platform builds. When the Visual Studio C++ tools are set to use the x64 compiler, the SQL Anywhere sample build.bat scripts will build an x64 version of the sample programs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754294">754294</a></td>
<td>If SetCloudArbiter was run, but it was unable to set the cloud arbiter as desired (perhaps only one of the two high availability partners was running), then the task could have been reported as succeeding and cloud tables would have reflected the change, but the change would not have actually happened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754304">754304</a></td>
<td>In rare, timing dependent cases, a multi-threaded client application could have incorrectly received the error &quot;Parse Error: DSN &#39;&lt;name&gt;&#39; does not exist&quot;, or possibly other connection errors. In order for this to have occurred, the process needed to be making concurrent connections and needed to use both a User DSN and a System DSN. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754404">754404</a></td>
<td>The agent action ETD file could have had missing log entries if dbcloudagentaction.exe crashed or was terminated. This has been fixed so that ETD log entries are now written to the file by dbcloudagentaction.exe immediately.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754419">754419</a></td>
<td>The Relay Server running on an Apache webserver with hybrid MPM (event or worker), could have crashed. This issue was seen in Event (hybrid) MPM. Perfork MPM did not show this problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754638">754638</a></td>
<td>The Service utility for Windows (dbsvc) was treating leading @ in passwords as an intend to expand the argument via a file or environment variable. This is a consistent behavior across many SQL Anywhere command line tools. However, there is no general escape syntax for leading @ in command line arguments. Users can work around the issue by avoiding user defined elements with leading @, but is not acceptable for user accounts with established or generated passwords. A fix was made to the Service utility specifically so that it will fall back to take the entire password argument following 杙 literally if the expansion failed. This change does not apply to other tools.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754721">754721</a></td>
<td>If a cloud partner was in the process of starting, including immediately after having being converted to a cloud partner, the UpgradeCloudInfrastructure task could have failed, and one of the cloud partners could have been disconnected after the failure upgrade. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754724">754724</a></td>
<td>Under exceptional rare circumstances, the server may have crashed when receiving a host variable value on a TDS communication based connection failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754733">754733</a></td>
<td>Interactive SQL could have appended a spurious character to the command line if it was passed a command file which was hidden using the File Hiding utility (dbfhide) . This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754832">754832</a></td>
<td>In rare, timing dependent cases, the server could have crashed when a mirrored database was stopped or restarted. The crash was more likely (but still rare) if asyncfullpage mode was used. Note that mirrored databases can automatically restart for a number of reasons - for example after loss of quorum. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754970">754970</a></td>
<td>In rare, timing dependent cases, the server could have hung indefinitely if it was renaming the transaction log at the same time as a DDL operation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754972">754972</a></td>
<td>Under very rare circumstances, the server may have crashed while sending describe queries though from Java applications. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR754973">754973</a></td>
<td>If certain errors occurred during a backup, the Backup utility (dbbackup) would have reported �100% complete� before displaying the error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR755077">755077</a></td>
<td>The following query would have resulted in a polygon with points not snapped to grid:</p>
<p>				new ST_Point( 2, 2.5 ).ST_Buffer( 1.1 )</p>
<p>				Trying to use the resulting CurvePolygon in an operation may have caused unpredictable results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR755094">755094</a></td>
<td>The Deployment Wizard was not correctly populating the &#39;Environment&#39; or &#39;Registry&#39; tables in the MSI package, meaning that 慞ATH&#39;, &#39;SQLANY16&#39; and &#39;SOFTWARE\Sybase\SQL Anywhere\16.0&#39; were not being set inside SQL Anywhere 16 deployment MSIs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_107.htm#CR755249">755249</a></td>
<td>When a URL query parameter contained double forward slashes, the IIS Relay Server incorrectly converted them into a single forward slash. The X-Original-Url header does correctly preserve the correct original URL and might have been used by the backend server as a workaround. This issue has been fixed. </p>
<p>				Note, this issue doesn抰 happen on the Apache Relay Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755372">755372</a></td>
<td>If the Certificate Creation utility (createcert) was used without the -3des option, a compatibility warning was displayed warning that the resulting certificate would not be compatible with older versions of the software. The build numbers shown in this message were incorrect. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755388">755388</a></td>
<td>With UltraLite for WinRT, file transfers with the stream parameter 揷ompression=zlib� would have failed, resulting in MobiLink communication error code 224. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755389">755389</a></td>
<td>A $links request could have failed when a $orderby was used that included a non-key property of the related entity type. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755513">755513</a></td>
<td>The message used to shutdown the OData server (dbosrv16) was too generic. This has now been chabged from &#39;shutdown&#39; to &#39;shutdown_sap_sqla_odata&#39;.</p>
<p>				Note, older dbostop16 utilities will not be able to shutdown newer OData Server, and new dbostop16 utilities will not be able to shutdown older servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755522">755522</a></td>
<td>The Quick Setup script for the Apache Relay Server would have generated a RSConfigFile directive inside &lt;LocationMatch /srv/iarelayserver..&gt; tag. This directive is no longer produced now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755524">755524</a></td>
<td>Under rare circumstances, queries using hash filters could have caused the server to crash. This was more likely in environments with a heavy load, and/or cursors held open for long periods of time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755529">755529</a></td>
<td>Creating a certificate with an expiry date beyond 2050 would have resulted in a certificate that expired 100 years before the expected expiry date. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755531">755531</a></td>
<td>When using $format, it did not accept long forms of content-types, for example: $format=application/atom, $format=application/json, or $format=application/atom+xml. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755676">755676</a></td>
<td>In very rare, timing dependent cases, establishing a connection with a non-default maximum packet size connection parameter could have caused a loaded server to crash. The default maximum packet size for a server can be specified using the -p server option. A client application can request a different packet size using the CBSize connection parameter. Mirroring servers containing Engineering case 750502 change would also have used a non-default maximum packet size. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755767">755767</a></td>
<td>Iif the OUTPUT statement was attempting to write a string which contained characters whose Unicode representation was greater than U+FFFF (known as &quot;supplementary characters&quot;), the statement would have failed with the message &quot;Could not save result set. Input length = 1&quot; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755792">755792</a></td>
<td>Feature request to have a command in dbisql that displays the list of reserved keywords.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755797">755797</a></td>
<td>HTTP header names in batch requests were not case-insensitive. This would have resulted in valid HTTP headers being ignored in the parts of a batch request. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR755840">755840</a></td>
<td>When initializing a cloud on Windows, checking the &quot;Use FIPS encryption&quot; checkbox would not have initialized the cloud for FIPS. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756026">756026</a></td>
<td>The following new features have been added to the OData Producer. Please see documentation for full details.</p>
<p>				- The OData Producer now supports Optimistic Concurrency Control as defined by versions 2.0 of the OData Specification.</p>
<p>				Using the OSDL model definition file (see Example 1), a developer may specify a set of properties on an Entity Type to define the concurrency token of the Entity. </p>
<p>				- The OData Producer now supports Service Operations using HTTP GET and POST methods as specified by version 2.0 of the OData Specification.</p>
<p>				Developers must declare explicitly what service operations to expose in an OSDL file.</p>
<p>				- OData Producer uses less objects when caching metadata for users that have (from the OData Producer抯 perspective) identical access.</p>
<p>				- OSDL files support added escape sequences in quoted strings</p>
<p>				- Associations are now annotated as referential constraints in the metadata and association properties of referential constraints are now visible by default. Association may also have OnDelete attributes in the metadata which documents how the dependent entity instance is affected when the associated principal entity instances is delete.</p>
<p>				- The log generated by OData Producers has been enhanced to identify the producer and request associated with each log event.</p>
<p>				- OData server supports multiple producers</p>
<p>				dbosrv16 can now host multiple producers, each connecting to a different database. All producers share the same options configuration file and are hosted on the same port. The producer configuration file syntax has been augmented for this feature.</p>
<p>				- The OData producer now supports a greater subset of the OData Service Definition Language (OSDL).</p>
<p>				The new supported syntax adds the ability to:</p>
<p>				- Explicitly set the name of tables that are exposed through the producer</p>
<p>				- Explicitly include/exclude columns</p>
<p>				- Define entity sets with generated keys</p>
<p>				- Define associations between entities, including complex associations that use an underlying association table</p>
<p>				- Define navigation properties</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756028">756028</a></td>
<td>Under rare circumstances, a server that was performing request level logging could have crashed when executing stored procedure code. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756032">756032</a></td>
<td>If two subscribed publication articles contain two of the same tables and both contained the same list of columns, when adding a synchronization subscription to the second publication the database server would have erroneously reported the error:</p>
<p>				SQLCODE -1325: Column subset for table &#39;%1&#39; in publication &#39;%2&#39; does not match that specified in publication &#39;%3&#39;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756038">756038</a></td>
<td>If an OData server was shutdown and immediately restarted, it could have failed to connect to its port or shutdown port. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756118">756118</a></td>
<td>The server may have incorrectly returned the non-fatal assertion error 106104 &quot;Field unexpected during compilation&quot; for an IN list predicate, if the IN list contained expressions with column references for which the value was unknown at open time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756129">756129</a></td>
<td>Queries comparing a timestamp with time zone column to a string literal could have returned incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756266">756266</a></td>
<td>When running a cloud based on SAODE SP3, and when using SQL Anywhere version 12 to run the Primary server, the Cloud would have failed to see any software updates. It would also have failed to synchronize usage information. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756394">756394</a></td>
<td>Under exceptional rare circumstances, the server may have crashed when trying to reuse a cached query plan if tables used in the query were dropped and recreated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756565">756565</a></td>
<td>Parameters of the function substringof() were used in the wrong order, and has now been corrected. The intended meaning of substringof( s1, s2 ) was 搑eturn whether or not s1 is a substring of s2�. The OData server was doing the opposite, 搑eturn whether or not s2 is a substring of s1�.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756681">756681</a></td>
<td>In rare cases, the server could have returned an error like:</p>
<p>				&quot;Table &#39;_^_^_22072007_^_^_759_^_^_22072007_^_^_&#39; not found&quot;</p>
<p>				for an internal temporary table if an INSERT, UPDATE, or DELETE statement triggered the change of an immediate materialized view. The problem only happened when the very first INSERT, UPDATE, or DELETE of the table in a connection was executed in a nested block, for example a trigger or procedure. In this case subsequent DML operations on the </p>
<p>				table may then have returned the above error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756707">756707</a></td>
<td>Sybase Central could have crashed if it was running and something was done to change the Windows desktop theme. This same problem could have been encountered when using a Remote Desktop Connection with a low-bandwidth connection; in that configuration, Remote Desktop may automatically change the desktop theme to satisfy the bandwidth limitations.</p>
<p>				This issue was partially fixed by the changes for Engineering case 752610, but this change goes beyond it by fixing the following problems as well:</p>
<p>				- On the Search panel, the &quot;Search&quot; button enabling logic and the button&#39;s clicking logic would stop working after the look-and-feel changed. </p>
<p>				- Sybase Central could have crashed if any of the following panels/windows were open when the look and feel were closed:</p>
<p>				1. &quot;Results&quot; on the &quot;Search&quot; pane</p>
<p>				2. The list of plug-in in the &quot;Sybase Central Plug-ins&quot; window.</p>
<p>				3. The connection profiles window</p>
<p>				4. The About window</p>
<p>				5. The Disconnect window</p>
<p>				- The background color of items in details panels would have been painted gray (rather than white) after switching look-and-feel.</p>
<p>				- Drop-down toolbar buttons (e.g. &quot;Tools&quot;) did not draw their arrow, and did not open when clicked.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756745">756745</a></td>
<td>Simulating the time in between synchronizations when replaying a persistent connection could have caused the synchronization to timeout. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756777">756777</a></td>
<td>In rare cases, the server may have crashed when executing an invalid plan that contained an equi-join to a correlated subquery. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756786">756786</a></td>
<td>In the Console utility (dbconsole), if the Connections panel was configured to show the last reported statement, and the statement was longer than 255 characters, a &quot;Right truncation of string data&quot; error would have been reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756801">756801</a></td>
<td>The builtin SQL functions HTTP_BODY, HTTP_HEADER and HTTP_RESPONSE_HEADER were returning an empty string when the required value did not exist, instead of NULL as documented. This has been corrected so that they now return NULL when the required value does not exist. As well, the builtin function HTTP_RESPONSE_HEADER has been corrected to recognize the special header name 慇HttpStatus� and return the status code if given 慇HttpStatus�.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756878">756878</a></td>
<td>Improperly encoded URIs could have caused an internal server error. For example, executing the query &quot;http://localhost:8105/odata/Filter03/T6?$filter=c1 eq &#39;%&#39;&quot; against the OData producer, would have caused the following internal server error:</p>
<p>				HTTP ERROR: 500 </p>
<p>				Problem accessing /odata/Filter03/T6. Reason: while trying to invoke the method</p>
<p>				com.sybase.odata.producer.util.RequestWrapper.getParameterMap() of a null object</p>
<p>				loaded from field com.sybase.odata.producer.handler.AbstractHandler.request of an</p>
<p>				object loaded from local variable &#39;this&#39; </p>
<p>				This has been fixed. Clients will now get</p>
<p>				HTTP ERROR: 400 Bad Request</p>
<p>				&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</p>
<p>				&lt;error xmlns=&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;&gt;</p>
<p>				&lt;code&gt;30175&lt;/code&gt;</p>
<p>				&lt;message xml:lang=&quot;en-US&quot;&gt;An error occured while parsing the request URI at offset 59.&lt;/message&gt;</p>
<p>				&lt;/error&gt;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756886">756886</a></td>
<td>Mirroring servers now log more detailed information to the console log in the following cases:</p>
<p>				- when failover occurs and the mirror server takes over as the primary &quot;Now running as primary server&quot; is now logged. Previously, &quot;Database &lt;name&gt; (&lt;file&gt;) started at &lt;date/time&gt;&quot; was logged, which was incorrect because the database was already started and was not restarted.</p>
<p>				- if the mirror server was behind applying operations and caused the primary to block for more than 10 seconds, &quot;primary blocked for &lt;number&gt; seconds waiting for the mirror to catch up&quot; is logged.</p>
<p>				- transaction log start and current offsets are now displayed when starting up a database and at other transitions (such as when the transaction log is restarted).</p>
<p>				- if there was an unexpected error that caused applying the transaction log to fail, a message is displayed and the database is not automatically restarted</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR756960">756960</a></td>
<td>If starting a database on a server with the �-udf abort� option failed due to an assertion failure, trying to start another database with the same name would have returned a &quot;database name is not unique&quot; error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757009">757009</a></td>
<td>When the server executed an ALTER TABLE statement, or loaded the table definition of a table with a unique index (primary key, table/column unique constraint or unique index) it did not derive the unique property to non-unique declared indexes that were defined on a superset of the columns of a unique index. </p>
<p>				For example: If a table has a primary key on columns (col1, col2) and there is another index on columns (col2, col3, col1) then this other index is unique as well.</p>
<p>				The optimizer relies very much on this unique property of an index for cardinality estimation. So the server may have used an non-optimal plan if above conditions were true. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757144">757144</a></td>
<td>Under rare circumstances, load calculations on a cloud server could have looped with an error: 搗alue outside of range for destination�. Restarting the server would then eliminate the error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757146">757146</a></td>
<td>Under rare circumstances, the server could have crash when executing an ALTER MATERIALIZED VIEW � IMMEDIATE REFRESH statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757264">757264</a></td>
<td>In timing dependent cases, a mirror or copy node could have crashed while shutting down due to an error detected while applying the transaction log - such as a transaction log mismatch. This crash could have only occurred after the databases were shut down and communications completed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757265">757265</a></td>
<td>The Outbound Enabler may have crashed on startup while creating an HTTPS up-channel and down-channel at the same time before using them. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757273">757273</a></td>
<td>Long-form formats like application/json were not supported with the $format query option. This has been corected by adding support for the following long-form constants:</p>
<p>				application/xml</p>
<p>				application/atom+xml</p>
<p>				application/json</p>
<p>				*/*</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757274">757274</a></td>
<td>The system procedure sp_parse_json() would have failed to parse escaped character sequences in strings. In particular, it would not have parsed \� (escape double quote), nor any escaped character near the end of the string.</p>
<p>				For example, this statement would not have handled the \� sequences and would have generated an error:</p>
<p>				call sp_parse_json( 憁yvar�, 慬{s:攖his is \攓uoted text\�.攠]� );</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757282">757282</a></td>
<td>The Outbound Enabler was taking longer than necessary to shut down. This has been fixed by removing unneeded operations and to tune for a faster shutdown response.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757492">757492</a></td>
<td>When a multibyte character string with a truncated last character was unloaded, the last two bytes of a character may be added to the end of the string as ASCII characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757516">757516</a></td>
<td>Calling the ODBC function SQLBulkOperations() with SQL_ADD could have failed to insert rows without returning an error if the number of rows multiplied by the number of columns was more than 65535. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757529">757529</a></td>
<td>A security issue with the Unload utility (dbunload) has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757696">757696</a></td>
<td>In some cases, an updated row in a table marked as 搒ynchronize all� would have been uploaded as an UPDATE with a pre and post image, rather than an INSERT, which is what all rows in such a table are expected to be uploaded as. Also, if there was an uncommitted update on a row in that type of table, it wouldn抰 be uploaded at all. These bugs have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757937">757937</a></td>
<td>Attempting to save the SQL for an event that contained whitespace before the BEGIN keyword would have resulted in a syntax error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR757959">757959</a></td>
<td>Under exceptionally rare circumstances, the server may have returned too many rows from a parallel hash semi-join if the build site is the preserved table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758063">758063</a></td>
<td>When the system procedure sa_server_messages() was called from services, in such a way that it returned an empty result set, it could have put the server in a state where further concurrent calls to sa_server_messages() could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758073">758073</a></td>
<td>The Visual Studio 2010 compiler could have crashed when generating Entity Data Models. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758327">758327</a></td>
<td>When the PHP external environment on Windows was used during an HTTP request (with thread-safe PHP), the PHP process may have crashed or behaved incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758332">758332</a></td>
<td>For certain geometries, ST_Buffer may report a ring not closed error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758422">758422</a></td>
<td>When starting the database server with a minimum multiprogramming level (command line option &quot;-gnl &lt;value&gt;&quot;) that was higher than the default maximum, the database server would not have adjusted the maximum setting. The number of threads would never have gone higher than the maximum. This has been fixed. If the minimum (-gnl) value exceeds the maximum value, then the maximum and initial MultiProgrammingLevel settings will be readjusted to this minimum.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758543">758543</a></td>
<td>The server could have become deadlocked when attempting to drop a user with a table in-use. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758564">758564</a></td>
<td>LineStrings in Round Earth SRSs could have been represented incorrectly. This could have happened for LineStrings with segments crossing equator from South to North. Additionally, under very rare circumstances, such LineStrings could have caused a stack overflow exception. This has been fixed.</p>
<p>				In the existing databases, LineStrings that cross equator from South to North and are stored in a Round Earth SRS (for example, 4326) should be reloaded in order to be stored in the correct representation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758580">758580</a></td>
<td>When a reusable plan for a statement in a stored procedure was executed from the plan cache, in certain cases the reused plan failed to obtain schema locks on all of the tables occurring in the statement. As a result, another connection was not blocked from performing concurrent DDL on a table in use by the cached plan. This scenario could have caused data corruption that could lead to a non-recoverable database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758811">758811</a></td>
<td>In rare, timing dependent cases, if a connection was running a procedure and a DDL operation occurred, the server could have crashed. In order for the crash to have occurred, the procedure needed to have a statement that referenced a view or multiple tables. This has been fixed.</p>
<p>				In rare, timing dependent cases, if multiple connections were running the same procedure concurrently and a DDL operation occurred, the server could have hung. In order for the hang to have occurred, the procedure needed to have had multiple statements that referenced the same view. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758812">758812</a></td>
<td>The property sheet for a table column would not have allowed changing the column抯 揅ompress values� or 揗aintain BLOB indexes for large values� settings if the column抯 type was a domain, even if the domain抯 base type supported these settings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758899">758899</a></td>
<td>Spatial operations may, in rare cases, have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758922">758922</a></td>
<td>SQL Anywhere, on-demand edition now supports a new AddCloudSoftwareUpdateFromFile task. The new task adds cloud software to the cloud, given a cloud software update package file local to the Partner server. If your cloud is running in High Availability mode when adding the cloud software, the update package file should be copied to both Partners before running the AddCloudSoftwareUpdateFromFile task.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR758927">758927</a></td>
<td>When adding a new host to a SQL Anywhere, on-demand edition SP4 Cloud, if cloud software older than SP4 was specified for the host, it would have failed with an error like:</p>
<p>				&quot;File or directory /opt/saondemand100/data/staging/SD-z6b9/Bin64/libeay32.dll not found&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759114">759114</a></td>
<td>Attempting to fetch the date 0000-01-00 as either a java.sql.Timestamp or java.sql.Date using the SQL Anywhere JDBC Driver would have resulted in the wrong value being returned and all subsequent timestamp values being incorrect. This date is not representable within Java, hence the value now returned will be 0001-01-01 and all subsequent timestamp values will now be correct. </p>
<p>				Note that this change is most significant when querying the mv_known_stale_at column from SYS.SYSVIEW since 0000-01-00 represents a materialized view that is either fresh or in an unknown state. The value will now be returned as 0001-01-01 instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759129">759129</a></td>
<td>If a Java stored procedure was defined such that the number of OUT parameters in the stored procedure definition was not equal to the number of OUT parameters in the Java signature, then the server would have returned an ArrayOutOfBounds exception when the procedure was called. This problem was introduced by the fixes for Engineering case 691193, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759139">759139</a></td>
<td>The &quot;custom&quot; source control option -- the one in which a command line is entered to check in / check out / etc. -- was broken. Attempting to enable it resulted in an error message &quot;Interactive SQL could not load the interface library for your source control system.&quot; This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759209">759209</a></td>
<td>The server may have loaded too large a value, and NaN/INF values, into DOUBLE, FLOAT and REAL columns by LOAD TABLE and OPENSTRING. This has been fixed. The server will now generate an error for these values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759243">759243</a></td>
<td>In some situations, it was possible for an HTTPS synchronization to fail, though no actual stream error code would have been reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759373">759373</a></td>
<td>In the Views folder, clicking the 揕ast Refresh Time� or 揔nown Stale Time� column headings to sort the views by one of these columns would have produced incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759431">759431</a></td>
<td>The search condition &quot;&lt;expression&gt; IS [ NOT ] ( type-name, ... )&quot; may have incorrectly evaluated to FALSE, or have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759461">759461</a></td>
<td>It was possible for the Relay Server to have incorrectly reported fatal error RSF13011 (Failed allocating shared memory block for client traffic statistic collector of backend server &#39;XXX&#39; in backend farm &#39;YYY&#39;). After this fatal error, the Relay Server would no longer have communicated with backend server 慩XX� in backend farm &#39;YYY&#39; until the Relay Server Host Manager was restarted. While there continue to be legitimate reasons for the RSF13011 error to be reported, the problem that would have led to the incorrect reporting of the RSF13011 error has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759525">759525</a></td>
<td>If a web procedure URL was badly formed, the server could have crashed when the procedure was called. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759618">759618</a></td>
<td>A failed ALTER TABLE statement could have corrupted the database. For corruption to occur, the table being altered must have contained no data, but must have contained some at some point. The error most likely involved was 揷olumn not found�. Assertion failures possible included 201135 (page freed twice), 201503 (Record X not present on page Y), 200106 (attempting to add row twice), 200131 (Invalid page found in index), 106200 (Unable to undo index changes during rollback), 100700 (Unable to find table definition X for record referenced in rollback log), or 101422 (Attempt to write an invalid page).</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759714">759714</a></td>
<td>The &quot;Download&quot; link has been removed from the &quot;Cloud Software&quot; panel for the Cloud.</p>
<p>				References to the Usage Server have been removed. The following hyperlinks have been removed from the Cloud&#39;s &quot;Overview&quot; page: &quot;Activate the cloud&quot;, &quot;Refresh activation state&quot;, &quot;Send usage information&quot;, &quot;Log in to Usage Server&quot;.</p>
<p>				On the Cloud overview page, the &quot;Licensing&quot; properties are now displayed all the time. Previously, they appeared only after the cloud was activated. The &quot;Licensing&quot; section now includes two new links: &quot;Add Licenses&quot; and &quot;Remove Licenses&quot; for managing cloud licenses.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR759830">759830</a></td>
<td>An application using the ADO.Net Manager Provider could have failed with the error 揢nable to load DLL 慸bdata16.dll挃 when calling SAConnectionStringBuilder.ToString. Ths has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760022">760022</a></td>
<td>If auditing was on and the database contained events that were executed, the output from dbtran -g could have contained lines like the following:</p>
<p>				--CONNECT-1025-0000952657-failure-2014-03-18 09:36</p>
<p>				indicating a possible connection failure. This has been fixed. These lines do not indicate a connection failure. They can be safely ignored and will not show up in transaction logs created with fixed servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760057">760057</a></td>
<td>Some LDAP servers allowed a zero length password to unexpectedly allow a user to </p>
<p>				successfully authenticate. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760128">760128</a></td>
<td>In certain cases, a user that had the appropriate system privilege to create a procedure, function, view, trigger, or sequence, but did not have the appropriate privilege to alter it, was still able to alter the object. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760144">760144</a></td>
<td>When performing an absolute or relative fetch, the SELECT list expressions for rows that are not returned were evaluated. These were not strictly needed and if they contained expensive operations such as UDFs this could have been slower than necessary. If the Row_counts option was TRUE and the query optimizer could not accurately estimate the number of rows to be returned, the server simulates an ABSOLUTE fetch to position 1000000000 in order to count the rows. Before this change, all select list expressions were evaluated for these rows.</p>
<p>				These unneeded evaluations are now skipped. A change in behaviour is that side effects and errors are no longer observed in some cases. There may still be more executions than client fetches due to factors such as prefetching.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760153">760153</a></td>
<td>Creating a Deployment Wizard installation which included the Interactive SQL utility, the MobiLink Profiler or the Console utility, but not Sybase Central, would have failed to include JComponents1600.jar. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760165">760165</a></td>
<td>The SetBytes methods of the ResultSet and Table classes would have truncated the byte array argument if the array was larger than 32 KB. This has been fixed.</p>
<p>				The same incorrect behaviour would also have occurred with the SetString method of ResultSet and Table, and with the SetParameterBytes method of PreparedStatement. These cases have also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760339">760339</a></td>
<td>A number of issues related to the &quot;Save as ODBC Data Source&quot; dialog when running 64-bit software on 64-bit Windows, have been corrected:</p>
<p>				-- The dialog appeared to give the option of creating both 32 and 64-bit versions of a user data source. This option applies only to creating system DSNs, and is now disabled.</p>
<p>				-- When trying to create both a 32 and 64 bit system DSN, but the 32-bit could not be created, the error message was irrelevant. This has been fixed; the error message now says why the data source could not be created.</p>
<p>				-- Data sources could be created with non-canonical forms of the connection parameter names. This would have prevented the Data Source utility (dbdsn) from listing the data source completely. This has been fixed.</p>
<p>				-- Creating a system data source could have caused up to three elevation prompts if a 32-bit data source was also created. Now, there is at most one prompt.</p>
<p>				-- The dialog allowed creation of a user data source, even if there was already a system data source of the same name. Similarly, it allowed creation of a system data source with the same name as an existing user data source. This was very poor practice and could have lead to unexpected results if a user didn&#39;t realize that user data sources take precedence, and so the practice is now simply disallowed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760362">760362</a></td>
<td>If the SQL Anywhere ODBC driver, or the Sybase IQ ODBC driver version 15.x or later, was used to connect to a database with the database option &#39;quoted_identifier&#39; set to &#39;off&#39;, or to a database on a 9.0.2 or earlier server, the ODBC driver would have failed to establish some properties of the DBMS. </p>
<p>				When quoted_identifier was &#39;off&#39;:</p>
<p>				1. For a Sybase IQ DBMS, the driver would have reported [SQL Anywhere] in messages rather than [Sybase IQ]. </p>
<p>				2. For a Sybase IQ DBMS, the driver would have reported &quot;SQL Anywhere&quot; instead of &quot;Sybase IQ&quot; for SQLGetInfo(SQL_DBMS_NAME).</p>
<p>				3. For a Sybase IQ DBMS, the driver would not have used the &quot;SYS.SYSIQVINDEX&quot; table for SQLStatistics, but would have used &quot;SYS.SYSINDEX&quot; instead.</p>
<p>				4. For a Sybase IQ DBMS, the ODBC driver will report the wrong server version number (e.g., 12.0.1 rather than 15.4) for SQLGetInfo(SQL_DBMS_VER).</p>
<p>				In addition, when quoted_identifier was &#39;off&#39; or the server was version 9.0.2 or earlier:</p>
<p>				5. The ODBC driver would not have known the correct CHARSET setting.</p>
<p>				6. The ODBC driver may have had the wrong setting for the case sensitivity of the database and may have affected SQLGetTypeInfo and other schema query functions.</p>
<p>				7. The ODBC driver may have had the wrong setting for the odbc_distinguish_char_and_varchar option.</p>
<p>				8. The ODBC driver may have had the wrong setting for the odbc_describe_binary_as_varbinary option.</p>
<p>				Other than these issues, there are no other known side-effects. </p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760526">760526</a></td>
<td>Under rare circumstances, the server could have crashed when checking whether a stored procedure could be in-lined. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760644">760644</a></td>
<td>When using the OData Producer as a servlet in a webserver, the paths were relative to a current directory, which was unpredictable by the servlet. This has been fixed. The OData Producer will now search the servlet抯 context first, then the current directory. For security reasons, the producer configuration and model files should be located in the WEB-INF/ directory (or equivalent). This context may now include .WAR files.</p>
<p>				For OData Producers deployed using the OData Server utility (dbosrv16), paths are relative to the current directory when the server was launched.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760873">760873</a></td>
<td>Named parameter lookup performed poorly. The GetInputParameterValues method has now been rewritten to improve the speed of named parameter lookup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR760874">760874</a></td>
<td>If the system procedure sa_server_option() was used to change the &#39;IdleTimeout&#39; or &#39;LivenessTimeout&#39; option values to less than 0 or more than 32767, connections may have been incorrectly dropped. This has been corrected so that an error is now given if a value less than 0 or more than 32767 is specified for these options. In both cases, a value of 0 means there is no timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761039">761039</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed when executing UPDATE or DELETE statements that bypass the optimizer if the number of columns of the table was evenly divisible by 32, and all the column values were needed in the statement and an index had been chosen. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761107">761107</a></td>
<td>The server may have returned an incorrect result set if an OrderedGroupBy strategy used an index and the GroupBy query block contained an outer reference after the query rewrite. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761197">761197</a></td>
<td>The database server may have crashed if any one dbspace file reached the maximum size of 0x10000000 pages. If a single dbspace needs more space and cannot be split into multiple dbspaces, a larger page size is required. For example, the dbspace size limit for a 2K page size is 512GB while a 4K page size may create dbspaces up to 1TB in size. </p>
<p>				When a single file gets too big, the server will now detect this situation, version 11 and 12 servers will display a failed assertion message and shut down. Version 16 and later servers will display a failed assertion message and shut down only the affected database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761217">761217</a></td>
<td>The OData Producer did not properly parse odata batch request boundaries from the Content-Type header field. In particular, a content type of the form:</p>
<p>				Content-Type: multipart/mixed; boundary=batch_e30b82d3-3d8a-430d-b66f-9fec1df8ae19; charset=utf-8 </p>
<p>				would have resulted in a 404 error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761500">761500</a></td>
<td>The system procedure sa_recompile_views may have returned an unexpected error if it was executed outside the reload.sql script with non-standard settings for the database options quoted_identifiers and ansi_close_cursors_on_rollback. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761569">761569</a></td>
<td>Version 12 UltraLite now supports 64-bit architectures for iOS (arm64 and x86_64).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761652">761652</a></td>
<td>In rare cases the server may have returned SQLCODE -150 or failed assertion 106104 when optimizing an aggregation query that qualified for optimizer bypass. This could have occurred when the aggregate function was within the left-hand side of a dot-notation function expression (primarily occurring within spatial queries), such as ST_Geometry::ST_EnvelopeAggr(column).ST_AsWKB(). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761748">761748</a></td>
<td>If the transaction log was renamed while the MobiLink client (dbmlsync) was performing a sync operation, and no transactions were in progress, the SQL Anywhere server would have generated the new log in a way that would have caused dbmlsync to send downloaded rows for upload. This problem has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761750">761750</a></td>
<td>User who have permission to access stored procedures or database functions through roles, may not have access to the corresponding service operations in OData. The affected operations would not have appeared in the metadata, and the user would have received 404 errors trying to invoke them. This has been fixed.</p>
<p>				As a work around, database administrators should directly grant execute permission on given stored procedures or functions to the affected users.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761751">761751</a></td>
<td>The OpenSSL vulnerability known as Heartbleed impacted some components of SQL Anywhere software as follows:</p>
<p>				- SQL Anywhere Server when using TLS (Transport Layer Security) communications and/or HTTPS web services, though only to the networks that can access the server. Calling external web services over HTTPS from the database server were also affected.</p>
<p>				- MobiLink Server when using TLS and/or HTTPS communications, though only to the networks that can access the MobiLink server.</p>
<p>				- Relay Server Outbound Enabler</p>
<p>				Affected Versions (note that all platforms were impacted by the vulnerability):</p>
<p>				- SQL Anywhere 12.0.1 builds 3994-4098</p>
<p>				- SQL Anywhere 16.0 builds 1690-1880</p>
<p>				This vulnerability has been resolved by replacing the OpenSSL libraries with corrected versions. Once this SP has been applied, regenerate any certificates that were being used, and then change any passwords/keys associated with SQLA web service calls or TLS authentication.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761933">761933</a></td>
<td>In rare cases, the server may have crashed while parsing an incorrect IN search condition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR761990">761990</a></td>
<td>If the cardinality estimate of the left hand side of a JOIN EXISTS was less than 1, a NestedLoopsSemijoin (JNLS) would always have be chosen based on cost. This could have led to poor performance in some cases. A more robust optimization has now been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762038">762038</a></td>
<td>When reviewing recommendations from a tracing session, and the database had been shut down, a java.lang.IndexOutOfBoundsException could have occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762046">762046</a></td>
<td>The SQL Anywhere Plug-in tooltip for the Connect window had its text truncated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762171">762171</a></td>
<td>When hovering between column headings in the right pane, the cursor may not have been drawn as a resize cursor. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762254">762254</a></td>
<td>If an application made a standard connection to the server, and a second connection through the dbtools interface (for example, by calling the DBUnload function), and both connections used TLS with FIPS, the application could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762317">762317</a></td>
<td>If a computer supported IPv6, but had IPv4 disabled, the database server would have failed to start if TCP/IP or HTTP were being used. In addition, a SQL Anywhere client application running on such a machine could have failed to find servers using TCP/IP. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_108.htm#CR762531">762531</a></td>
<td>The Create Procedure wizard would have crashed when creating a procedure for a Java external environment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762532">762532</a></td>
<td>The Overview page did not show the arbiter and mirror server names. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762535">762535</a></td>
<td>The Interactive SQL utility would have crashed if given a SQL file on the command line that did not exist and if the &quot;on error&quot; option was &quot;continue&quot; or &quot;notify_continue&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762605">762605</a></td>
<td>The &quot;Find/Replace&quot; window for the syntax highlighting editor could have hung when searching up for a whole word if the search text appeared in the editor, but not as a separate word, and if the caret position was initially after the search text. This has been fixed.</p>
<p>				This prolem also affects the Interactive SQL utility. It has been present since version 9.0.2, possibly earlier.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762606">762606</a></td>
<td>In the DBMirror sample that is included with the SQL Anywhere software, the mirror setup SQL script contained a typographical error so no mirror partner was established. The &quot;mirror&quot; partner merely acted as a copy node. Attempts to connect to the mirror partner would have failed. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762615">762615</a></td>
<td>When communications occurred between the Outbound Enabler and the backend server with the command line option -cs containing https=1, the Outbound Enabler may have crashed or reported OEE1048 with missing detail.</p>
<p>				For example:</p>
<p>				OEE1048: The communication between the Outbound Enabler and the backend server failed with [MLC24: ???] while performing secured write. sidx=0 socket=01028188 sfp=58f2ed03</p>
<p>				A workaround to diagnose the communication error in the case where the RSOE didn抰 crash is to look at the Relay Server log as the detail is sent there and reported as an OEE1048 embedded in RSE4015 with details.</p>
<p>				The crash has been fixed and the details in RSOE log have been restored. An example after the fix: </p>
<p>				OEE1048: The communication between the Outbound Enabler and the backend server failed with [MLC24: Server certificate not trusted. The system-specific error code is 336134278 (hex 14090086).] while performing secured write. sidx=0 socket=01028188 sfp=58f2ed03</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762616">762616</a></td>
<td>Under very rare circumstances, executing a query with a cached parallel plan could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762676">762676</a></td>
<td>Importing from a CSV file which contained unquoted values could have failed if the values contained apostrophes or quotation marks in the middle of the value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762683">762683</a></td>
<td>Importing data from a text file into a SAP HANA database could have failed with the message &quot;Could not create table ... incorrect syntax near &quot;long&quot; ...&quot; This problem would have occurred when importing character data into a new table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762695">762695</a></td>
<td>If an attempt to cache a plan for a procedure statement caused execution of a poor quality reusable plan, this behavior would repeat with a fixed period of executions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762775">762775</a></td>
<td>When connected to an ASE server using the &quot;Generic ODBC Database&quot; option in the &quot;Connect&quot; window, the Interactive SQL title was empty. Now, the text contains the server name, database name, login id and user id (if known). This was the same behavior as version 12, before this bug was introduced.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762786">762786</a></td>
<td>When the RSOE used -cs https=1 and a client had disconnected before receiving all response bytes from the backend server, subsequent communications with the backend server may have suffered from false OEE1048(MLC53) SSL handshake errors. This has been fixed. </p>
<p>				The RSOE may also have suffered false OEE1048(MLC8) SSL read errors when -cs https=1 was used. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762797">762797</a></td>
<td>The text completer could have crashed when opened in an incomplete or poorly-formed SELECT...FROM clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762878">762878</a></td>
<td>If a CREATE OR REPLACE PROCEDURE/FUNCTION statement was executed on the primary server, and user connections needed to be dropped to apply this statement on a mirror/copy node, the procedure or function was not replaced on the mirror/copy node and no error was reported. This has been fixed.</p>
<p>				Note that CREATE PROCEDURE/FUNCTION and ALTER PROCEDURE/FUNCTION statements were not affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762941">762941</a></td>
<td>Numeric data from columns with a FLOAT(precision) type used in a remote database might not have been uploaded into a HANA consolidated database correctly when the Precision was less than 25 and the HANA server revision number was greater than 66. This problem has now been fixed.</p>
<p>				A workaround for this problem is to start the MobiLink server with the hidden option,</p>
<p>				-hwg-</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR762942">762942</a></td>
<td>The Interactive SQL utility (dbisql) could have crashed if the text completer was opened in poorly formed SQL. In order to crash, the caret would have to follow an unmatched quotation mark. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763011">763011</a></td>
<td>JSON attributes 乬id乭, 乬uri乭 and 乬__next乭, XML 乬id乭 elements, and XML attributes such as xml:base and href, would not have been encoded properly if they contained non-ASCII characters or ASCII characters that had special meaning in URLs. For example if an entity instance had a string key value of &quot;A#1&quot; and the entity set was called &quot;Orders�&quot; the &quot;#&quot; and &quot;�&quot; would not be properly encoded. While IDs are now properly encoded, titles and names are not. This has been fixed. All hyper link attributes are now encoded to use % escape sequences so they can be used as-is in HTTP requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763021">763021</a></td>
<td>A dbtools sample was expected to perform a backup of the Demo database as a way to demonstrate how to load and use the dbtools dynamic library. On Mac OS X, the dbtools sample would have failed to load the dbtools dynamic library, so it would return to the shell without performing the backup or producing any output. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763031">763031</a></td>
<td>In very rare, timing dependent cases, starting a server with a mirrored database could have failed with the server failing assertion 101426. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763149">763149</a></td>
<td>If the Interactive SQL utility (dbisql) had been launched from Sybase Central to debug a stored procedure, and then closed while at a breakpoint, dbisql would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763156">763156</a></td>
<td>An unlikely security vulnerability in the server has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763231">763231</a></td>
<td>If a certificate did not exist in the database, executing the statement DROP CERTIFICATE IF EXISTS &lt;name&gt; would have raised a 揷ertificate not found� error (i.e. the 搃f exists� was ignored). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763241">763241</a></td>
<td>In rare cases, the database server may have crashed while request level logging was turned on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763414">763414</a></td>
<td>The number of messages that could be displayed in the Interactive SQL utility&#39;s Messages panel was limited to 1000. This fixed limit has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763523">763523</a></td>
<td>In UltraLiteJ, methods accessing uniqueidentifier values could have had an incorrect byte order. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763545">763545</a></td>
<td>SET MIRROR OPTION auto_failover = &#39;On&#39; was incorrectly being treated as &#39;Off&#39;. As a workaround, SET MIRROR OPTION auto_failover = &#39;Yes&#39; can be used. This has been fixed so that both &#39;On&#39; and &#39;Yes&#39; are now supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763548">763548</a></td>
<td>OData requests to update a single nullable property could not have updated the property to null. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763621">763621</a></td>
<td>If a web service of type 慗SON� returned a floating-point number between -1 and 1, it would not have included a leading zero (eg. It would be returned �.5� rather than �0.5�). The JSON standard requires the leading zero. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763708">763708</a></td>
<td>The OData Producer would have rejected a configuration file that had multiple producers when it mistakenly thought the service roots were duplicates or subpaths of each other (for example, /a and /ab). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763803">763803</a></td>
<td>Loading the following polygon:</p>
<p>				POLYGON((-1 -1, -1 1, 0 0, 1 1, 1 -1, -1 -1))</p>
<p>				would have resulted in an invalid polygon error. This has been fixed. There is no known workaround.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763804">763804</a></td>
<td>Differing case for Edm.Guid values in the request URL and request body could have caused an UPDATE to fail with an error message that the entity key cannot be modified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763851">763851</a></td>
<td>Fetching the ServerNodeAddress connection property may have returned incorrect values for HTTP connections. For example, it may have returned an empty string for remote connections, or it may have returned a valid IP address for a local connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763854">763854</a></td>
<td>Many clients, including .NET, would not have specified the charset on the content type HTTP request header and would assume that the default for JSON and XML requests was UTF-8. The OData Producer always assumed that HTTP requests were ISO-8859-1 based on RFC 2616. This would have resulted in non-ASCII characters being incorrectly read. This has been fixed. The OData Producer now assumes UTF-8 for JSON and XML requests and ISO-8859-1 for plain text requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763863">763863</a></td>
<td>Running the Relay Server IIS 7.0 quick setup script on a system without a preexisting IIS installation, and then accessing SimpleTestApp.htm through IIS which was installed by the quick setup script would have resulted in a 404.4 response. The problem was that the StaticFileModule required for the demo was not installed. This has been fixed and the message associated with the install step has been extended to explain that the installation is neither minimal nor full and users are encouraged to customize the list of features to fit their actual web server needs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763864">763864</a></td>
<td>Most Relay Server customers are not SQL Anywhere customers, but the Relay Server quick setup script was setting up services with a default 揝QL Anywhere� prefix in the service name. This change overrides the default prefix to now be 揜elay Server� instead in the IIS6 and IIS7/8 quick setup scripts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763866">763866</a></td>
<td>The odbc.h header file that was used to compile ODBC applications could have provided an inconsistent definition of HWND and SQLHWND for 64-bit Windows and other 64-bit platforms. For 64-bit compilers, the type might resolve to a 32-bit integer which is incorrect. Window handles, like other handles, should always be 64-bit pointer-type objects for a 64-bit executable. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763867">763867</a></td>
<td>The SQLErrorW, SQLDataSourcesW, and SQLGetDescRecW functions were incorrectly returning a byte count, rather than a character count. For example, the column name &quot;ABC&quot; has a character count of 3, but the wide character (Unicode) string &quot;ABC&quot; occupies 6 bytes. The byte count (6 in this example) was returned. This has been corrected.</p>
<p>				This problem could have also impacted the values returned by SQLError, SQLDataSources, and SQLGetDescRec if the driver manager called their &quot;wide&quot; equivalents. This problem is also corrected.</p>
<p>				In addition, SQLGetDescRec could return a random field name for a descriptor when there was no field name (for example, a bookmark column has no field name). There was also the extremely rare possibility of a segment violation fault. These problems have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR763964">763964</a></td>
<td>The text &quot;SAP Sybase IQ&quot; was incorrectly displayed in the Categories list on the Options window. This has been corrected so that the text &quot;SAP IQ&quot; is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764027">764027</a></td>
<td>When doing a ping operation using the MobiLink client (dbmlsync), the MobiLink server would have reported the following error:</p>
<p>				[-10410] The client failed to send a complete sequence of commands</p>
<p>				Ping request failed </p>
<p>				Other than the error message, the ping operation would have behaved correctly. This has been fixed so that the warning is now prevented from being issued.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764049">764049</a></td>
<td>An application using node.js would have crashed when the server returned NULL values. This has been fixed in version 1.0.1 of the driver, and the updated node module has been published to the node package manager (https://www.npmjs.org/package/sqlanywhere) and GitHub.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764052">764052</a></td>
<td>Filter expressions using startswith(s1,s2) would have translated to a LOCATE() SQL function call, which does not result in the SQL Anywhere optimizer using indexes. This has been improved so that if the search string is a literal or parenthesized literal, whose length is less than 126, LIKE will now be used If the searched item is a column reference, a LIKE hint will be provided.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764055">764055</a></td>
<td>Operations that compute expressions with string or NUMERIC types now have slightly improved performance.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764062">764062</a></td>
<td>On servers where the number of connections executing at a lower priority level exceeded the number of connections executing at a higher priority level, more CPU cycles would have been given to the lower priority tasks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764064">764064</a></td>
<td>If a CLR stored procedure attempted to create an SAConnection using the connection string from the SAServerSideConnection object; the server and CLR External Environment would both have crashed. For example, if calling a CLR stored procedure resulted in code similar to the following being executed on the CLR External Environment side:</p>
<p>				SAConnection local_conn = new SAConnection( SAServerSideConnection.Connection.ConnectionString );</p>
<p>				Local_conn.Open()</p>
<p>				then both the SQL Anywhere Server and the corresponding CLR External Environment would crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764130">764130</a></td>
<td>Some additional fixes were required for Engineering case 761751.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764386">764386</a></td>
<td>If an application executed a query against a Microsoft SQL Server proxy table that contained SELECT FIRST or a subquery in an IF EXISTS( � ), then there was a chance the Remote Data Access layer would incorrectly send the SELECT FIRST to the remote server. Note that a similar problem existed with remote Oracle servers as well. These problems have now been fixed and the Remote Data Access layer will now send a TOP 1 instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764411">764411</a></td>
<td>If the first line of the HTTP response from an outbound client HTTP request was split across two or more packets then the server would have failed to accept the response from the remote server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764425">764425</a></td>
<td>In some cases the server cache would not shrink. This would have happened after a drop in server activity that prompted rapid cache growth. The rapid cache growth had to have happened because of an allocation of pages for heap or temporary table pages. Although the cache was not able to shrink, it would have been reused. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764516">764516</a></td>
<td>In the &quot;Connect&quot; dialog for an UltraLite database, if &quot;Tools/Copy Connection String to Clipboard&quot; was clicked, the database encryption key (if set) was copied in clear text to the clipboard. This has been corrected so that the key is now replaced by three asterisks, the same as for the connection password.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764620">764620</a></td>
<td>The system procedure sa_certificate_info() was returning binary data for the Serial Number field of a certificate. This has been fixed so that it now returns a hexadecimal representation of the serial number.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764632">764632</a></td>
<td>When using the Import Wizard to import shape file data into a database, the wizard showed a page which prompted for a table in which to save the data. That page included a component that listed all of the owners in the database. That list inadverently contained system-defined role names. This has been corrected so that these names are no longer in the list.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764783">764783</a></td>
<td>GET requests with $top=0 should be allowed on collections but return no result. and an HTTP 500 error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764810">764810</a></td>
<td>On Linux and Mac OSX platforms, the server was not accepting denormal double values in INSERT statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764849">764849</a></td>
<td>If a very long string was unloaded from a database and was loaded into a second database with a different character set, the LOAD TABLE statement may have returned the SQL error: -1313, 揗aximum string length exceeded.� This was only likely to happen if the length of the string was within a page size of the string limit of 2GB-1. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764913">764913</a></td>
<td>The following features are not supported on Linux/ARM and these features have now been disabled on this platform:</p>
<p>				- Remote Data Access</p>
<p>				- External Stored Procedures (note these are native dlls and shared objects that are loaded in process)</p>
<p>				- External Environments (including JAVA, CLR, PERL, PHP, C_ODBC and C_ESQL external environments)</p>
<p>				- LDAP UA</p>
<p>				- Kerberos Authentication</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR764973">764973</a></td>
<td>In rare, timing dependent cases, the server could have failed assertion 101201 - &quot;Deferred growth not suspended for checkpoint&quot; after a cancelled backup which did a log rename or truncate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765031">765031</a></td>
<td>A polygon in a Round Earth SRS could have failed to be represented correctly if it contained an edge on the equator going east to west and crossing latitude 0. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765281">765281</a></td>
<td>In low memory situations, or where the maximum cache size was set low, it was possible for the UltraLite runtime to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765332">765332</a></td>
<td>If the alias name in a SQL statement was longer than 128 characters, a SQL Anywhere .NET data provider client application could have crashed. </p>
<p>				Example:</p>
<p>				SELECT &#39;string&#39; AS &quot;alias...name&quot; FROM dummy</p>
<p>				Similarily, if a SQL column expression contained more than 128 characters, a .NET client application could have crashed.</p>
<p>				Example:</p>
<p>				SELECT 1+2+3+...+1000 FROM dummy</p>
<p>				These problems have been fixed. Alias and expression names are now restricted to at most 128 characters by the SQL Anywhere .NET data provider.</p>
<p>				As a work-around for the first case, restrict the length of alias names to at most 128 characters.</p>
<p>				Example:</p>
<p>				SELECT &#39;string&#39; AS expr FROM dummy</p>
<p>				As a work-around for the second case, use an alias name and restrict the length of its name to at most 128 characters.</p>
<p>				Example:</p>
<p>				SELECT 1+2+3+...+1000 AS expr FROM dummy</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765334">765334</a></td>
<td>In a .NET application, a buffer overrun could have resulted when using an SADataReader to get the value of a very long column value. </p>
<p>				Example:</p>
<p>				SELECT SPACE(1147483643) FROM dummy</p>
<p>				The possible buffer overrun has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765363">765363</a></td>
<td>In timing dependent cases, the server could have crashed, or otherwise failed, if a backup was cancelled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765434">765434</a></td>
<td>Creating a publication with an article greater than 256 bytes in length would have resulted in crash of the UltraLite runtime. This has been corrected so that articles of up to 2048 bytes in length are now supported. SQLE_STRING_PARM_TOO_LONG is now reported when a publication predicate is &gt;=2048 bytes.</p>
<p>				The database must be created or rebuilt to access the larger publication article size. Older databases will continue to work with a max publication article size of 256 bytes. Databases created or rebuild with this change will run on older runtimes provided publication articles are &lt;= 256 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765443">765443</a></td>
<td>Reading beyond the end of a file (e.g., for a LOAD TABLE statement from a 0-length file) on Linux when the file is on a remote NFS drive may cause the server to crash. This will only happen if O_DIRECT is enabled over NFS in Linux kernel versions 3.5, 3.6, and 3.7.</p>
<p>				Details of the kernel bug can be found here:</p>
<p>				http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/nfs/direct.c?id=67fad106a219e083c91c79695bd1807dde1bf7b9</p>
<p>				This has been fixed. Direct I/O will no longer be used for remote file systems on these Linux versions. Upgrading the Linux kernel to at least 3.8 is the only workaround.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765449">765449</a></td>
<td>The Relay Server keeps records of statistics per type of client and there is an internal limit of 1600 types per backend server in the backend farm. When this limit was reached the Relay Server would have issued an RSF13011 error and failed the relay. This has been fixed with the following changes:</p>
<p>				- The Relay Server no longer creates new metrics until the rs_monitor.dll has been accessed. Most partners don抰 distribute rs_monitor.dll.</p>
<p>				- If rs_monitor.dll has been accessed and the number of client types of a backend server has exceeded 1600, a new RSW107 warning is issued instead of the RSF13011 fatal error.</p>
<p>				- In the RSW107 situation, the Relay Server will continue to relay the traffic, but no new metrics are created for the new client type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765512">765512</a></td>
<td>When the Outbound Enabler used a secure HTTPS connection to the backend server, if the connection to the backend server was re-used after it was recycled, it was possible for the Outbound Enabler to have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765566">765566</a></td>
<td>Certain syntactically-invalid queries using SELECT FROM DML constructs could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765821">765821</a></td>
<td>Server could have hang while executing a stored procedure that invoked other stored procedures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765825">765825</a></td>
<td>IQ customers might experience a failure invoking the stored procedure sa_checkpoint_execute with a database assertion failure. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765928">765928</a></td>
<td>Transient device write failures (that is, OS file-write primitives intermittently reporting failure) could have resulted in subsequent UltraLite database corruption. This has been fixed.</p>
<p>				Note, device I/O errors still require the database to be restarted. Corrupt databases can be detected with the Validate API or ulvalid utility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765979">765979</a></td>
<td>Calls to connection_property( &#39;TempFilePages&#39; ) could have incorrectly returned values greater than 2 billion when 0 should have been returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR765993">765993</a></td>
<td>The server allows one extra connection beyond the connection limit as long as that connection has the DROP CONNECTION privilege (or DBA authority prior to version 16). This is to allow that connection to drop other connections if all connections to a server become blocked. However, once this extra connection was made, the server would not have allowed new connections until, (a) that extra connection went away, or (b) two other database connections went away. This has been fixed � (b) above has been changed to 搊ne other database connection goes away�.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766053">766053</a></td>
<td>If a PHP string variable X points to the same content as variable Y, and variable Y is bound to a SQL Anywhere parameter using sasql_stmt_bind_param, the contents of variable X would have been corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766057">766057</a></td>
<td>In rare cases, the mirror could have taken many minutes to become synchronized if the primary was not committing any changes. During this time, if the primary failed the mirror could not take over as primary. Also, during this time a measurable amount of network traffic would be observed between the primary and mirror. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766113">766113</a></td>
<td>The ADO.NET provider would not have been able to roll back a transaction if CHAINED option was OFF. This has ben fixed by setting CHAINED option to ON after opening a database connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766115">766115</a></td>
<td>Visual Studio 2013 integration was not supported. SetupVSPackage has now been modified to create registry keys for Visual Studio 2013.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766132">766132</a></td>
<td>If the ODBC driver or other client interfaces ran out of memory they could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766224">766224</a></td>
<td>When running the SQLA SP installer in silent mode on Linux, it could incorrectly have given the error &quot;The registration key provided is invalid.&quot; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766303">766303</a></td>
<td>The server usage text should display the switches in alphabetical order. &quot;-sbx&quot; was not placed properly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766369">766369</a></td>
<td>When running sqlpp on Linux systems with a recent version of glibc, a syntax error could have been reported for perfectly good code. Moreover, the &quot;near&quot; text may have appeared mangled. For example, running the following statements through sqlpp:</p>
<p>				EXEC SQL BEGIN DECLARE SECTION;</p>
<p>				EXEC SQL END DECLARE SECTION;</p>
<p>				would have resulted in the following error:</p>
<p>				test.sqc(35): Error! E2636 near &#39;AREARE&#39;: Incorrect Embedded SQL syntax</p>
<p>				This has been fixed. There is no known workaround for this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766464">766464</a></td>
<td>Host name and Relay Server version information have now been removed from the status page when accessed through the client or server extension. The information still remains available via the optional admin or monitor extensions. The admin and monitor extensions are expected to be accessible by administrators only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766511">766511</a></td>
<td>In Visual Studio, incorrect major version information for the SQL Anywhere plugin may have been shown in the &quot;Choose Data Source&quot; and &quot;Add Connection&quot; dialogs on non-English systems. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766532">766532</a></td>
<td>If invalid HTTP parameters were provided to the database server running on Unix systems, the server may have detected, but tyhen hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR766935">766935</a></td>
<td>UltraLite Initialize Database utility would have reported �?missing string?� as the description for some collations (ulinit -Z). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767046">767046</a></td>
<td>If the Data Source utility (dbdsn) was used to create, modify, or delete a DSN, and the Driver connection parameter was used, the driver name would have needed to match the installed driver name exactly. This has been fixed so that the name is now case-insensitive.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767047">767047</a></td>
<td>If a database was initialized or upgraded with the SQL SECURITY INVOKER model using version 16 software, then calling any of the procedures below would have incorrectly verified procedure permissions using the current logged in user, instead of the current effective user. This would have led to incorrect &#39;permission denied&#39; errors if any these procedures were called from another procedure that was defined with SQL SECURITY DEFINER, and the owner of that outer procedure had permission to execute any of these system procedures, but the logged in user did not have the same permissions. This problem has now been fixed.</p>
<p>				The affected system procedures are:</p>
<p>				- sa_server_option</p>
<p>				- sa_db_option</p>
<p>				- sp_create_secure_feature_key</p>
<p>				- sp_alter_secure_feature_key</p>
<p>				- sp_drop_secure_feature_key</p>
<p>				Note, the original permission denied problem still exists if the database is initialized or upgraded with the legacy SQL SECURITY DEFINER model.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767050">767050</a></td>
<td>Under rare circumstances, the server could have failed a fatal assertion with a 揇ynamic memory exhausted� error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767053">767053</a></td>
<td>Applications that attempted to make server side calls in a CLR External Environment would only have worked with .NET 2.0 or 3.5. Applications could use the CLR External Environment with assemblies targeted at .NET 4.0 or 4.5, provided those assemblies did not make server side calls back to the SQL Anywhere server. This problem has now been fixed, and new CLR External Environment executables have now been included for use with .NET 4.0 or 4.5.</p>
<p>				It should be noted that only one CLR External Environment can be launched per database. Hence applications need to decide prior to starting the CLR External Environment which version of .NET should be used. By default, the server will launch the CLR External Environment that will allow server side calls using either the .NET 2.0 or 3.5 Provider. If an application needs to make server side calls using .NET 4.0; then the following ALTER EXTERNAL ENVIRONMENT statement must be executed prior to starting the CLR External Environment:</p>
<p>				ALTER EXTERNAL ENVIRONMENT CLR LOCATION &#39;dbextclr[VER_MAJOR]_v4.0 &#39;</p>
<p>				Similarly, if an application needs to make server side calls using .NET 4.5; then the following ALTER EXTERNAL ENVIRONMENT statement must be executed:</p>
<p>				ALTER EXTERNAL ENVIRONMENT CLR LOCATION &#39;dbextclr[VER_MAJOR]_v4.5 &#39;</p>
<p>				If the application needs to go back to .NET 2.0 or 3.5; then the following ALTER EXTERNAL ENVIRONMENT statement must be executed:</p>
<p>				ALTER EXTERNAL ENVIRONMENT CLR LOCATION &#39;dbextclr[VER_MAJOR] &#39;</p>
<p>				Note that in each of the above [VER_MAJOR] should NOT be replaced with one of 12 or 16. It is best to keep [VER_MAJOR] as is in order to ensure a smooth transition to a newer version of SQL Anywhere if needed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767121">767121</a></td>
<td>If an application attempted to execute an ALTER EXTERNAL ENVIRONMENT statement on a case sensitive database, then the server would return an external environment not found error if the environment name was specified in mixed or upper case. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767365">767365</a></td>
<td>Execution of an ALTER TABLE � ADD with multiple add clauses, each containing a default value, may have caused server assertion failures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767530">767530</a></td>
<td>The SQL Anywhere ODBC sample inside the C example directory (odbc.c) used ODBC 2.0 calls and could not link against the SQL Anywhere Driver Manager for Unix on Unix platforms. This has been corrected so that the sample now utilizes ODBC 3.0 calls and can link against the driver manager successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767595">767595</a></td>
<td>For same-machine HTTP connections, connection_property(慍lientNodeAddress�) would have returned an IP address (usually �127.0.0.1� or �::1�). For same-machine connections, this property should return an empty string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767780">767780</a></td>
<td>The server could have taken a long time to shutdown if the built-in HTTP server was used during previous executions of any server on the same computer.</p>
<p>				Other side effects of this problem may also have been seen:</p>
<p>				- If the sadiags.xml file was large then the merge-to-disk operation that automatically happens at midnight each day may have taken a long time and any other operation that caused a feature to be 慶ounted� would have blocked until the merge was complete. I.e. some operations at midnight may have been seen to 慼ang� or take longer than usual to complete.</p>
<p>				- Mobilink servers could also suffer the slow shutdown (or midnight sync) problem if a database server was running on the same computer and that database server had generated a large sadiags.xml file.</p>
<p>				This has been fixed. A work-around is to delete the sadiags.xml file prior to shutting down the server. This should only be expected to improve the shutdown time if the size of the file is large (e.g. over 100K bytes).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767793">767793</a></td>
<td>In rare, timing dependent cases, when the primary went down and the mirror failed over to become the new primary, it was possible the transaction log on the new primary to contain operations that were never applied to the database. This could have resulted in the database file on the primary being different from the database file on the mirror and any copy nodes. The mirror or copy nodes could have failed with errors or assertions related to applying the transaction log. This issue was possible, but extremely unlikely and never observed, if the synchronization_mode was synchronous. It had been observed if the synchronization mode was asynchronous or asyncfullpage. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767799">767799</a></td>
<td>When attempting to create a database with the reserved name 憉tility_db�(a very rare use case), the server would have leaked memory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767805">767805</a></td>
<td>The server could have crashed when performing a query containing a CUBE or ROLLUP, or that specified grouping sets. This was only possible when the server was operating in a memory-constrained environment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767808">767808</a></td>
<td>If the Information utility (dbinfo), or the Validation utility (dbvalid), or the VALIDATE DATABASE statement, was run against a database and a backup of that database was done shortly thereafter, there may have been problems recovering the backup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767873">767873</a></td>
<td>The server could have crashed when performing a recursive union query. This would only have occurred when running the query against a server with a very small buffer pool or many active memory-intensive queries. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767881">767881</a></td>
<td>When SQL Remote was generating messages, if a change had been made to a column with a numeric or decimal data type, SQL Remote would have failed to add information to the message that would have allowed the receiving side to have performed conflict resolution. This issue has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR767963">767963</a></td>
<td>Calling the system procedure xp_cmdshell() could have caused the server to shut down on UNIX in rare, timing-dependent events. This has been fixed. There is no known workaround.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR768034">768034</a></td>
<td>In rare timing dependent cases, a synchronized mirror server could have failed to take over as primary when the old primary went down. In order for this problem to have occurred the mirror database must have restarted while the primary server was still running. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_109.htm#CR768174">768174</a></td>
<td>When using the SQL Anywhere .NET Data Provider, decimal values would have been displayed with trailing zeroes removed. For example, instead of 5.1000, it would have been displayed as 5.1. This was an unintentional change in behavior which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768186">768186</a></td>
<td>The server may have returned poor selectivity estimates for equi-sarg searches on a floating-point type column. Some changes have been made to improve the accuracy of these estimations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768311">768311</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed when running the system function CONNECTION_PROPERTY() for a connection other than the one making the request, if the queried property was a connection option but not a connection statistic. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768346">768346</a></td>
<td>The server wopuld have incorrectly returned the error &quot;Invalid recursion&quot; for a query that contained proxy tables and the UNNEST construct. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768379">768379</a></td>
<td>The MobiLink server with integrated Outbound Enabler could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768466">768466</a></td>
<td>In rare cases, the server would have appeared to not have processed requests for a duration of 30 seconds. For this to have occurred. the auto multiprogramming level adjustment had to have been active and there had to have been many client side connections that were blocked. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768513">768513</a></td>
<td>When defining MobiLink server Command Lines, two of the available options are 杝l java and 杝l dnet. These are used to pass startup parameters to the Java VM or .NET CLR used to process Java or .NET scripts. The value entered for these options in the MobiLink Server Command Line Properties dialog were automatically enclosed in quotes when generating a MobiLink server command line (eg 杝l java �-c c:\myjava� ). This was incorrect, the MobiLink server expects these option values to be enclosed in brackets or braces. This has been fixed so that if the value entered is already surrounded by brackets or braces, nothing will be added to it, otherwise the value will be enclosed in brackets. (ex 杝l java( -c c:\myjava)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768514">768514</a></td>
<td>On some RedHat distributions, if the SQL Anywhere Monitor was configured as a service that started automatically when the computer was rebooted, it may have sporadically failed to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768652">768652</a></td>
<td>Sybase Central would have failed assertions, or behaved incorrectly, when running on a machine with a Turkish locale, regardless of the database抯 collation or the server machine抯 locale. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768684">768684</a></td>
<td>The server may have returned the error &#39;Invalid expression&#39; or crashed, if common table expressions were used in statements with proxy tables. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768717">768717</a></td>
<td>The ADO.NET provider now supports Entity Framework 6. A new dll (iAnywhere.Data.SQLAnywhere.EF6.dll) has been added to %SQLANY%\Assembly\V4.5 directory. SetupVSPackage still registers the v4.5 dll. To use the new Entity Framework 6 provider, register it in app.config or web.config.</p>
<p>				For example:</p>
<p>				&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</p>
<p>				&lt;configuration&gt;</p>
<p>				&lt;configSections&gt;</p>
<p>				&lt;section name=&quot;entityFramework&quot; type=&quot;System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; requirePermission=&quot;false&quot; /&gt;</p>
<p>				&lt;/configSections&gt;</p>
<p>				&lt;startup&gt;</p>
<p>				&lt;supportedRuntime version=&quot;v4.0&quot; sku=&quot;.NETFramework,Version=v4.5&quot; /&gt;</p>
<p>				&lt;/startup&gt;</p>
<p>				&lt;connectionStrings&gt;</p>
<p>				&lt;add name=&quot;Entities&quot; connectionString=&quot;metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=iAnywhere.Data.SQLAnywhere;provider connection string=&#39;datasourcename=&quot;SQL Anywhere 12 Demo&quot;&#39;&quot; providerName=&quot;System.Data.EntityClient&quot; /&gt;</p>
<p>				&lt;/connectionStrings&gt;</p>
<p>				&lt;system.data&gt;</p>
<p>				&lt;DbProviderFactories&gt;</p>
<p>				&lt;clear /&gt;</p>
<p>				&lt;add name=&quot;SQL Anywhere 12 Data Provider&quot; invariant=&quot;iAnywhere.Data.SQLAnywhere&quot; description=&quot;.Net Framework Data Provider for SQL Anywhere 12&quot; type=&quot;iAnywhere.Data.SQLAnywhere.SAFactory, iAnywhere.Data.SQLAnywhere.EF6, Version=12.0.1.41474, Culture=neutral, PublicKeyToken=f222fc4333e0d400&quot; /&gt;</p>
<p>				&lt;/DbProviderFactories&gt;</p>
<p>				&lt;/system.data&gt;</p>
<p>				&lt;entityFramework&gt;</p>
<p>				&lt;providers&gt;</p>
<p>				&lt;provider invariantName=&quot;iAnywhere.Data.SQLAnywhere&quot; type=&quot;iAnywhere.Data.SQLAnywhere.SAProviderServices, iAnywhere.Data.SQLAnywhere.EF6, Version=12.0.1.41474, Culture=neutral, PublicKeyToken=f222fc4333e0d400&quot; /&gt;</p>
<p>				&lt;/providers&gt;</p>
<p>				&lt;/entityFramework&gt;</p>
<p>				&lt;/configuration&gt;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768718">768718</a></td>
<td>When using the JDBC driver in a multithreaded Java application on Windows, a crash may have occurred in the heap management run-time code (HeapFree). This problem also appeared when using the MobiLink Profiler, since it uses the JDBC driver. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768791">768791</a></td>
<td>The server could have hung attempting to schedule a recurring event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768875">768875</a></td>
<td>Attempting to create a maintenance plan could have failed if the Allow_nulls_by_default database option was set to 慜ff� the first time the Maintenance Plans folder was selected for that database in Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768882">768882</a></td>
<td>Under rare circumstances, executing a procedure defined with SQL SECURITY INVOKER could have cashed a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR768926">768926</a></td>
<td>The installer抯 default feature selection on Windows x64, combined with a limitation of InstallShield, resulted in the 32-bit OLEDB driver not being registered as a COM server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769059">769059</a></td>
<td>Wide INSERT statements (i.e., prepared insert statements which insert more than one row at a time) require that each host variable/parameter appear exactly once within VALUES clause and not be nested within an expression. In some cases, a repeat host variable name would not have been detected and the resulting inserted row could have contained an incorrect value within one of the columns. This has now been fixed. Incorrect wide inserts will now return SQL code -155 (Invalid host variable).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769065">769065</a></td>
<td>The message that reports an update count would have reported the wrong action (INSERT, UPDATE, DELETE or MERGE) if a number of statements were executed at once, and were not separated by a command delimiter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769156">769156</a></td>
<td>Given a simple stored procedure such as the following:</p>
<p>				create procedure sp_test( in @a integer, in @b integer )</p>
<p>				begin</p>
<p>				select @a + @b as c;</p>
<p>				end</p>
<p>				Binding two host variables and executing 揝ELECT * FROM sp_test(?, ?)&quot; just after starting the database server, then the error &quot;Not enough values for host variables&quot; might have resulted. Subsequent execution attempts would have succeeded. A similar problem would have occurred when &quot;SELECT * FROM sp_test(?, ?)&quot; was executed immediately after (dropping and then) creating the stored procedure. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769159">769159</a></td>
<td>When attempting to connect to a secure SMTP server using the system procedure xp_startsmtp(), the connection would not have timed out. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769347">769347</a></td>
<td>The UPDATE and DELETE statements do not support ordinal column numbers in the ORDER BY clause. DELETE statements that bypass the optimizer did not return an error if ordinal column numbers were used in the ORDER BY. This has been fixed.</p>
<p>				For UPDATE and DELETE statements the SQL reference correctly documents:</p>
<p>				&quot;You cannot use ordinal column numbers in the ORDER BY clause.&quot;</p>
<p>				But for DELETE statements the syntax must be changed from</p>
<p>				[ ORDER BY { expression | integer } [ ASC | DESC ], ... ]</p>
<p>				to</p>
<p>				[ ORDER BY expression [ ASC | DESC ] , ...]</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769356">769356</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed during concurrent execution of a stored procedure that contained a LOAD TABLE statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769394">769394</a></td>
<td>Using UltraLite on iOS 8 beta software resulted in synchronization errors with HTTPS.</p>
<p>				This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769501">769501</a></td>
<td>Query plans involving parallel hash joins running in memory-constrained environments may have failed to return all of the rows from the join. These query plans may also be used by internal operators, such as those that do table validation and foreign key building, causing these statements to also fail. This has now been fixed. The problem can avoided by disabling parallel query execution (set option PUBLIC.max_query_tasks=1), and can be made less likely by increasing the amount of memory available to the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769515">769515</a></td>
<td>If the system procedure sa_validate() was called with a table or materialized view name only, then only one of the possibly several owner.name objects was validated. For example, given two tables named &quot;Products&quot; as follows:</p>
<p>				CREATE TABLE FarmEquipment.Products(...);</p>
<p>				CREATE TABLE HighwayEquipment.Products(...);</p>
<p>				the following statement would only have validated one of them at random:</p>
<p>				SELECT * FROM sa_validate( &#39;Products&#39; );</p>
<p>				Even if the user execting the SELECT was the owner of a table called &quot;Products&quot;, it may not have been the table that is validated. In other words, the statement above was not equivalent to:</p>
<p>				VALIDATE TABLE Products;</p>
<p>				The documentation states that all tables/materialized views matching the specified object name are validated. This problem has been fixed. The work-around is to specify the table/materialized view owner (the second argument).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769615">769615</a></td>
<td>Prefetch performance may have been slightly lower than it should have been. This has been fixed so that prefetch performance is better in some cases, depending on the operating system and the data being fetched.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769672">769672</a></td>
<td>The MobiLink server log files created on Unix systems did not give read permission to anyone except for the user who has created the files. This has not been corrected. Now the MobiLink server log files will have read permission set for the group and other users as well.</p>
<p>				Note, this change will apply to dbremote and dbmlsync logs as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769689">769689</a></td>
<td>Queries with predicates of the form: &quot;not exists(subquery)&quot; could have had a sub-optimal execution plan. This has been fixed.</p>
<p>				The conditions for which this could happen must include:</p>
<p>				(1) (subquery) was correlated with the main query block</p>
<p>				(2) (subquery) has a very small size comparing to the table[s] referenced by the correlations</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR769879">769879</a></td>
<td>Previously, DBISQL did not commit when disconnecting from a SAP HANA database even if its &quot;Commit on exit or disconnect&quot; option was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770143">770143</a></td>
<td>The version of OpenSSL now used by the server (as well as all SQL Anywhere products) is 1.0.1i.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770200">770200</a></td>
<td>The unused Batik JAR file JS.JAR has been removed from the list of JAR files that the Interactive SQL utility searches for on startup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770324">770324</a></td>
<td>The Broadcast Repeater utility (dbns16) did not start. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770430">770430</a></td>
<td>A server thread can go into an infinite loop attempting to update an index, eventually resulting in a server hang. The index in question is not corrupt, the server was just misinterpreting an index key. The is fixed so that the key is now interpreted correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770488">770488</a></td>
<td>UltraLite would have failed to sync using HTTPS on iOS 8. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770496">770496</a></td>
<td>Under exceptionally rare circumstances, the Unload utility (dbunload) would have returned the error &quot;Primary key for table &#39;sa_unload_stage2&#39; is not unique&quot;. For this to have occurred, the unloaded database must have contained foreign keys with very high ids, and the constraint name of the foreign key must have been renamed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770500">770500</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed when executing the function CONNECTION_PROPERTY() for a connection other than the own executors connection, if the queried property was an connection option, but not a connection statistic. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770510">770510</a></td>
<td>Under rare circumstances, the server could have crashed executing query plans involving group-by operators above parallel scans when operating in memory-constrained environments. This has been fixed. The problem can be avoided by disabling parallel query execution (set option PUBLIC.max_query_tasks=1), or made less likely by increasing the amount of memory available to the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770576">770576</a></td>
<td>On Red Hat Enterprise Linux 7, the Interactive SQL utility could not check for updates, nor could they open online help if the computer it was running on required a network proxy to reach the internet. This has been fixed so that on non-Windows platform, the software will use the proxy information in the http_proxy environment variable, if set. </p>
<p>				Note, this problem also affected Sybase Central and the Console utility, which are fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770593">770593</a></td>
<td>When installing the SQL Anywhere Monitor on a non-Windows platform, if the DISPLAY variable was not set the install would have hung at the end trying to open a browser. This has been corrected by no longer launching a browser in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770597">770597</a></td>
<td>The server may have crashed while updating a histogram. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770747">770747</a></td>
<td>The Interactive SQL utility (dbisql) could have consumed more disk space than was required under certain circumstances. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770760">770760</a></td>
<td>Visual Studio 2012/2013 would have failed to generate a Entity Framework 6 data model using a SQL Anywhere database. This has been corrected.</p>
<p>				The steps for generating Entity Framework 6 data models (Entity Framework 6 Tools for Visual Studio 2012 &amp; 2013 should be installed):</p>
<p>				- Run SetupVSPackage.exe with �/v 6� option to register the Entity Framework 6 Provider.</p>
<p>				- Install Entity Framework NuGet Package for the Visual Studio project.</p>
<p>				- Modify app.config file to add the Entity Framework 6 provider. Here抯 an example:</p>
<p>				&lt;providers&gt;</p>
<p>				&lt;provider invariantName=&quot;iAnywhere.Data.SQLAnywhere&quot; type=&quot;iAnywhere.Data.SQLAnywhere.SAProviderServices, iAnywhere.Data.SQLAnywhere.EF6, Version=16.0.0.20144, Culture=neutral, PublicKeyToken=f222fc4333e0d400&quot; /&gt;</p>
<p>				- Build the Visual Studio project.</p>
<p>				- Run Entity Data Model Wizard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770843">770843</a></td>
<td>when comparing databases, SQL Central would have appeared to hang if the database contained a large procedure definition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770940">770940</a></td>
<td>When an entity modification request violates a check constraint, the OData producer responded with an internal server error like:</p>
<p>				&lt;error xmlns=&quot;http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;&gt;</p>
<p>				&lt;code&gt;30000&lt;/code&gt;</p>
<p>				&lt;message xml:lang=&quot;en-US&quot;&gt;An unexpected error occurred in the producer. Contact the server administrator for more details.&lt;/message&gt;</p>
<p>				&lt;/error&gt; </p>
<p>				This has been fixed. Check constraints will now return either 30144, 30145 or 30146 errors, similar to unique constraint violations, depending on the type of request (INSERT, UPDATE or DELETE).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770952">770952</a></td>
<td>The following issues related to the Database Documentation wizard have been fixed:</p>
<p>				On Windows systems: Sybase Central could have become unresponsive for about a minute when viewing the generated documentation, and the directory was specified from the root of the drive but did not include the drive letter. </p>
<p>				On non-Windows systems: Generating the documentation to a directory with a space in its name, and then attempting to open the documentation would have failed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770956">770956</a></td>
<td>A query with WITH RECURSIVE and FOR XML/JSON clauses could have returned an error when used in a stored procedure definition. This has been fixed.</p>
<p>				Note, affected procedures will need to be recreated with the fixed version of the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR770967">770967</a></td>
<td>The following issues have been fixed:</p>
<p>				If a post login procedure did not return a result set, the Interactive SQL utility would have crashed.</p>
<p>				Also, a race condition could have caused the window containing the post login messages to appear on-screen at the same time as the &quot;Connecting to database&quot; status window. When this occurred, neither window could have been closed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771044">771044</a></td>
<td>The server may have incorrectly returned the error: &#39;Function or column reference to &#39;&lt;user-name&gt;&#39; in the ORDER BY clause is invalid&#39;, if a select statement used a user-defined function with an owner name in the ORDER BY clause; e.g. ORDER BY &lt;user-name&gt;.&lt;function-name(...). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771105">771105</a></td>
<td>The global variable @@error could have been set incorrectly for the first error encountered in a stored procedure or batch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771281">771281</a></td>
<td>The server may have appeared to hang while creating a histogram on a NUMERIC column that had an index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771288">771288</a></td>
<td>When specifying a certificate for use in a secure web service call, the call could have failed (with a TLS handshake error) if multiple certificates were specified using 揷ertificate=�. For example, this could have happened if using 揷ertificate=xp_read_file( certificate_file )� and the file contained more than one certificate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771300">771300</a></td>
<td>Synchronizations over HTTP could have failed if the command line option 杦n was greater than one. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771364">771364</a></td>
<td>When searching in SQL Central if the server was shut down, or the connection to the database was dropped from another application, then SQL Central would have shown multiple error dialogs, each of which needed to be closed before SQL Central could be used again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771379">771379</a></td>
<td>The web server port was not displayed in the Overview tab. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771429">771429</a></td>
<td>The Interactive SQL utility would have crashed when using the Import Wizard to import a shape file, and that shape file had an associated .DBF file which contained a DATE, TIME, or TIMESTAMP column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771431">771431</a></td>
<td>In specific circumstances, if there were concurrent connections executing the same procedure it was possible for the server to crash. The conditions were rare and timing dependent, and have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771441">771441</a></td>
<td>Creating a JSON service that called a procedure which set the CharsetConversion option would have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771444">771444</a></td>
<td>JSON services would have returned an empty document if an SQL error occurred. This has been fixed so that an object containing one row with two keys, status: 揺rror�, and message: �&lt;text of the SQL error message&gt;�, is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771541">771541</a></td>
<td>Attempting to have the MobiLink server bind a virtual IP address while specifying the 揾ost� stream parameter, would have resulted in error -10259 揘etwork address &#39;&lt;host&gt;&#39; is not local� on some platforms. This has been corrected so the server will print warning 10126 �&#39;&lt;host&gt;&#39; might not be a local address�, instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771542">771542</a></td>
<td>Executing CREATE SUBSCRIPTION or DROP SUBSCRIPTION statements could have failed if they used a subscription-value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771618">771618</a></td>
<td>The server may have crashed when using ARRAY or ROW type values in statements that needed to convert them to strings. This has been fixed.</p>
<p>				Note, the problem does not happen in DDL and DML statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771622">771622</a></td>
<td>The COUNT_BIG() aggregate function is intended to be used in cases where the number of rows is larger than can be represented in an INTEGER. When initially implemented for SQL-level compatibility, COUNT_BIG() was an alias for COUNT(), returning an INTEGER and restricted to the same supported input cardinalities. COUNT_BIG() has been corrected to now return a BIGINT.</p>
<p>				When executing a parallel query plan with a COUNT_BIG() over a table larger than representable in an INTEGER (approximately 2 billion rows), an error such as 揤alue SUM() out of range for destination� was returned. This is now corrected.</p>
<p>				The SUM(x) aggregate function now returns BIGINT if x is of type BIGINT.</p>
<p>				When using COUNT_BIG() in sliding window queries, the window was re-scanned for each row of the window instead of decrementing the count when rows were removed. This has been corrected.</p>
<p>				The graphical plan for window operators now displays the PARTITION BY, ORDER BY, and window functions computed by the operator. It also shows whether rows are removed from the functions by inverting the aggregate (e.g., SUM, COUNT, COUNT_BIG) or by rescanning the window (e.g., MIN,MAX). Rescanning the buffer is slower and proportional to the square of the maximum buffer size.</p>
<p>				The COUNT_BIG aggregate is now supported for incremental maintenance materialized views.</p>
<p>				When printing COUNT_BIG with no argument, it is now printed as COUNT_BIG(*).</p>
<p>				If COUNT_BIG() was used in a subquery that was flattened by semantic transformations, it was possible for the function to improperly return NULL instead of 0 (the classic count bug). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771690">771690</a></td>
<td>In very rare cases, the server may have crashed while executing the system procedure xp_cmdshell() if the client connection calling the procedure was cancelled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771708">771708</a></td>
<td>When using the SQL Anywhere .NET Data Provider, if the BulkCopyTimeout property was set to 0, an exception would have occurred during a call to WriteToServer. This has been fixed. The value 0 means that there is no timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771709">771709</a></td>
<td>When using the UltraLite .NET Data Provider, if the BulkCopyTimeout property was set to 0, an exception would hace occurred during a call to WriteToServer. This has now been fixed. The value 0 means that there is no timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771731">771731</a></td>
<td>If an ALTER failed between START and STOP SYNCHRONIZATION SCHEMA CHANGES there was a possibility that the server would have failed assertion 107101 (&quot;Table lock inconsistency&quot;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771766">771766</a></td>
<td>UltraLite will now use the system抯 trusted roots if no trusted root certificate is provided.</p>
<p>				Also, the install package now includes a compiled library in the usual place. The script build.sh is no longer used to produce the library after installing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771780">771780</a></td>
<td>If an application made an external environment call and then subsequently used STOP EXTERNAL ENVIRONMENT or STOP JAVA to shut down the external environment then there was a very small chance the server could have hung or crashed if the external environment crashed at the same time as the stop request. A similarly rare problem could have occurred if the connection was dropped at the same time the external environment crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771866">771866</a></td>
<td>Errors in batch change sets where formatted as multipart, contrary to the OData specification.</p>
<p>				For example:</p>
<p>				--batch_5f3ccbef-11fe-4dcc-a546-02ba2e746d72</p>
<p>				Content-Type: multipart/mixed; boundary=cs_025fc4e4-fd30-4372-8fa4-5b941ee66915</p>
<p>				--cs_025fc4e4-fd30-4372-8fa4-5b941ee66915</p>
<p>				Content-Type: application/http</p>
<p>				Content-Transfer-Encoding: binary</p>
<p>				HTTP/1.1 400 Bad Request</p>
<p>				RepeatabilityResult: accepted</p>
<p>				Content-Type: application/json;charset=utf-8</p>
<p>				{</p>
<p>				&quot;error&quot; : {</p>
<p>				&quot;code&quot; : &quot;30063&quot;, &quot;message&quot; : {</p>
<p>				&quot;lang&quot; : &quot;en-US&quot;, &quot;value&quot; : &quot;An entity instance with this key already exists.&quot;</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				--cs_025fc4e4-fd30-4372-8fa4-5b941ee66915--</p>
<p>				--batch_5f3ccbef-11fe-4dcc-a546-02ba2e746d72-- </p>
<p>				should be:</p>
<p>				--batch_5f3ccbef-11fe-4dcc-a546-02ba2e746d72</p>
<p>				Content-Type: application/http</p>
<p>				Content-Transfer-Encoding: binary</p>
<p>				HTTP/1.1 400 Bad Request</p>
<p>				RepeatabilityResult: accepted</p>
<p>				Content-Type: application/json;charset=utf-8</p>
<p>				{</p>
<p>				&quot;error&quot; : {</p>
<p>				&quot;code&quot; : &quot;30063&quot;, &quot;message&quot; : {</p>
<p>				&quot;lang&quot; : &quot;en-US&quot;, &quot;value&quot; : &quot;An entity instance with this key already exists.&quot;</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				--batch_5f3ccbef-11fe-4dcc-a546-02ba2e746d72-- </p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771873">771873</a></td>
<td>If the Interactive SQL utility (dbisql) was run as a command-line program, it was possible for dbisql to report that it could not connect to the database, and then proceed to execute a statement anyway. In this scenario, dbisql would set its return code to 9 (could not connect) which was inconsistent with the fact that it actually executed the statement. For this to have occurred, all of the following would have had to be true:</p>
<p>				- A valid connection string and a statement must have been specified on the command line,</p>
<p>				- The database server had to be unreachable when dbisql started</p>
<p>				- The database server must then have become available as dbisql completeed its startup sequence</p>
<p>				This has been fixed. If the database server is unavailable when dbisql initially attempts to connect, it will now simply shut down, rather than attempting to execute the given statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771878">771878</a></td>
<td>If a client-side backup was terminated, or failed due a communication error or other unexpected error, database and transaction log file growth could have had poor performance. This has been fixed.</p>
<p>				Also, if the server was shut down while a backup was in progress, the backup could have reported a protocol error. This has been fixed so that a &quot;Database server not found&quot; error is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771963">771963</a></td>
<td>A new OData Producer option has been created which allows service operations to use the names of the result set columns from the database when naming the properties of the ComplexType used in the ReturnType. Previously, if a stored procedure returned a result set, the OData Producer would only have used generated names (rtn1, rtn2, rtn3, �). A side effect when using the new option is that it is possible that column names from the database are invalid OData identifiers, or there are duplicate column names in the result set, which can produce invalid metadata. In this situation, users will need to either change the names of the result set columns in the database, write a wrapper stored procedure with different columns names in the result set, or revert to using generated column names. </p>
<p>				Option</p>
<p>				[producer-name].ServiceOperationsColumnNames = { generate | database }</p>
<p>				Description</p>
<p>				Specifies whether the names of the columns in the metadata should be generated (rtn1, rtn2, �) or whether the names from the database should be used. The default setting is generate.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR771964">771964</a></td>
<td>If a service operation had been defined to call a function, attempting to call the service operation would have resulted in an unexpected error in the OData Producer. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772022">772022</a></td>
<td>If an application fetched a result set that contained long varchar, long binary or long nvarchar columns, then the SQL Anywhere JDBC driver would have fetched the result set one row at a time in order to ensure the full column value of the long columns could be retrieved. For result sets that do not contain long columns, the SQL Anywhere JDBC Driver fetched multiple rows at a time instead. Applications can use the Statement.setMaxFieldSize() method to attempt to limit the amount of data the JDBC Driver retrieves, however calling this method did not make the JDBC driver fetch multiple rows at a time. The SQL Anywhere JDBC driver will now fetch multiple rows at a time for result sets that contain long columns if Statement.setMaxFieldSize() is called and the value passed in to setMaxFieldSize() is less than or equal to 32K. The behaviour for result sets that do not contain long columns remains the same and the JDBC driver will continue to fetch multiple rows at a time for these result sets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772035">772035</a></td>
<td>A stored procedure with a input parameter whose name was an invalid OData identifier would only have encountered problems when the service operation was called. A stored procedure with a input parameter whose name is an invalid OData identifier will now generate an error when the service operation is defined.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772116">772116</a></td>
<td>Execution of sSubqueries whose predicates were sized datatypes, such as char, varchar, and binary, could have crashed due to a data alignment exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772133">772133</a></td>
<td>Calling the system function ML_GET_SERVER_NOTIFICATION() would have failed on iOS using a client identity stored in the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772523">772523</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed when executing complex statements with proxy tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772559">772559</a></td>
<td>SQL Anywhere, MobiLink, and UltraLite, servers and clients, no longer support the SSLv3 protocol. All TLS connections must now be TLSv1 or higher.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772744">772744</a></td>
<td>Applications calling the dbtools function DBLogFileInfo() could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772826">772826</a></td>
<td>When the Interactive SQL utility (dbisql) was run as a console application and connection parameters were specified, but the database password was not, dbisql would have exited without connecting. Now, dbisql will prompt for a password, given that the &quot;-q&quot; (quiet) option was not specified. Since a password is not required on the command line, the password will not be visible with OS utilities used to view process command lines.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772828">772828</a></td>
<td>If the URI for a service operation was specified with missing input parameters, the OData Producer will now pass a NULL value into the underlying stored procedure or function. If a default value existed for the input parameter to the stored procedure or function, the OData Producer would have used the default value, which was contrary to the OData specifications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772899">772899</a></td>
<td>The OData producer allowed properties and navigational properties to have the same name as the containing type (for example, Entity type T1 could have a property called T1 and a navigational property called T1), contrary to the OData specification. Association names could have the same name as a complex type or entity type. The most common occurrence for this issue would be when the producer generated associations for a database Table that had a self-referring foreign key. While some OData clients ignored these naming restrictions, others such as Microsoft&#39;s would not have worked with a service whose metadata contained these name conflicts. This has been fixed. OSDL files with such name conflicts now produce errors, and generated navigational properties and associations are given better names.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR772919">772919</a></td>
<td>Running the Mac OS X installer setup from the 揟erminal� application would have displayed a reference to the SQL Anywhere Supported Platforms web page with an old URL (i.e. http://www.ianywhere.com/products/supported_platforms.html). This has been corrected to http://scn.sap.com/docs/DOC-35654</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773123">773123</a></td>
<td>When computing a set operation (ST_Union, ST_Intersection, ST_Difference, ST_SymDifference), the value NULL was incorrectly returned if one of the inputs was an empty curve (e.g., &#39;LineString EMPTY&#39;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773198">773198</a></td>
<td>Under rare circumstances, the server may have crashed while executing a query with OPENXML functions. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773279">773279</a></td>
<td>Turning off The Interactive SQL utility&#39;s COMMIT_ON_EXIT option had no effect for the session in which it was turned off. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773420">773420</a></td>
<td>If more than 254 databases were specified on the command line when starting the database server, the server would have quit without giving an error. This has been fixed. A &quot;Too many databases specified: &lt;dbname&gt;&quot; error will now be generated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773422">773422</a></td>
<td>Under some conditions, when importing from a file containing long string values into a table with fixed length fields the server could have failed assertion 100914. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773426">773426</a></td>
<td>Under exceptionally rare circumstances, the server would have taken a long time to build the final query plan. This may have occurred for very complex and large queries. During this time DDL statements were blocked, which caused subsequent requests to block as well. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773529">773529</a></td>
<td>The EncryptedPassword (ENP) connection parameter is used to specify an encrypted password. It is a substitute for the Password (PWD) connection password. The intent of the ENP connection parameter is to disguise the actual password used to authenticate to a database. The current implementation obfuscates the password.</p>
<p>				There are some issues with this implementation: </p>
<p>				- The encrypted password could have been used to authenticate to the database by anyone from any computer who also had the corresponding user ID.</p>
<p>				- The ODBC Configuration for SQL Anywhere dialog of the ODBC Data Source Administrator (Windows-only) could have been used to return the encrypted password in clear text.</p>
<p>				- The encrypted password could have been decrypted with some effort.</p>
<p>				Encrypted password support has been enhanced with the following goals in mind:</p>
<p>				- Ability to restrict use to a particular computer or a particular computer/user.</p>
<p>				- Inability to reverse-engineer an encrypted password using the ODBC Configuration for SQL Anywhere dialog.</p>
<p>				- Better encryption algorithms to ensure that the encrypted password cannot be decrypted.</p>
<p>				- These enhancements to be available across all supported client platforms.</p>
<p>				A password can be encrypted on a computer such that it can only be decrypted on that computer. Anyone who can log on to the computer can use the encrypted password and corresponding user ID to authenticate to a database. It cannot be used on any other computer.</p>
<p>				A password can be encrypted on a computer by a user such that it can only be decrypted on that computer for that user. It cannot be used on any other computer by the same or other user.</p>
<p>				The Data Source utility (dbdsn) supports a new option -pet a|c|u, a specifying how the encrypted password may be used. If -pet a is specified, the password is encrypted for use on any computer. If -pet c is specified, the password is encrypted for use on this computer only. If -pet u is specified, the password is encrypted for use on this computer by this user only. The -pe option which provides simple obfuscation continues to be supported; however, its use is deprecated.</p>
<p>				Note that encryption for options -pet c and -pet u must be performed on the computer or computer/user for which it is intended to be used (decrypted).</p>
<p>				Note also that -pet u is not appropriate for client applications that are implemented as Windows services. Although -pet u can be used for a Windows System DSN, it may be more appropriate to use -pet c (since this form of encrypted password can be used by any user of the computer).</p>
<p>				The ODBC Data Source Administrator dialog is changed as follows:</p>
<p>				- The Encrypt password option is no longer a checkbox but is now used to select from different encryption options including none, for use on any computer, for use on this computer only, and for use on this computer and this user only.</p>
<p>				- The dialog can no longer be used to change the level of password encryption for an existing password, unless it was previously unencrypted. If the level of encryption is to be changed, then the password must be reentered.</p>
<p>				The ODBC Configuration for SQL Anywhere driver for Oracle dialog is also modified accordingly. </p>
<p>				These features allow a database administrator to restrict database access to a user on a particular computer without revealing the actual plain text password to the user. It also prevents the current password from being decrypted to memory and consequently subject to inspection.</p>
<p>				When successful decryption is restricted to a particular computer or computer/user, it no longer matters that the encrypted password is presented in plain text. For example, the encrypted password in the following connection string cannot be used by anyone other than the computer/user for whom it was created.</p>
<p>				dbping -d -c &quot;Host=server-pc; Server=DemoServer; UID=DBA; ENP=05a17731bca92f97002100c39d906b70f3272fe76ad19c0e8bd452ad4f9ea9&quot;</p>
<p>				The new encrypted password features are not supported by client libraries prior to this change.</p>
<p>				The File Hiding utility (dbfhide) options -wm (computer-only) and -w (computer/user-only) are now supported on all platforms for which dbfhide is available. The dbfhide tool can be used to encrypt an entire connection string to a file for use by most of the database tools that accept connection strings (e.g., dbping -d -c @credentials.hidden).</p>
<p>				Note that the encrypted password support described here is a client feature (storage of passwords on the client) and should not be confused with encryption of passwords over the wire during authentication, a default feature of SAP SQL Anywhere and optional in products like SAP Adaptive Server Enterprise (ASE).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773535">773535</a></td>
<td>Backend farms and backend servers can now be automatically configured with default properties when auto_config=yes is specified in the [Options] section in the Relay Server configuration file. When auto_config is turned on, the Relay Server becomes a Trust On First Use (TOFU) system where Outbound Enablers can connect with unseen backend farm ids and backend server ids. A group of Outbound Enablers belonging to the same backend farm may connect with a farm-wide token. When the Relay Server processes the first Outbound Enabler connection with unseen farm name, a new backend farm configuration will be created. The Relay Server updates the original configuration file and then persists the supplied token in a new backend farm property named token. Other backend farm properties are initialized to the default values. The auto farm configuration persists across Relay Server restarts. Similarly, backend server configuration is also created and persisted per Outbound Enabler with unique server ids within the backend farm. The token supplied by all outbound enablers belonging to the same auto farm must match the farm-wide token, otherwise, access is to be denied.</p>
<p>				Other backend farm and server configuration can co-exist with auto_config=yes in the configuration file. Backend farms with farm-wide tokens can also be specified in the new token property of the [backend_farm] section in the Relay Server configuration file, so as to reserve the farm name before the Relay Server starts up.</p>
<p>				This feature is suitable for demos, integration testing, training and other administration free environments.</p>
<p>				Configurations created by this auto config feature can be further updated in on-line manner by using local rshost or remote AdminChannel. The auto_config property can also be changed in on-line manner using those tools</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773538">773538</a></td>
<td>The graphical plan did not show the value for &quot;Final plan build time&quot; in the &quot;Advanced Details&quot; of the top node under &quot;Global Optimizer Statistics&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773549">773549</a></td>
<td>The response returned from a repeatable request may have been truncated or corrupted when GZIP or other compression related encodings were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773629">773629</a></td>
<td>When the path for the server command line option -a (&quot;apply named transaction log file&quot;) was wrong (the path is relative to the database path, not the server path) the server still seemed to go through recovery even though it did not. This has been fixed. Now server will return an error in such situations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773683">773683</a></td>
<td>The server may have crashed if a DELETE statement that deleted rows from a local table also referenced proxy tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773703">773703</a></td>
<td>Under exceptionally rare circumstances, the server may have leaked an internal connection with the connection name &quot;INT:FlushStats&quot;, and therefore could not complete the database and server shutdown when requested. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773811">773811</a></td>
<td>The OData Server could have crashed on Linux systems when using an INI file and no LIBRARY_PATH was specified in the INI file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773812">773812</a></td>
<td>The version of OpenSSL used by all SQL Anywhere products is now 1.0.1j.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773894">773894</a></td>
<td>When an ADO.NET application enlisted with a transaction coordinator, a constant GUID was supplied by the SQL Anywhere ADO.NET Data Provider. This prevented additional .NET applications, running on the same system, from doing the same. The following error message may have been seen.</p>
<p>				&quot;A resource manager with the same identifier is already registered with the specified transaction coordinator. (Exception from HRESULT: 0x8004D102)&quot;</p>
<p>				This problem has now been fixed so that instead of a constant GUID, a new one is generated each time enlistment occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_110.htm#CR773983">773983</a></td>
<td>A request for a raw binary value would have been return with a content-type of (or equivalent) &#39;text/plain&#39;, when it should have be &#39;application/octet-stream&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774060">774060</a></td>
<td>The server may have crashed or failed assertion 106104 - &quot;Field unexpected during compilation&quot; when using IN list predicates that do not just contain literal constants. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774178">774178</a></td>
<td>The execution of system procedure sp_auth_sys_role_info and system view SYSUSERPERMS, which uses system procedure sp_auth_sys_role_info, had some server wide synchronization that may have delayed other requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774305">774305</a></td>
<td>Execution of the statement DROP &lt;object-type&gt; IF EXISTS &lt;owner&gt;.&lt;object-name&gt; would have returned the error &quot;User ID &#39;%1&#39; does not exist&quot; if &lt;object-type&gt; was a FUNCTION, PROCEDURE, or PUBLICATION, and there was no user named &lt;owner&gt;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774328">774328</a></td>
<td>In rare cases, dropping a temporary procedure could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774333">774333</a></td>
<td>Certain values returned by the SNMP agent may have been incorrect. This would only have happened if the values were greater than approximately 2 billion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774462">774462</a></td>
<td>Under rare circumstances, the server could have crashed when describing a result set returned from a stored procedure. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774595">774595</a></td>
<td>If an application had a trigger that referenced a materialized view, and if that trigger was subsequently fired while making an external environment call, then there was a chance the server could have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774600">774600</a></td>
<td>When the OData Producer&#39;s ConnectionPoolMaximum configuration option was not specified, the producer would have set the value to the maximum number of connections available on the database. This could have potentially starved others from the database. This has been fixed. The default behavior is now to set the value for this option to be half the database抯 maximum number of connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774671">774671</a></td>
<td>The Interactive SQL utility would have failed to set its exit code to a non-zero value in a number of cases:</p>
<p>				- If no connection parameters were given, but a statement was given.</p>
<p>				- If a READ statement or the name of a SQL file was given on the command line, and the file exists, but the file could not be read for any reason.</p>
<p>				- If an error was encountered while reading the results of a statement.</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774773">774773</a></td>
<td>In very rare, timing dependent cases, if a procedure was being accessed (normally due to being called) at the same time it was being dropped or altered, the caller could have executed the previous definition of the procedure. It was also possible in extremely rare cases to drop a procedure that was already dropped, which could have caused the server to assert it was applying this second incorrect drop operation. This has been fixed so that a caller cannot access the old definition of a procedure, and so that a procedure that is already dropped cannot be dropped again.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774798">774798</a></td>
<td>In rare, timing dependent cases, the server could have crashed when getting one of the CharSet, NCharCharset, ClientLibrary or Language connection properties for another connection (using connection_property( prop_name, conn_number ). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR774899">774899</a></td>
<td>The Relay Server State Manager (rshost) could have crashed while reporting a Relay Server configuration file error message:</p>
<p>				&quot;RSF11020: Missing required section �&lt;section-name&gt;� in configuration file �&lt;config-file-name&gt;�&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775142">775142</a></td>
<td>When a statement has multiple search conditions on a single column, the server applies optimizations to combine and simplify these for two reasons:</p>
<p>				- To identify a sargable predicate that could use an index scan.</p>
<p>				- To improve the estimation of selectivity in order to make a better choice of access plan</p>
<p>				For some types of queries that involved an OR or an IN list predicate, the first goal was satisfied reasonably well but the OR / IN list could have been retained, affecting selectivity estimation. In some cases, this could lead to underestimating the number of rows returned from a table scan, potentially leading to execution plans with higher costs.</p>
<p>				This has been improved so that when multiple search conditions on a column contain an OR and/or an IN-list predicate, the predicate is simplified further.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775148">775148</a></td>
<td>Under certain circumstances, connection_property( &#39;UtilCmdsPermitted&#39;, n ) could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775149">775149</a></td>
<td>Apache setup script could have generated duplicate lines in the &lt;apache-install&gt;/bin/envvars file when the script was run multiple times. The duplicate lines were generated for setting the LD_LIBRARY_PATH environment variable. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775231">775231</a></td>
<td>If the Service utility (dbsvc) was used to create a service with a space in the service name (eg. dbsvc -w 揗y service name�), the service would have been created but it would not be able to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775239">775239</a></td>
<td>The MobiLink server now supports spatial data synchronization against HANA SPS09 databases. Plain INSERT and UPDATE SQL statements can be directly used for the MobiLink server upload_insert and upload_update events if the geometry columns in the sync table are not nullable. Otherwise, stored procedures may need to be used for the upload_insert and upload_update events if the geometry columns are nullable, as HANA does not support null SRIDs, even its geometry data is null. Here are sample stored procedures for the upload_insert and upload_update events for a sync table &quot;test&quot; that is defined as CREATE COLUMN TABLE test ( pk INT NOT NULL PRIMARY KEY, c1 ST_GEOMETRY(4326) ):</p>
<p>				CREATE PROCEDURE upload_insert_proc (</p>
<p>				IN p_pk INT,</p>
<p>				IN p_geo BLOB,</p>
<p>				IN p_srid INT )</p>
<p>				LANGUAGE SQLSCRIPT AS</p>
<p>				BEGIN</p>
<p>				IF :p_geo IS NULL THEN</p>
<p>				INSERT INTO test (pk, c1) VALUES( :p_pk, NULL );</p>
<p>				ELSE</p>
<p>				INSERT INTO test (pk, c1) VALUES( :p_pk, ST_GeomFromWKB(:p_geo, :p_srid) );</p>
<p>				END IF;</p>
<p>				END;</p>
<p>				for the upload_insert event, and </p>
<p>				CREATE PROCEDURE upload_update_proc (</p>
<p>				IN p_pk INT,</p>
<p>				IN p_geo BLOB,</p>
<p>				IN p_srid INT )</p>
<p>				LANGUAGE SQLSCRIPT AS</p>
<p>				BEGIN</p>
<p>				IF :p_geo IS NULL THEN</p>
<p>				UPDATE test SET c1 = NULL WHERE pk = :p_pk;</p>
<p>				ELSE </p>
<p>				UPDATE test SET c1 = ST_GeomFromWKB(:p_geo, :p_srid) WHERE pk = :p_pk;</p>
<p>				END IF;</p>
<p>				END;</p>
<p>				for the upload_update event.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775247">775247</a></td>
<td>The value of the CurrentLineNumber connection property could have been reported incorrectly for a procedural statement (for example, SET or MESSAGE). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775252">775252</a></td>
<td>When an error occurred in one or more rows in a rowset during an ODBC fetch operation (e.g., SQLFetch, SQLFetchScroll, SQLExtendedFetch), the wrong row number was returned by SQLGetDiagRec. For example, if an error occurred in the 4th row of a rowset of 10 rows, then the following call returned diagRow set to 10, instead of 4.</p>
<p>				rc = SQLGetDiagField( htype, hndl, rec, SQL_DIAG_ROW_NUMBER,</p>
<p>				(SQLPOINTER)&amp;diagRow, SQL_IS_POINTER, NULL );</p>
<p>				Also, diagnostic records for each row in error may have been returned in the wrong order by SQLGetDiagRec, since the wrong row number(s) were recorded.</p>
<p>				rc = SQLGetDiagRec( htype, hndl, rec, sqlstate, &amp;native_error,</p>
<p>				errmsg, sizeof( errmsg ), &amp;errmsglen );</p>
<p>				These problems have now been corrected in the SQL Anywhere ODBC driver.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775313">775313</a></td>
<td>In rare cases, the server could have crashed applying the transaction log only on HP-UX systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775318">775318</a></td>
<td>Calling SQLExecute of a wide update statement would have returned SQL_SUCCESS_WITH_INFO for multiple parameter sets if one or more parameter sets did not update any rows.</p>
<p>				The ODBC specification says:</p>
<p>				When SQLExecute returns either SQL_ERROR or SQL_SUCCESS_WITH_INFO, an associated SQLSTATE value can be obtained by calling SQLGetDiagRec with a HandleType of SQL_HANDLE_STMT and a Handle of StatementHandle.</p>
<p>				The SQL Anywhere ODBC driver violates this rule since it does not create any diagnostic records. WITH_INFO generally means that some things succeeded and some things failed and diagnostic records (the 搃nfo�) let you determine what failed. When there was only one parameter set, a parameterized update or delete statement may have returned SQL_NO_DATA. If there was more than one parameter set, and some sets affected no records, then the SQL Anywhere ODBC driver returned SQL_SUCCESS_WITH_INFO (but did not create any diagnostic records). This was incorrect behavior. The driver should have returned SQL_SUCCESS.</p>
<p>				Also, when all parameter sets fail to update or delete any rows, the ODBC driver should still have returned SQL_SUCCESS. The SQL Anywhere ODBC driver woud have set all non-updating parameter status array elements to SQL_PARAM_SUCCESS_WITH_INFO (except that the driver incorrectly cascaded the WITH_INFO status into all subsequent array elements). The ODBC driver did create diagnostic records for the WITH_INFO parameters. This was also incorrect behavior.</p>
<p>				These problems have been corrected. The SQL Anywhere ODBC driver now follows the ODBC specification in this regard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775392">775392</a></td>
<td>In rare circumstances, when queries were run with snapshot isolation over tables that had had new columns added, the server could have returned incorrect results, or possibly crashed. This has been fixed.</p>
<p>				A workaround is to ensure that all rows touched by an ALTER have been fully updated inline. This can be done by issuing a pair of statements like the following: </p>
<p>				alter table T add delete_me integer default autoincrement;</p>
<p>				alter table T delete delete_me;</p>
<p>				Snapshot queries over table T will now work correctly after these statements are executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775403">775403</a></td>
<td>Under certain circumstances, calling the xp_scanf system procedure could have caused the server to crash. Also, format specifiers other than %s could have given unpredictable results. These have both been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775493">775493</a></td>
<td>Execution of an ALTER TABLE � ADD COLUMN statement, using defaults that can return NULL on non-empty tables, could have caused data corruption. Two examples of NULL returning functions are user defined functions and GLOBAL AUTOINCREMENT. The newly added column must allow NULL values for this issue to occur. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775550">775550</a></td>
<td>When the procedure st_geometry_dump recursively expanded a geometry of dimension &gt;= 1 defined in a round-earth spatial reference system, the rows returned for internal points were incorrect.</p>
<p>				For example, the query:</p>
<p>				select geom from st_geometry_dump( new ST_LineString(new ST_Point(1,1,4326), new ST_Point(2,2,4326)))</p>
<p>				incorrectly returned the rows:</p>
<p>				LineString (1 1, 2 2)</p>
<p>				Point (180 -.000000000000006)</p>
<p>				Point (180 -33.690067525979835)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775638">775638</a></td>
<td>Hash operations used in query processing (join hash, group by hash, and distinct hash) choose a number of buckets based on the optimizer&#39;s estimated number of distinct keys. If the optimizer had an estimate that was far too low, the number of buckets selected could have been too small, leading to slower performance.</p>
<p>				For example, the following query executed in 25.6s with the incorrect estimate 0.52% on L.row_num &gt;= 0 (actual is 100%):</p>
<p>				select *</p>
<p>				from sa_rowgenerator(1,1.1727e6) L join sa_rowgenerator(1,34680) R on L.row_num = R.row_num</p>
<p>				where (L.row_num &gt;= 0, 0.52 )</p>
<p>				options(User_estimates=&#39;On&#39;)</p>
<p>				This has been improved so that performance is better even in the presence of underestimates:</p>
<p>				Before change: 25.6</p>
<p>				After change: 5.3</p>
<p>				The graphical plan for hash-based query operators now includes lines to indicate how many key values the optimizer estimates will be found and the number of hash buckets selected for execution:</p>
<p>				Key Values 6098.04 </p>
<p>				Hash table buckets 1031</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775640">775640</a></td>
<td>When executing an ALTER TRIGGER � SET HIDDEN on an INSTEAD OF trigger for a view, an 搃nvalid trigger type for view� error was returned. This has been fixed.</p>
<p>				Note, this issue also affects creating INSTEAD OF triggers with encrypted definitions on views as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775653">775653</a></td>
<td>In rare cases, the server could have crashed if a procedure returned a ROW or ARRAY typed column in its result set, but did not have a RESULT clause. This has been fixed.</p>
<p>				Note, if a procedure returns a ROW or ARRAY typed column in its result set, the procedure needs to have a RESULT column. Changing the procedure to use Watcom SQL syntax may be required. Calling a procedure that returns a ROW or ARRAY typed column in its result set without a RESULT clause may now result in the error, &quot;Procedure &#39;&lt;name&gt;&#39; needs a RESULT clause for returned ROW or ARRAY.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775805">775805</a></td>
<td>If a Data Source was modified in the registry to contain the &#39;Server&#39; connection parameter rather than &#39;ServerName&#39;, that parameter would have been ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775809">775809</a></td>
<td>In rare, timing dependent cases, the server could have crashed when making a native external function call if a thread deadlock error occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775928">775928</a></td>
<td>The Interactive SQL utility could have incorrectly parsed a CREATE LOCAL TEMPORARY TABLE statement if it appeared within some other block structure (e.g. a BEGIN ... END block). This caused a problem if a subsequent DBISQL statement (e.g. INPUT, OUTPUT, EXIT) was encountered. The symptom was typically an error message from the database server which reported a syntax error near the first keyword of the DBSIQL statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR775938">775938</a></td>
<td>If a spatial object was fetched in JSON format (using FOR JSON AUTO/RAW or ST_AsGeoJSON()), numbers between -1.0 and 1.0 would not have had the leading 0 that JSON requires. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776140">776140</a></td>
<td>An OData server with multiple producers, would have corrupted each other抯 state resulting in a high likelihood of incorrect behaviour. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776157">776157</a></td>
<td>Invalid use of the ARRAY clause in an embedded SQL EXECUTE statement could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776164">776164</a></td>
<td>Calling ST_Buffer on geometries with certain geometric properties could have caused the server to crash due to a stack overflow. In other rare cases ST_Buffer could have failed with ring-not-closed errors, or generated resulting geometries that were (usually only slightly) incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776240">776240</a></td>
<td>With some versions of Linux and Unix, the Port field of the Connect to MobiLink Server window was not displayed correctly: it was too narrow for the port number to be visible. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776241">776241</a></td>
<td>Under rare circumstances, query plans involving parallel hash joins running in memory-constrained environments may have crashed the server. These query plans may also have been used by internal operators, such as those that do table validation and foreign key building, causing these statements to fail as well. The crash can occur only on servers that contained the fix for Engineering case 769501, as the issues fixed by that change would have masked the issue. This has been fixed.</p>
<p>				Note, the problem can avoided by disabling parallel query execution (i.e. set option PUBLIC.max_query_tasks=1), and can be made less likely by increasing the amount of memory available to the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776338">776338</a></td>
<td>If a MobiLink server receives an HTTP request with a URI of �/status� from a user agent that is not a MobiLink client, it will now respond with a 200 instead of a 404</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776816">776816</a></td>
<td>Under some conditions, the server may have crashed when trying to access the property TcpIpAddresses from an event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776845">776845</a></td>
<td>If the UltraLite samples were stored in a folder whose path contains space characters, the UltraLite ESQL CustDB project does not build with Visual Studio. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776895">776895</a></td>
<td>In the Entity Framework Data Model Wizard 揅hoose Your Database Objects and Settings� dialog, the SQL Anywhere .NET Data Provider did not return stored procedure and function names in the 揝tored Procedures and Functions� list view for a case-sensitive database. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776897">776897</a></td>
<td>The Interactive SQL utiliy (dbisql) could have reported an internal error (OutOfMemoryException) when copying large result sets when the results were displayed as text. Now, a more user-friendly error message is displayed. </p>
<p>				If dbisql runs out of memory when copying results, there are a couple of things that can be done:</p>
<p>				1. When running the 32-bit version of dbisql, run the 64-bit version instead. It allows for a larger heap, and is less likely to run out of memory.</p>
<p>				2. Export the data using an OUTPUT statement, or the &quot;Export Wizard&quot;, rather than copying results to the clipboard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776900">776900</a></td>
<td>When using Internet Explorer to view results of some requests from the OData Producer, IE reported that it was unable to display the results due to a XML parsing error, or asked 揇o you want to open or save odata from localhost?� This has been fixed.</p>
<p>				Note, this only affected results from some service operations when the output format was XML.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR776911">776911</a></td>
<td>The server may crash if an UPDATE on a table that had a publication used a cached plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777043">777043</a></td>
<td>If the Backup utility (dbbackup) was used to back up a database that had no transaction log, and the -n and -r switches were used, dbbackup would crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777061">777061</a></td>
<td>Fetch performance on cursors for which prefetch was enabled may have been a bit poorer that it should have been when the cursor was using near the prefetch memory limit (default of 512K per connection). This slowdown was more likely to have occured when using wide fetch (also called array fetches). This has been fixed so that the performance in this case is now improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777135">777135</a></td>
<td>The version of OpenSSL used by all SQL Anywhere components has been upgraded to 1.0.1k. The FIPS libraries have been upgraded from OpenSSL FIPS 2.0.5 to 2.0.9.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777185">777185</a></td>
<td>In extremely rare circumstances, on Unix the database server or a multithreaded client application could have hung on shutdown if there were multiple TCP/IP connections being accessed simultaneously. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777187">777187</a></td>
<td>Creating a proxy table to a HANA table with a large number of rows in the remote table would have taken a very long time. During this time, the SQL Anywhere server would have been locked and would not respond to request until the proxy table creation now much faster.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777200">777200</a></td>
<td>Under rare circumstances, the server could have crashed when executing a positioned update. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777370">777370</a></td>
<td>The server could have crashed if there were unusual operations between a statement prepare and cursor open, as well as other connections performing DDL during the lifetime of the cursor. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777385">777385</a></td>
<td>When constructing certain round-earth geometries, the 32-bit server could have crashed. This was more likely for servers with the fix for Engineering case 765031. This has been fixed. There is no known workarounds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777436">777436</a></td>
<td>If an application made an external environment call, and if that external environment call returned with an open procedure cursor, then the server would have crashed if the application subsequently disconnected without getting the external environment to close the procedure cursor. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777478">777478</a></td>
<td>The server may have crashed if user estimates in a query were placed in clauses other than the WHERE or ON clauses. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777602">777602</a></td>
<td>Like the majority of DDL statements, the CREATE EXISTING TABLE requires a catalog lock during execution. Any other server requests are suspended while the catalog is locked. However, the CREATE EXISTING TABLE statement was holding the catalog lock for longer than absolutely necessary. This has been fixed and creating a proxy table now locks the catalog for a much shorter duration.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777614">777614</a></td>
<td>If the &quot;Fixed list of IP addresses&quot; option was specified when initializing a host (either when initializing the cloud, or when adding a new host) a message like the following would have appeared in the agent logs:</p>
<p>				... dbcloudagent_poller_http_error message=[Error making HTTPS connection] code=4 reason=[Cannot resolve hostname or bad IP address]</p>
<p>				This was a non-fatal error since the agent could continue working by polling the primary instead. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777626">777626</a></td>
<td>Specific DDL statements could have caused incorrect behavior when executed concurrently in a procedure statement. The incorrect behaviors include:</p>
<p>				1. Server crash</p>
<p>				2. Server assertion failure</p>
<p>				3. Incorrect error message (for example, -946 &quot;Result set not permitted in &#39;%1&#39;&quot;)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_111.htm#CR777686">777686</a></td>
<td>In very rare cases a database corruption could have occurred if an ALTER TABLE statement was executed following a number of DELETE FROM statements. The corruption would be reported as assertion 200610 when dbvalid is run on the database. The corruption can be fixed by unloading and reloading the database or specifically by unloading the affected table, dropping the table, and then creating and reloading the table. This has been fixed.</td>
</tr>
</tbody>
</table>
<p>--EOF--</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">https://www.dbainfo.net/sap-asa-cr-number-8.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SAP SQL Anywhere的所有已知BUG列表（8）</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-10.htm" title="SAP PB Enterprise的所有已知BUG列表（10）">SAP PB Enterprise的所有已知BUG列表（10）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-9.htm" title="SAP PB Enterprise的所有已知BUG列表（9）">SAP PB Enterprise的所有已知BUG列表（9）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-8.htm" title="SAP PB Enterprise的所有已知BUG列表（8）">SAP PB Enterprise的所有已知BUG列表（8）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-7.htm" title="SAP PB Enterprise的所有已知BUG列表（7）">SAP PB Enterprise的所有已知BUG列表（7）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-6.htm" title="SAP PB Enterprise的所有已知BUG列表（6）">SAP PB Enterprise的所有已知BUG列表（6）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-5.htm" title="SAP PB Enterprise的所有已知BUG列表（5）">SAP PB Enterprise的所有已知BUG列表（5）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-4.htm" title="SAP PB Enterprise的所有已知BUG列表（4）">SAP PB Enterprise的所有已知BUG列表（4）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-3.htm" title="SAP PB Enterprise的所有已知BUG列表（3）">SAP PB Enterprise的所有已知BUG列表（3）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-2.htm" title="SAP PB Enterprise的所有已知BUG列表（2）">SAP PB Enterprise的所有已知BUG列表（2）</a> (1)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-1.htm" title="SAP PB Enterprise的所有已知BUG列表（1）">SAP PB Enterprise的所有已知BUG列表（1）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sap-asa-cr-number-8.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP SQL Anywhere的所有已知BUG列表（7）</title>
		<link>https://www.dbainfo.net/sap-asa-cr-number-7.htm</link>
		<comments>https://www.dbainfo.net/sap-asa-cr-number-7.htm#comments</comments>
		<pubDate>Sat, 07 Mar 2015 17:07:31 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[CR]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2858</guid>
		<description><![CDATA[随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。 只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。 考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。 在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。 需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。 以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！ 不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。 SQL Anywhere的所有已知BUG列表（1） SQL Anywhere的所有已知BUG列表（2） SQL Anywhere的所有已知BUG列表（3） SQL Anywhere的所有已知BUG列表（4） SQL Anywhere的所有已知BUG列表（5） SQL Anywhere的所有已知BUG列表（6） SQL Anywhere的所有已知BUG列表（7） SQL Anywhere的所有已知BUG列表（8） &#160; CR Number Description 665116 The UltraLite Unload utility (ulunload) would not have [...]]]></description>
			<content:encoded><![CDATA[<p><base target="_blank" /></p>
<p>随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。<br />
	只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。<br />
	考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。<br />
	在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。<br />
	需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。<br />
	以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！<br />
	不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。</p>
<p><a href="https://www.dbainfo.net/sap-asa-cr-number-1.htm">SQL Anywhere的所有已知BUG列表（1）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-2.htm">SQL Anywhere的所有已知BUG列表（2）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-3.htm">SQL Anywhere的所有已知BUG列表（3）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SQL Anywhere的所有已知BUG列表（4）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SQL Anywhere的所有已知BUG列表（5）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SQL Anywhere的所有已知BUG列表（6）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SQL Anywhere的所有已知BUG列表（7）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SQL Anywhere的所有已知BUG列表（8）</a><br />
	&nbsp;</p>
<table align="left" border="1" cellpadding="0" cellspacing="0" style="table-layout: fixed; word-break:break-all; word-wrap: break-all;" width="100%">
<tbody>
<tr align="center">
<td width="11%">CR <br />
				Number</td>
<td>Description</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665116">665116</a></td>
<td>The UltraLite Unload utility (ulunload) would not have unloaded an empty Synchronization Profile, such as:</p>
<p>				CREATE SYNCHRONIZATION PROFILE &quot;sp&quot; &#39;&#39; </p>
<p>				The query used to obtain the profile string for a specified Synchronization Profile returned null. This would have resulted in the profile being skipped during the unload. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665140">665140</a></td>
<td>For MobiLink clients that support ECC TLS, support has now been added for RFC 4492 and 256-bit AES ECC cipher suites as well, in addition to the Draft 3 128-bit AES ECC cipher suite they previously supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665158">665158</a></td>
<td>For servers that support ECC TLS, support has now been added for RFC 4492 and 256-bit AES ECC cipher suites as well, in addition to the Draft 3 128-bit AES ECC cipher suite they previously supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665176">665176</a></td>
<td>The NEXTVAL operation on sequences did not return an error when executed in a read-only database. This has been corrected. The operation should return an error because the sequence value cannot be updated in the catalog table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665184">665184</a></td>
<td>The server would have incorrectly returned the error &quot;XPath parser error: syntax error at or before character 0 &lt;--&quot; if a stored procedure contained a SELECT statement with an openxml clause that used a variable for the xpath string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665195">665195</a></td>
<td>If a column or variable name was misspelled in a function that was inlined, and the scope into which inlining was performed contained an object with a matching name, incorrect results, or an incorrect error, could have been returned. This has been fixed.</p>
<p>				Example:</p>
<p>				CREATE FUNCTION func1( @a integer)</p>
<p>				RETURNS INTEGER</p>
<p>				BEGIN</p>
<p>				DECLARE @ret INTEGER;</p>
<p>				SET @ret = ( a + 10 ) / 100;</p>
<p>				RETURN @ret;</p>
<p>				END;</p>
<p>				SELECT a, func1( b + c ) as ret</p>
<p>				FROM tab;</p>
<p>				Expected error is 慍olumn 揳� not found�.<span id="more-2858"></span></td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665200">665200</a></td>
<td>The redirector for Apache could have crashed during a synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665212">665212</a></td>
<td>Statements using user-defined functions eligible for inlining could have failed unexpectedly. This problem could have affected databases created with earlier versions and reloaded to a version 12 database if such databases contained views referencing inlinable user-defined functions. Such databases could have failed to be reloaded. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665325">665325</a></td>
<td>When validating a database using the VALIDATE statement or the Validation utility (dbvalid), the operation could not have been cancelled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665522">665522</a></td>
<td>The attachment specified by the attachname parameter of the system procedure xp_sendmail() may not have been received properly by the recipient&#39;s mail client. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665524">665524</a></td>
<td>An exclusive table lock on a non-transactional global shared temporary table could have caused the server to crash on subsequent INSERT, UPDATE or DELETE statements. This has been fixed.</p>
<p>				All conditions must have been met (non-transactional, shared global temp table,</p>
<p>				and LOCK TABLE WITH EXCLUSIVE) for the crash to have occurred. If any of these three can be relaxed, the crash will be avoided.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665535">665535</a></td>
<td>When exporting to a database in the MobiLink Monitor, the values exported to the per-table details table (called mlm_by_table by default) were the per-sync values instead of the per-table values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665538">665538</a></td>
<td>ZLIB compression has been added to UltraLiteJ for the Android. This is accomplished with the following addition methods:</p>
<p>				setZlibCompression( boolean )</p>
<p>				setZlibDownloadWindowSize( int )</p>
<p>				setZlibUploadWindowSize( int )</p>
<p>				zlibCompressionEnabled()</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665630">665630</a></td>
<td>Upgrading a database that had been created with the -dba switch (to set the DBA username and password) could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665657">665657</a></td>
<td>The problems described here affect Windows CE 5.x kernels only. Note that Windows Mobile 6 platforms use the Windows CE 5.x kernel.</p>
<p>				With version 11.x, the server was not able to create a cache larger than 32MB. Attempting to do so would have caused the error &quot;Not enough memory&quot;.</p>
<p>				With version 12.x, the server would have automatically and erroneously restricted the cache size to a size smaller than 32MB.</p>
<p>				The default maximum cache size was erroneously restricted to a value less than 32MB.</p>
<p>				The &quot;percentage&quot; notation for cache sizes (eg, &quot;-c 50p&quot;) erroneously based the percentage on a value that was less than 32MB, rather than the total system memory as documented.</p>
<p>				These problems have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665665">665665</a></td>
<td>The server could have crashed when increasing the CurrentMultiProgrammingLevel using the system procedure sa_server_option() if there wasn&#39;t enough memory available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665670">665670</a></td>
<td>The execution tree in the Plan Viewer window could have partially obscured the bottom part of the tree drawing if a display option for the plan was changed to make it larger (by turning on &quot;Show percent cost&quot;, for example). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665673">665673</a></td>
<td>If the Interactive SQL utility was launched from a program using the Apache Portable Runtime, and standard output and/or standard error file handles were redirected, an internal error could have been reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665684">665684</a></td>
<td>If an application attempted to establish a Remote Data Access connection to an ASE server, and that connection request failed over to a different ASE server, then the Remote Data Access connection request would have failed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665710">665710</a></td>
<td>When executing a SELECT statement such as &quot;(select 1)&quot; that begins with open parenthesis, the dbisqlc utility would have reported a syntax error. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665799">665799</a></td>
<td>On Windows systems, a minidump might not have been generated under certain circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665837">665837</a></td>
<td>The changes for Engineering case 661112 introduced a bug where the MobiLink client could have crashed, or the check of the certificate_name, certificate_company, or certificate_unit could have failed, if any of the certificate fields were encoded as Unicode in the server&#39;s certificate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665884">665884</a></td>
<td>The UltraLite Load utility (ulload) would have crashed if the input XML contained a synchronization profile, but no tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665966">665966</a></td>
<td>A query whose execution used a parallel HashGroupBy operator, may have returned an incorrect result if the MIN or MAX aggregate function was used, or may have caused the server to crash if an aggregate function was used on a numeric or string expression. This has been fixed. A workaround for the problem is to set the database option max_query_tasks to 1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665980">665980</a></td>
<td>The Index Consultant could have failed if the tables involved had text indexes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665981">665981</a></td>
<td>The Index Consultant will no longer print debugging messages to the console window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666011">666011</a></td>
<td>When a root server was committing and sending log pages to a copy node, the root server could have experienced poor performance. Root servers which had frequent commits, and copy nodes running on slow computers or connected through high latency connections, would have shown the most noticeable poor performance. This has been fixed so that the performance of the copy node latency will have a smaller affect on the root node by using the equivalent of asynchronous log page synchronization. </p>
<p>				When using the &quot;SET MIRROR OPTION synchronization_mode = &#39;&lt;value&gt;&#39;&quot; statement, where &lt;value&gt; was asynchronous or asyncfullpage, the server was incorrectly treating this as a synchronous synchronization. This has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666013">666013</a></td>
<td>Using Sybase Central&#39;s searching capabilities to search for a single backslash would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666024">666024</a></td>
<td>Using Sybase Central&#39;s searching capabilities to search in a Version 11.0 or earlier database would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666123">666123</a></td>
<td>The server did not respond to a cancel during execution of a REGEXP or LIKE predicate if the first operand was a very long constant expression. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666132">666132</a></td>
<td>In some cases, expressions could have been evaluated with incorrect domain information. The affected information included: </p>
<p>				- precision and scale for NUMERIC values</p>
<p>				- length for string values</p>
<p>				- differences between string types (e.g., char/varchar/long varchar or binary/varbinary/long binary)</p>
<p>				For example, the following statement would have incorrectly returned:</p>
<p>				a a_string</p>
<p>				1.0000 &quot;1.0000&quot;</p>
<p>				select case when dummy_col=0 then 1 else cast(2 as numeric(10,4) ) end case a</p>
<p>				, cast( a as varchar ) a_string</p>
<p>				from sys.dummy</p>
<p>				However, the following statement would have incorrectly returned:</p>
<p>				a a_string</p>
<p>				1 &quot;1&quot;</p>
<p>				select case when 0=0 then 1 else cast(2 as numeric(10,4) ) end case a</p>
<p>				, cast( a as varchar ) a_string</p>
<p>				from sys.dummy</p>
<p>				The incorrect behaviour affected expressions that were partly or fully evaluated at query open time or in procedural code, and affected IF, CASE, NULLIF, ARGN, COALESCE and some other related expression types. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666182">666182</a></td>
<td>An HTTP request over a persistent keep-alive connection to a SQL Anywhere HTTP server may have failed if a previous request on that connection had sent an unexpected body. This has been fixed. </p>
<p>				For HTTP methods other than POST, the body may be retrieved using HTTP_VARIABLE(&#39;TEXT&#39;) or HTTP_VARIABLE(&#39;BODY&#39;) as dictated by the Content-Type. An HTTP POST method is assumed to have a Content-Type of application/x-www-form-urlencoded unless otherwise specified (as with any other HTTP method, alternate Content-Types may be accessed using HTTP_VARIABLE(&#39;TEXT&#39;) or HTTP_VARIABLE(&#39;BODY&#39;)).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666232">666232</a></td>
<td>The &quot;Go To Table&quot; and &quot;Go To Foreign Key&quot; menu items for the ER Diagram tab did not always work. The &quot;Go To Table&quot; menu item did nothing if the database tree node was collapsed. The &quot;Go To Foreign Key&quot; menu item did not work at all. These have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666434">666434</a></td>
<td>When using output redirection for a READ statement that referenced a file containing another READ statement, the dbisqlc utility would have reported an error such as &quot;invalid file number&quot;. This problem has been corrected.</p>
<p>				Example: &quot;READ file1.sql &gt;&amp; output.txt&quot;</p>
<p>				file1.sql:</p>
<p>				read file2.sql</p>
<p>				go</p>
<p>				SELECT ...</p>
<p>				file2.sql:</p>
<p>				SELECT ...</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666566">666566</a></td>
<td>After performing an unload of a resource database, the SQL Anywhere Monitor server console would have shown &#39;Permission denied&#39; errors for serveral system procedures. Graphing the metrics for &quot;free disk space&quot; would have displayed incorrect values (a horizontal line as if nothing changed). This is caused by the server policy to preserve permissions granted or revoked on objects owned by dbo user that are created in a newly initialized database.</p>
<p>				The following describe the steps required to correct this whenever an unload of a database is performed: </p>
<p>				1. log in to SQL Anywhere Monitor Web UI as the user &#39;administrator&#39;. </p>
<p>				2. click Administrator on the left pane to open an Administrator dialog </p>
<p>				3. under Resource tab, select the resource that had been dbunloaded </p>
<p>				4. click Stop button to stop monitoring the resource </p>
<p>				5. click Repair... and enter DBA uid/pwd to repair the resource database </p>
<p>				6. after done, click Start to start monitoring the DB </p>
<p>				After the above steps, the resource should function correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666639">666639</a></td>
<td>The detection of processor geometry (number of physical processors, cores and threads) was incorrect for certain Intel x86/x64 processors, including the Intel Xeon E5405. The server would have detected all cores and threads as belonging to a single physical processor. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666731">666731</a></td>
<td>Under rare circumstances, the server could have hung when values for WHERE or SUBSCRIBE</p>
<p>				BY clauses were being changed in a table with an article. This has been fixed. This fix covers additional cases that were not covered by Engineering case 654952.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666801">666801</a></td>
<td>The Redirector for Apache on Windows now supports Apache 2.2.15. This newer webserver offers enhanced security.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666845">666845</a></td>
<td>The Relay Server admin and monitor extensions may have slowly leaked memory. Eventually, admin or monitoring requests would have failed without any trace in the HTTP error log, IIS access log, or in the Relay Server log. This problem has been fixed so that recycling is no longer necessary. To workaround this problem, users may setup application pool recycling for the admin and monitoring extension.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR666960">666960</a></td>
<td>When connected to an ASE database, the &quot;Help&quot; menu could have contained redundant separators. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667001">667001</a></td>
<td>If a stored procedure or a user defined function with the hidden definition appeared on the stack when an error occurred, subsequent call to the TRACEBACK function could have returned the statements from the hidden definition. This has been fixed so that the output of the TRACEBACK function now contains the string &#39;&lt;hidden&gt;&#39; instead of the statements from the hidden procedures or user defined functions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667109">667109</a></td>
<td>If SQL remote (dbremote) was running in continuous mode, it was possible for it to have have reported &quot;Execution Complete&quot;, but no errors or warnings would have been printed to the dbremote log indicating why the process had stopped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667115">667115</a></td>
<td>The language for the SQL Monitor UI was always set to the browser&#39;s language no matter what the user&#39;s preferred language was. This has been fixed. The UI language is now set as the user&#39;s language when they login, or when the current user changes the language in the user settings dialog.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667142">667142</a></td>
<td>In very rare timing dependent cases, the server could have crashed when a database was stopping. Also in rare cases, it was possible for an automatically started database to not automatically stop when there where no longer any connections to it. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667152">667152</a></td>
<td>Some internal optimization algorithms have been generalized and improved. This may change plans for queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667179">667179</a></td>
<td>The Start Server in Background utility (dbspawn), when used with -p option to specify the OS process id, was reporting a process id for the started server of 0 on Windows Vista, Windows 7 and Windows 2008. Windows XP, Windows 2003 and Unix were not affected. This has been fixed so that the process id of the started server is reported correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667314">667314</a></td>
<td>If more than one connection attempted to install or remove Java external environment objects at the same time, then there was a chance the server would have crashed or failed assertions. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667316">667316</a></td>
<td>When unloading a database, the server would have incorrectly output a &quot;dynamic result sets&quot; clause for non-external environment procedures in the reload.sql file. This problem has now been fixed and the &quot;dynamic result sets&quot; clause is now only output for external environment procedures.</p>
<p>				There are a few points of note:</p>
<p>				1) this problem would only have occurred with stored procedures that were created using an older SA 12.0.1 server</p>
<p>				2) this fix will only affect new procedures that are created</p>
<p>				3) the existence of the &quot;dynamic result sets&quot; clause for non-external environment procedures is in fact a no-op and does not affect performance or behaviour of the non-external environment procedure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667441">667441</a></td>
<td>Misleading error messages would have been returned to the client when opening a connection using an invalid DSN. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667518">667518</a></td>
<td>When merging recent data distribution information into a table&#39;s histogram, the server could have allocated up to one database page worth of data outside of the database cache and then failed to free the memory. The leak could eventually have caused the server to fail due to a lack of memory on 32-bit platforms, or due to lack of swap space on 32-bit or 64-bit platforms. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667519">667519</a></td>
<td>The following get-by-name APIs were missing from ResultSet for UltraLiteJ for Android and have now been added:</p>
<p>				java.io.InputStream getBlobInputStream( String name )</p>
<p>				boolean getBoolean( String name )</p>
<p>				byte[] getBytes( String name )</p>
<p>				java.io.Reader getClobReader( String name )</p>
<p>				java.util.Date getDate( String name )</p>
<p>				DecimalNumber getDecimalNumber( String name )</p>
<p>				double getDouble( String name )</p>
<p>				float getFloat( String name )</p>
<p>				long getLong( String name )</p>
<p>				int getSize( String name )</p>
<p>				String getString( String name )</p>
<p>				UUIDValue getUUIDValue( String name )</p>
<p>				boolean isNull( String name )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667520">667520</a></td>
<td>A new command line option &#39;uninstallall&#39; (or &#39;ua&#39;) has been added to SetupVSPackage.exe. When specified, the &#39;uninstallall&#39; option will cause SetupVSPackage to remove all versions of SQL Anywhere assemblies from the Global Assembly Cache.</p>
<p>				For example:</p>
<p>				SetupVSPackage.exe /ua</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667668">667668</a></td>
<td>The following two extensions have been made to the -xa option:</p>
<p>				1) The dbn= value can be &quot;*&quot;, which means any database can use this server as an arbiter.</p>
<p>				2) The auth= value can be:</p>
<p>				a) omitted, which means no validation of the authentication string provided by a mirror server is done.</p>
<p>				b) a single value, which means all databases must use the same authentication string.</p>
<p>				c) a list of values with the same number of entries as specified by dbn= (i.e. previous behavior)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667672">667672</a></td>
<td>The Entity Framework function &#39;DiffDays&#39; was not mapped to the SQL Anywhere function &#39;Days&#39;.</p>
<p>				For example:</p>
<p>				Entities db = new Entities();</p>
<p>				var query = db.SalesOrders.Select( x =&gt; x ).Where( x =&gt; EntityFunctions.DiffDays( x.OrderDate, DateTime.Now ) &gt; 100 );</p>
<p>				string trace = ( ( ObjectQuery ) query ).ToTraceString();</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667675">667675</a></td>
<td>After the Database Documentation Wizard completed, a prompt asked whether to view the generated documentation. If &quot;Yes&quot; was clicked, a browser window was supposed to open to show the documentation, but the browser failed to open if the path to the generated files contained a space. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667686">667686</a></td>
<td>If an application attempted to cancel or drop a connection that was in the process of making a connection-scoped external environment call, then there was a very small chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667716">667716</a></td>
<td>A new name type ul_name_type_qualified has been added to ul_column_name_type in tjhe header ulcpp.h. When this new name type is used in conjunction with the GetColumnName function in the ULResultSetSchema class, a qualified name for the associated column in the ResultSet can be obtained, if possible. If the column represents a correlated table, then that qualified name is used; if the column represents a table column, then that qualified name is used; if the column has an alias name, then that name is used. Otherwise, an empty string is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667720">667720</a></td>
<td>The following methods have been implemented in ResultSetMetadata for UltraLiteJ for Android:</p>
<p>				String getAliasName( int column_no )</p>
<p>				String getDomainName( int column_no )</p>
<p>				String getCorrelationName( int column_no )</p>
<p>				String getQualifiedName( int column_no )</p>
<p>				String getTableColumnName( int column_no )</p>
<p>				String getTableName( int column_no )</p>
<p>				String getWrittenName( int column_no )</p>
<p>				Previously, they returned the value &quot;N.Y.I.&quot;. They now return values that closely approximate those returned by the UltraLiteJ runtime for Blackberry.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667762">667762</a></td>
<td>SetupVSPackage.exe would have failed to add some dlls to the Global Assembly Cache on 64 bit Windows systems. This problem has been fixed.</p>
<p>				Also, a new command line option &#39;salocation&#39; (or &#39;sal&#39;) has been added to SetupVSPackage to allow specifying the SQL Anywhere install location. If &#39;salocation&#39; is specified, SetupVSPackage will use it to locate the necessary dlls. If &#39;salocation&#39; is not specified, SetupVSPackage will use SQL Anywhere registry keys to locate the dlls.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667900">667900</a></td>
<td>If the Transact-SQL ROWCOUNT option was used to limit the number of rows returned by a cursor, the cursor may have skipped the first row in the result set in some cases. This incorrect behaviour only occurred for queries in which optimization was bypassed, and the plan contained a SortTopN operator, rather than a RowLimit operator. This incorrect behaviour was introduced as part of the fix for Engineer case 653706, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667901">667901</a></td>
<td>If an application connected via jConnect and then subsequently attempted to use the {} JDBC escape sequence when making a stored procedure call, then there was a chance the server would have returned an incorrect &quot;variable @p0 not found&quot; error at the time the stored procedure statement or result set was closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667902">667902</a></td>
<td>SQL Anywhere EBF installs would have failed to update the SQL Anywhere Monitor (Developer) database (samonitor.db) if the SQL Anywhere Monitor had been used after the EBF build date. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667907">667907</a></td>
<td>When creating a server message store for QAnywhere in Sybase Central, the process could have failed with the error message &quot;Can&#39;t find MobiLink setup scripts&quot;. It has now been fixed. </p>
<p>				Note, this problem occurred only on Linux systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667927">667927</a></td>
<td>The SQL Anywhere .NET Provider, running in 64-bit mode, might have inadvertently attempted to load a 32-bit language resource DLL (e.g., dblgen12.dll) and failed with an error. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667930">667930</a></td>
<td>In rare situations, the server could have crashed when generating or updating a histogram for a string column. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667932">667932</a></td>
<td>For a table with no foreign keys, SQLForeignKeys would have returned a single row with NULLs in most columns. This problem could have resulted in a java.lang.NullPointerException in the Interactive SQL utility&#39;s Query Editor. This has been fixed so that when the table has no foreign keys, no rows will be returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR667934">667934</a></td>
<td>The attempt to add a second primary key was not diagnosed in an ALTER TABLE statement. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668109">668109</a></td>
<td>Attempting to start two High Availability partner servers without state files (for example, starting them for the first time) could have, in rare timing dependent cases, failed to have one server start as the primary. If this occurred, one partner started as the mirror, and the other partner server looped indefinitely attempting to determine which role it should take. This has been fixed. </p>
<p>				Also, if a mirror server was in the middle of taking over as the primary when it was shutdown, the database shutdown could have hung until any remaining connections were disconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668136">668136</a></td>
<td>An SQL Anywhere resource may have generated an alert for &quot;No Recent Backup Recorded&quot;, even though a client-side backup had recently been done. This has been corrected so that the alert now clearly indicates that it pertains to server-side backups only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668141">668141</a></td>
<td>Calling the method SATcpOptionsBuilder.ClientPort could have caused the exception InvalidCastException to have been thrown.</p>
<p>				For example:</p>
<p>				SATcpOptionsBuilder options = new SATcpOptionsBuilder( &quot;localonly=yes;port=6873&quot; );</p>
<p>				string cport = options.ClientPort;</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668396">668396</a></td>
<td>Join queries with predicates in the WHERE or ON clauses that involved columns not in indexes have now been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668397">668397</a></td>
<td>The SQL Passthrough feature was removed in version 12 and three associated tables (sync_passthrough_progress, sync_passthrough_script, and sync_passthrough_status) were dropped. The Unload utility did not properly handle the case where a pre-version 12 database contained these tables and they were not empty. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668425">668425</a></td>
<td>The MobiLink client now prints information about the operating system and machine architecture on which it is running to the log. It also prints the platform for which the executable was compiled. This is similar to what the MobiLink server and the database server already do.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668603">668603</a></td>
<td>In rare cases, an application could have failed to connect because of a TCP/IP communication link failure. No specific reason for the failure would have been logged to the file specified by the LOGFILE connection parameter. This has been fixed.</p>
<p>				Note, this problem affected the .Net provider, the ODBC, JDBC and OLEDB drivers as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668612">668612</a></td>
<td>The MobiLink Replay utility (mlreplay) could have crashed when synchronizing unsigned big integers using the Replay API. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668716">668716</a></td>
<td>In rare circumstances, a database with snapshot isolation enabled could have triggered </p>
<p>				an assertion while updating values indexed by an immediate text index. This problem required high contention on the base table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668757">668757</a></td>
<td>SQL Remote for SQL Anywhere (dbremote) now supports HTTP and HTTPS as a message type for SQL Remote messages for remote databases. Users wishing to use the HTTP or HTTPS message type from a remote database will configure the remote database using the SET REMOTE OPTION command, in the same way that the FILE, FTP and SMTP message type is configured. The HTTP/HTTPS message type uses the following control parameters that are set by the SET REMOTE OPTION statement:</p>
<p>				� url : Specify the server name or IP address and optionally the port number of the HTTP server being used, separated by a semi-colon. If requests are being passed through the Relay Server, you can optionally add an URL suffix to indicate which server farm the request should be passed to. url=抯erver-name[:port-number][url_suffix]�</p>
<p>				� https : Specify whether to use HTTPS (https=YES) or HTTP (https=NO).</p>
<p>				� certificate : To make a secure (HTTPS) request, a client must have access to the certificate used by the HTTPS server. The necessary information is specified in a string of semicolon-separated key/value pairs. You can use the file key to specify the file name of the certificate, or you can use the certificate key to specify the server certificate in a string. You cannot specify a file and certificate key together. The following keys are available:</p>
<p>				file : The file name of the certificate.</p>
<p>				certificate : The certificate itself.</p>
<p>				company : The company specified in the certificate.</p>
<p>				unit : The company unit specified in the certificate.</p>
<p>				name : The common name specified in the certificate.</p>
<p>				Certificates are required only for requests that are either directed to an HTTPS server, or can be redirected from a non-secure to a secure server. Only PEM formatted certificates are supported. </p>
<p>				certificate=択ey=value[:key=value]&#39;</p>
<p>				� user : The HTTP server user ID. Authenticates to third-party HTTP server and gateways using RFC 267 Basic Authentication. user=抲serid�</p>
<p>				� password : The HTTP server password. Authenticates to third-party HTTP server and gateways using RFC 267 Basic Authentication. password=抪assword�</p>
<p>				� debug : When set to YES, all HTTP commands and response are displayed in the output log. This information can be used for troubleshooting HTTP support problems. The default is NO.</p>
<p>				� proxy : Specifies the URI of a proxy server. For use when SQL Remote must access the network through a proxy server. Indicates that SQL Remote is to connect to the proxy server and send the request to the message server through it. proxy=抙ttp://proxy-server[:port-number]�</p>
<p>				� client_port : Identifies the port number on which SQL Remote communicates using HTTP. It is provided for and recommended only for connections through firewalls that filter &quot;outgoing&quot; TCP/IP connections. You can specify a single port number, ranges of port numbers, or a combination of both. Specifying a low number of client ports could result in SQL Remote being unable to send and receive messages if the operating system has not released the ports in a timely manner after SQL Remote closes the port on a previous run. client_port=抧nnn[-mmmm]�</p>
<p>				Unlike the FTP or SMTP message type, which relies on a third-party FTP or E-mail server, the HTTP message type makes use of the web services functionality that exists in the SQL Anywhere database engine to act as </p>
<p>				the HTTP server, which we refer to as a &quot;message server&quot;. In order to setup the message server, you only need to run the sr_add_message_server on the consolidated database, and ensure that the database server has </p>
<p>				been started with the -xs http[s] switch. If starting the HTTP[S] listener on a database server hosting the consolidated database is a performance or security concern, then you can use a separate database server, as long as the database you run sr_add_message_server on has identical SQL Remote definitions to your consolidated database. For more information on how to setup a consolidated database to be a message server, how to setup a separate message server, or how to use the Relay Server to forward HTTP requests from remote database to the message server, please read the tutorials and full documentation.</p>
<p>				The SQL Remote documentation has been updated to include information about the new message type. In the SQL Anywhere installation directory, see:</p>
<p>				documentation/en/pdf/sqlremote1201.pdf</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668765">668765</a></td>
<td>When running the Deployment Wizard, clearing the default MSI name in the Destination Path page of the wizard and clicking the Next button would have caused an unhandled exception. This occurred due to the fact that the filename was not valid. This has been corrected by graying out the Next button if the filename is left blank.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668766">668766</a></td>
<td>When creating a 64-bit Deployment wizard MSI install, containing both 64-bit and 32-bit software, only one set of Sybase Central plugins would have been registered when installing on a 64-bit system. This has been corrected so that both 32-bit and 64-bit plugins are now registered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668768">668768</a></td>
<td>After uninstalling a Deployment wizard .MSI install made with default contents, several .JPR files would have been left behind in the SQL Anywhere 12\java directory.</p>
<p>				This has been fixed so that these files are now correctly uninstalled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668771">668771</a></td>
<td>When building a Deployment wizard install MSI, and select Chinese (ZH) as the deployment language. progress messages would have been displayed in English. This has been corrected so that they are now displayed in Chinese.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668791">668791</a></td>
<td>When the Relay Server Outbound Enabler failed a backend connection test, it may have crashed, or have been unable to recover even after the backend became available again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668820">668820</a></td>
<td>Calling the method DatabaseManager.release() would have caused the error: &quot;No implementation found for native Lcom/ianywhere/ultralitejni12/implementation/JniDbMgr;.release ()V&quot;. This has been corrected by implementing the method DatabaseManager.release().</p>
<p>				Note that prior to this fix, UltraLiteJ for Android would have done the equivalent of DatabaseManager.release() when the UltraLiteJ application terminated. Now it is possible for the application to execute DatabaseManager.release() at a specific point in time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668832">668832</a></td>
<td>The dblsn command line option -qi prevents the tray icon or window from being displayed. This behaviour is identical to the -qi option of the database server. The option has existed since 11.0.1, but was not referenced in the usage text or the documentation. The usage text has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668833">668833</a></td>
<td>The dbmlsyc command line option -qi prevents the tray icon or window from being displayed. This behaviour is identical to the -qi option of the database server. The option has existed since 11.0.1, but was not referenced in the usage text or the documentation. The usage text has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668855">668855</a></td>
<td>Attempting to start Sybase Central on Linux systems would have failed with the error message:</p>
<p>				&quot;The library /opt/sqlanywhere11/lib32/libulhltool11_r.so could not be loaded. This may be because the provider is being re-loaded (in which case you need to restart the viewer) or because the library could not be found in the SQL Anywhere installation. Service management will not be available.&quot; </p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR668989">668989</a></td>
<td>In rare timing dependent cases, a transaction which was successfully committed on a primary server could have been lost. In order for there to have been a chance of this occurring, all of the following needed to be true: </p>
<p>				- the application was connected to a primary server that lost quorum (the server lost the connection to both the mirror and arbiter servers) </p>
<p>				- the application stayed connected to this server (the old primary server) even though the network connection to other servers dropped </p>
<p>				- the application was in the middle of committing a transaction between the time that the old primary server lost its connection to the mirror and arbiter server, and when the old primary server restarted as the new mirror server because it lost quorum </p>
<p>				- the old mirror server took over as the new primary (the mirror server must have been able to connect to the arbiter server for this to occur) </p>
<p>				This has been fixed so that the application may now receive the new error for this situation, &quot;The transaction may not be committed because the primary server lost quorum.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669009">669009</a></td>
<td>When upgrading from 12.0.0 to 12.0.1, if the 12.0.0 samples had been installed to a non-default location, the upgrade to 12.0.1 installed any new or reorganized samples to the default sample location. This has now been fixed. </p>
<p>				Note that 12.0.1 EBFs can be now applied directly to 12.0.0 installations - effectively performing an upgrade. Therefore if a 12.0.0 installation has not yet been upgraded to 12.0.1, use of a 12.0.1 EBF with this fix will avoid this problem. If a 12.0.0 installation had been upgraded with a build without this fix, uninstalling the product will not remove all the sample files. Those files will need to be removed manually.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669032">669032</a></td>
<td>When starting the 64-bit Linux server with the GTK GUI, and neither the server name nor the database file is specified (e.g. using the icon), a dialog is presented to enter server startup information. When this dialog closed, the server may have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669218">669218</a></td>
<td>Using an encrypted command file did not work on big endian computers (typically running Solaris or AIX). The symptom was an error message &quot;Could not decrypt command file.&quot; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669227">669227</a></td>
<td>On systems running Windows Vista or later, when using the Visual Studio Add Connection wizard the SQL Anywhere .NET provider listed USER DSNs only in the ODBC Data Sources drop-down list. The SYSTEM DSNs are omitted. This problem has been corrected. The SetupVSPackage tool must be run to install this fix.</p>
<p>				It should be noted that on 64-bit Windows, only the 64-bit SYSTEM DSNs are listed (after this correction). Any 32-bit SYSTEM DSNs are not displayed. In Visual Studio 2008&#39;s design environment (which is 32-bit on 64-bit platforms), the Test Connection button will attempt to establish a connection using the 32-bit equivalent of the 64-bit DSN. If the 32-bit DSN does not exist, the test will fail.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669235">669235</a></td>
<td>When starting the QAnywhere Agent (qaagent) with the command line option &quot;-qi&quot;, the MobiLink Listener and the MobiLink Client processes were not also launched with &quot;-qi&quot; options, resulting in system tray icons on Windows Mobile devices. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669242">669242</a></td>
<td>An ArrayIndexOutOfBoundsException could have been thrown during a COMMIT. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669407">669407</a></td>
<td>When uninstalling on Solaris, it was possible to see an error like: </p>
<p>				find: stat() error /opt/sybase/sqlanywhere12/sun/jre160/lib: no such file or directory </p>
<p>				This has been fixed. It should be noted that despite the error, the uninstaller would have completed successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669408">669408</a></td>
<td>On Unix, if SQL Anywhere was installed into the default location as user A, logging in as user B and checking for updates would have failed with an error like, &quot;Could not check for updates.&quot; The installed.ini file only had read and write permissions for the current user and group. This has been fixed by giving broader permissions on the file so it could be used by &quot;other&quot; users.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669411">669411</a></td>
<td>When run on some Linux distributions, the Interactive SQL utility (or any of the graphical administration tools) may not have displayed Chinese characters correctly. This has been fixed. </p>
<p>				Workaround: </p>
<p>				1. Shut down any graphical administration tools (Sybase Central, Interactive SQL (dbisql), the MobiLink Monitor, SQL Anywhere Monitor, or SQL Anywhere Console utility (dbconsole) that are running. </p>
<p>				2. Run the following commands: </p>
<p>				mkdir $SQLANY12/sun/jre160_x86/lib/fonts/fallback </p>
<p>				ln -s /usr/share/fonts/truetype/arphic/*.ttc $SQLANY12/sun/jre160_x86/lib/fonts/fallback </p>
<p>				ln -s /usr/share/fonts/truetype/wqy/*.ttc $SQLANY12/sun/jre160_x86/lib/fonts/fallback</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669412">669412</a></td>
<td>When run on Linux systems, the Service utility (dbsvc) requires the LSB init-functions. Some Linux distributions do not installed by default so the must be installed manually in order to use dbsvc</p>
<p>				For example, on Fedora, run the following command:</p>
<p>				yum install redhat-lsb redhat-lsb.i686</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669431">669431</a></td>
<td>When attempting to cancel a Remote Data Access request to an ODBC based remote server, there was a very small chance that the server would have become unresponsive if all three of the following was true:</p>
<p>				- the local server was running on a Windows based system</p>
<p>				- the local server had a restricted (or small) number of CPUs or cores (either due to the limitations of the server machine or VM, or as a result of using the -gt or -gtc command line option)</p>
<p>				- the remote server was not defined to utilize the new &quot;driver=SQL Anywhere Native&quot; feature</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR669435">669435</a></td>
<td>On Unix systems, when using the Service utility (dbsvc) to create a service for the MobiLink client (dbmlsync), the following error would have been reported:</p>
<p>				svc_t_dbmlsync: No such file or directory </p>
<p>				This was due to the file svc_t_dbmlsync not having been installed in the bin32/dbsvc_scripts directory. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669448">669448</a></td>
<td>When performing a backward index scan (a rare occurrence) while there were heavy concurrent updates to the index, there was a small chance that the server could have made a comparison to a random value with unpredictable results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669465">669465</a></td>
<td>The MobiLink server could have crashed when handling restartable downloads and the restartable download cache was too small to hold all possible restartable downloads at one time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669572">669572</a></td>
<td>If the Service utility (dbsvc) was used to shut down a service, and the service took a long time to shut down, dbsvc may have reported that an error occurred. For example, if checkpointing one of the databases took longer than 3 seconds. The server would still have shut down eventually. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669581">669581</a></td>
<td>If an application attempted to perform a wide or batched insert, and the application did not bind or set enough parameters to match the number of parameters within the prepared INSERT statement, and the wide insert or batch insert size was greater than 1, then the application would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669633">669633</a></td>
<td>The SQL Anywhere Server provides a system procedure sa_refresh_materialized_views() that can be used to refresh all currently stale materialized views. Invoking the procedure with an argument value of 0 would have caused an error to be reported if at least one of the materialized views failed to be refreshed. This procedure is invoked by the reload script generated by the Unload utility when executed with the &quot;-g&quot; command line switch. This problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669738">669738</a></td>
<td>The memory used by the Java process spawned by the SQL Anywhere Monitor could have grown without bound if there were MobiLink collectors. It would have grown faster when the MobiLink servers were consistently unreachable. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669747">669747</a></td>
<td>On Linux systems, when installing the SQL Anywhere Monitor EBF, the installer would have removed the old copy from the samonitor_oldXX directory after migrating samonitor.db. This behavior was different from 12.0.0 EBFs which would always have left the old copy in the samonitor_oldXX directory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669783">669783</a></td>
<td>The Update Checker could have informed that there were updates, even when it had been asked not to. Specifically, if there had been a new documentation release (in a new language, say), and the Uupdate Checker had been configured to not show informational messages, you would still have been notified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR669965">669965</a></td>
<td>A database server using web services could have crashed in very rare situations when an HTTP connection was shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670020">670020</a></td>
<td>The Support utility (dbsupport) may have silently failed to submit diagnostic information if it was a first-time submission. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670185">670185</a></td>
<td>If a client was attempting to connect over TCP/IP to a server that had just shut down, it is possible that the connection would have returned a SQLE_CONNECTION_ERROR error rather than a SQLE_SERVER_NOT_FOUND. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670202">670202</a></td>
<td>In rare timing dependent cases, a primary, mirror or copy node server could have crashed or hung.</p>
<p>				Also in rare timing dependent cases, partner servers starting for the first time could have fail to have chosen a primary after the changes for Engineering case 663964.</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670360">670360</a></td>
<td>The SQL Anywhere synchronization/replication components, including the MobiLink client (dbmlsync) and SQL Remote (dbremote), could have given the error &#39;No off-line transaction log file found and on-line transaction log starts at offset XXXXX&#39;. This would have occurred:</p>
<p>				1) if no transaction-logs-directory was given on its command line; and</p>
<p>				2) if the length of the transaction log name including its absolute path was greater than 128 bytes.</p>
<p>				This problem is now fixed and the length of the transaction log name plus its absolute path has been extended to 1024 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670403">670403</a></td>
<td>When a database was shut down (for example, as part of server shutdown) and the database was a high availability mirror or a read-only scale-out copy node, the server could have hung in rare timing dependent cases. If the server was hung due to this problem, there would have been messages like the following in the server console: </p>
<p>				A write failed with error code: (6), The handle is invalid. </p>
<p>				Fatal error: disk full when writing to &quot;???&quot; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670470">670470</a></td>
<td>If the server received an OS error for a disk write to the database file, transaction log file or temporary file, and the written size was zero, then it may have incorrectly reported a disk full error. This has been fixed. As well, disk write error messages will now print the file name and the OS error code.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670486">670486</a></td>
<td>In exceptionally rare cases, the server could have crashed when executing a non-parallel query that contains a hash join. The crash would only have occurred if all of the following conditions were true:</p>
<p>				- the probe input of the hash join had already consumed a lot of memory for hash tables</p>
<p>				- a child of the hash join returned an error</p>
<p>				- a hash based parent query node of the hash join needed to allocate memory for the hash table and is restricted by the memory governor, so that it had to acquire memory from other hash based query nodes. </p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670521">670521</a></td>
<td>Attempting to modify NCHAR, NVARCHAR or LONG NVARCHAR values, using the scrolling table in the &quot;Results&quot; panel, would have silently failed if the value was loaded from a file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670838">670838</a></td>
<td>In rare timing dependent cases, if a High Availability mirror server was in the process of taking over as the primary, it could have failed. The 201120 assertion failure could have been logged to the console log. This problem could only have affected servers containing the fix for Engineering issue 663964. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670866">670866</a></td>
<td>The following query would have incorrectly returned a 1 indicating the date string was acceptable:</p>
<p>				select isdate(&#39;1234+&#39;)</p>
<p>				While the following query failed with a runtime error indicating the date string was not acceptable:</p>
<p>				select date(&#39;1234+&#39;)</p>
<p>				This problem has been fixed. The &quot;isdate&quot; query now returns 0. At a minimum, the timezone indicator (+) must be followed by hours. For example, &#39;2011+5&#39; is acceptable.</p>
<p>				Also, if a date string contained a timezone offset of &quot;+&quot; or &quot;-&quot; and was followed by the Z (Zulu) timezone indicator (e.g., &#39;1234-12-31+Z&#39;), no error was diagnosed. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670896">670896</a></td>
<td>An &quot;HTTP 404 Not Found&quot; error could have occurred from a web service, if the database that contained that web service was not started at the same time the server was started. This could have happened if the database was started via an ODBC DSN, or with the &quot;START DATABASE&quot; statement. The problem did not occur when the name of the database file was specified on the command line when starting the server. It also would not occur if the database name was specified when calling the web service. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR670990">670990</a></td>
<td>If the number(*) function was used in the VALUES clause of an INSERT statement, then the server would have returned a non-fatal assertion error 106103. This has been fixed so that the correct error is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671017">671017</a></td>
<td>In a certain virtual machine implementation, CPU topology detection (which is performed at server startup) could spin consuming 100% of a single logical CPU. The VM software had bugs which reported CPU information to the guest operating system in a manner that does not meet Intel&#39;s specifications. Changes have now been made so that SQL Anywhere can tolerate the bugs in the VM software without affecting correct CPU detection in other nvironments.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671099">671099</a></td>
<td>When the ODBC driver ware loaded, part of its initialization involved loading and initializing the system TCP/IP libraries, even in cases where TCP/IP would not be used (eg. creating or viewing a DSN through the Data Source utility). This could have caused delays or problems with some firewall software. This has been fixed so that the TCP/IP libraries are now only loaded and initialized when they will be used.</p>
<p>				Note, this change also affect the other SQL Anywhere client libraries as well, i.e. DBLib, OLEDB, ADO.NET, etc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671397">671397</a></td>
<td>The following Entity Framework datetime functions were not mapped to SQL Anywhere functions: </p>
<p>				AddDays, AddHours, AddMicroseconds, AddMilliseconds, AddMinutes, AddMonths, AddSeconds, AddYears, DiffHours, DiffMicroseconds, DiffMilliseconds, DiffMinutes, DiffMonths, DiffSeconds, DiffYears.</p>
<p>				For example:</p>
<p>				Entities db = new Entities();</p>
<p>				var query = db.SalesOrders.Select( x =&gt; x ).Where( x =&gt; EntityFunctions.DiffDays( x.OrderDate, DateTime.Now ) &gt; 100 );</p>
<p>				string trace = ( ( ObjectQuery ) query ).ToTraceString();</p>
<p>				This problem has been corrected by adding new function handlers for mapping Entity Framework datetime functions to the SQL Anywhere functions &#39;DATEADD&#39; and &#39;DATEDIFF&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671711">671711</a></td>
<td>The changes for Engineering case 624047 could have caused a server running high availability mirroring, or a read-only scale-out copy node, to fail assertion 200131. The failure was timing dependent, and required accessing an empty table with an index from a read-only connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671906">671906</a></td>
<td>When processing an UPDATE statement, the server could have constructed erroneous values for the OLD table that would have been created for AFTER ROW or AFTER STATEMENT triggers. This could have lead to incorrect results if the AFTER trigger referenced these values, or could have resulted in the statement failing with an SQL error. The problem would have occurred if and only if the following conditions hold:</p>
<p>				1) The UPDATE statement modifies a table that had a primary key, UNIQUE constraint, or unique index.</p>
<p>				2) The UPDATE statement modified a column included in the primary key, UNIQUE constraint, or unique index, such that the new value matched a value already existing in the index. </p>
<p>				3) The modified table had an AFTER ROW or AFTER STATEMENT trigger</p>
<p>				This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671911">671911</a></td>
<td>The system function OPENSTRING allows a text file to be parsed and interpreted as a relational table. The schema for OPENSTRING can be explicitly specified or can be provided by means of an existing database table. If a remote (IQ or other proxy) table was used to specify the OPENSTRING schema then the server can behave erratically, including crashing. This problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671955">671955</a></td>
<td>The new property &quot;ianywhere.qa.server.disableDeleteRules&quot; has been added to the QAnywhere server properties that can be specified in the configuration file that can appear after the -m option of the MobiLink command. When set to True (default is False), this property disables the message delete rules and archiving processes that automatically run while the server is running. This property would normally not be used, but it is useful, along with the property &quot;ianywhere.qa.server.disableNotifications&quot;, in the scenario where more than one MobiLink server is running on a given consolidated database, and the servers are not in a server farm configuration. In this case, the MobiLink servers must be configured such that only one of the servers is running message delete rules and the QAnywhere notifier.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671957">671957</a></td>
<td>The server may have returned an incorrect result set when a query had a grouped subquery in the null-supplying side of an outer join, and all the following conditions were true:</p>
<p>				- all group by expressions in the subquery were constants</p>
<p>				- the subquery had a COUNT aggregate</p>
<p>				- the subquery did not affect any table rows</p>
<p>				- the outer join condition referenced a constant grouping column of the subquery</p>
<p>				For example: If table T1 has no row with a1 &lt; 44 then the query does not return rows in any circumstances.</p>
<p>				select * </p>
<p>				from T2 left outer join </p>
<p>				( select 111 c1, count(*) c2 from T1 where a1 &lt; 44 ) V on T2.a2 = V.c1</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR671994">671994</a></td>
<td>Doing an FETCH ABSOLUTE instead of a FETCH RELATIVE could have caused the cursor to move to an incorrect row if the query contained a subquery. This could have resulted in a -197 error code when trying to get column values. The GetRowCount() method does an absolute fetch internally, so the problem could have occurred when invoking this method. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672076">672076</a></td>
<td>When inserting a string literal value into a time or timestamp column of a proxy table, if the string literal contained more than 3 digits of precision within the fractional seconds portion of the time/timestamp value, then the fractional seconds would have been truncated to 3 digits of precision. This problem has now been fixed.</p>
<p>				Note that this fix only applies to ODBC based Remote Data Access servers. The fractional seconds precision will still be truncated to 3 digits of precision for JDBC based Remote Data Access servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672077">672077</a></td>
<td>Executing a query that joined two or more External Environment result sets could have caused the server to crash if the join resulted in a very large result set. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672080">672080</a></td>
<td>The following new entry point has been added to the dbtools library:</p>
<p>				DBLogFileInfo function</p>
<p>				Obtains the log file and mirror log file information of a non-running database.</p>
<p>				Prototype</p>
<p>				short DBLogFileInfo ( const a_log_file_info * );</p>
<p>				Parameters</p>
<p>				A pointer to a structure. See a_log_file_info structure</p>
<p>				.</p>
<p>				Return value</p>
<p>				A return code, as listed in Software component exit codes</p>
<p>				.</p>
<p>				Remarks</p>
<p>				The DBLogFileInfo function returns the log file and mirror log file paths of a non-running database file. Note that this entry point will only work for databases that have been created with SQL Anywhere 10.0.0 and up.</p>
<p>				-----------------------------------------------</p>
<p>				Here is the necessary information for the new a_log_file_info structure:</p>
<p>				typedef struct a_log_file_info {</p>
<p>				unsigned short version; // set this to DB_TOOLS_VERSION_NUMBER</p>
<p>				MSG_CALLBACK errorrtn;</p>
<p>				const char * dbname; // database file name spec</p>
<p>				const char * encryption_key; // database file encryption key</p>
<p>				char * logname; // buffer for returning log file name</p>
<p>				size_t logname_size; // size of the logname buffer</p>
<p>				char * mirrorname; // buffer for returning mirror log file name</p>
<p>				size_t mirrorname_size; // size of the mirrorname buffer</p>
<p>				void * reserved; // reserved for internal use, must set to NULL</p>
<p>				} a_log_file_info;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672088">672088</a></td>
<td>The Extraction utility could have incorrectly extracted an event from a consolidated database for a user that would be not be created in the remote database. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672094">672094</a></td>
<td>Renaming a table that was marked as no-sync or all-sync would have changed it to a normal synchronizing table if the new name didn&#39;t have the &quot;_nosync&quot; or &quot;_allsync&quot; suffix. This has been fixed. The table will now retain its old sync type unless the previous name did have one of the special suffixes (&quot;_nosync&quot;, &quot;_allsync&quot;, and &quot;_download_only&quot;) and the new name does not since a change to the sync type is implied by the removal of the special suffix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672184">672184</a></td>
<td>If an application attempted to perform a wide insert using the SQL Anywhere ODBC driver, or a batched insert using the SQL Anywhere JDBC driver, then there was a very small chance the application would crash if the system was low on memory or under stress. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672207">672207</a></td>
<td>When attempting to use the IS [NOT] DISTINCT FROM predicate in a query that involved proxy tables the server would have failed the query with a strange &quot;unknown node type&quot; error. This problem has now been fixed and the IS [NOT] DISTINCT FROM predicate can now be used with proxy tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672208">672208</a></td>
<td>The changes for Engineering case 655157 introduced a problem such that when multiple consecutive pinging messages appeared in the incoming message box, SQL</p>
<p>				Remote would have generated the warning message:</p>
<p>				Deleting duplicate message from ...</p>
<p>				and then deleted the duplicate pinging messages.</p>
<p>				This problem is fixed so that all the duplicate pinging messages are now processed without complaint.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672213">672213</a></td>
<td>The Relay Server may have become unrecoverable due to continuous errors from the shared memory manager when one of the backend servers had been serving more that four types of clients. This has been fixed so that a hard limit of 1600 client types is in effect. When the new limit is reached, a graceful error will be reported without affecting the rest of the requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672372">672372</a></td>
<td>Execution of an ALTER DATABASE SCHEMA FROM FILE statement may have failed with a SQLE_SCRIPT_MISSING_DELIMITER error when using a SQL file generated from ulunload or ulinit. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672430">672430</a></td>
<td>In very rare situations, the server may have hang on shutdown, if while in the process of shutting down the option MaxMultiProgrammingLevel was increased. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672447">672447</a></td>
<td>Under very rare circumstances, frequent transaction log renames may have left small portions of logs that overlapped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672573">672573</a></td>
<td>Using either mixed case or upper case when specifying the &quot;.dll&quot; portion of the assembly name in a CLR external environment procedure, could have caused the external environment to fail to run the specified method within the assembly. For example, an external name clause like:</p>
<p>				external name &#39;MyTest.DLL::MyNameSpace.MyTestClass.MyMethod() int&#39;</p>
<p>				would have failed to execute MyNameSpace.MyTestClass.MyMethod, but an external name clause like:</p>
<p>				external name &#39;MyTest.dll::MyNameSpace.MyTestClass.MyMethod() int&#39;</p>
<p>				would successfully find and execute MyMethod. This problem has been fixed.</p>
<p>				Note that a workaround is to simply lower case the &quot;.dll&quot; portion of the assembly name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672577">672577</a></td>
<td>If the PATH environment variable placed earlier versions of SQL Anywhere before version 12.0 in the path, then newdemo.bat would have launched earlier versions of SQL Anywhere utilityes, but used the version 12 Scripts folder. This may have resulted errors if the earlier version did not support the same SQL language that was used by the scripts in the Scripts folder. This problem has been fixed. The newdemo.bat file will now reference the tools explicitly by their path. </p>
<p>				Note, the newdemo.bat file is referenced by the SQL Anywhere documentation whenever it is desirable to start with a newly initialised version of the demonstration database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672633">672633</a></td>
<td>When the MobiLink server was running on an OS with a multi-byte character set, and a synchronization request from an Android UltraLiteJ application caused a synchronization error at the server, the UltraLiteJ runtime could have caused an application crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672731">672731</a></td>
<td>After installing the SQL Anywhere Monitor on a machine with little free contiguous memory, it could not be run. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672739">672739</a></td>
<td>A number of edits have been made to the SQL Anywhere server, the MobiLink server and UltraLite error messages to improve readability and to make the wording more consistent with the SQL Anywhere documentation. These changes include minor grammatical corrections, and changes to enforce consistency with hyphens and capitalization. No changes were made to SQLCODE, SQLSTATE, or ODBC error states for any of these messages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672749">672749</a></td>
<td>If the two partner databases in a mirroring configuration were both starting up at the same time, while the servers that were hosting them were attempting to shut down, both servers could have hung. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672858">672858</a></td>
<td>The server could have crashed if a table was being dropped at the same time as a proxy table was being created. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672870">672870</a></td>
<td>The SQL Reference defines one possible form of the CASE expression as: </p>
<p>				CASE expression-1 WHEN expression-2 THEN expression-3, ... [ ELSE expression-4 ] { END | END CASE }. </p>
<p>				It was not possible to use a subquery as expression-1. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR672879">672879</a></td>
<td>If a High Availability partner or copy node encountered a problem (such as the log file being inconsistent compared to the partner or parent), it would have shutdown the problem database. If the same server was also running one other database (other than the database that was mirrored or a participating in read-only scale-out) the server may have also incorrectly shutdown. This has been fixed so that the mirror server or copy node server will only shutdown the server if the only database running is the problem database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673014">673014</a></td>
<td>When a SQL Anywhere ROOT service processes a request and queries its HTTPServiceName connection property, its name &quot;root&quot; is appended to the first path element (if one is present). This has been fixed. The HTTPServiceName for a ROOT service is always &quot;root&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673024">673024</a></td>
<td>The message &quot;Number of tables that are never synchronized:&quot; would have returned the number of tables that were synchronized instead of the number that were never synchronized. This has been fixed.</p>
<p>				Also, the message &quot;Number of tables that will always be uploaded:&quot; was incorrect and misleading and the number displayed was invalid. This message has been changed to &quot;Number of tables that are in publications:&quot; and the output has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673051">673051</a></td>
<td>It was not possible to use ZLib data compression with HTTP synchronization as the methods to enable compression appeared in StreamHTTPSParms, rather than StreamHTTPParms. This has been fixed by moving the methods from StreamHTTPSParms to StreamHTTPParms. Existing applications will continue to run because StreamHTTPSParms is a subclass of StreamHTTPParms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673173">673173</a></td>
<td>The fix for Engineering case 661622 missed the situation where a subselect that referenced two tables from the main query block, and was equated to a constant, could also have caused the server to fail an assertion or crash .</p>
<p>				For example:</p>
<p>				Select *</p>
<p>				from T1, T2</p>
<p>				where 10 = (select e1 from R where p(R,T1, T2) ) and ..</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673210">673210</a></td>
<td>The NodeType connection parameter is used by read-only scale-out to possibly redirect a connection to a different server. Previously, NodeType supported the values DIRECT, PRIMARY and COPY. Support has now been added for MIRROR and READONLY values. </p>
<p>				MIRROR - When the NodeType connection parameter is set to MIRROR, and you have connected to a copy node or the primary server, the connection is redirected to the mirror server. </p>
<p>				READONLY - When the NodeType connection parameter is set to READONLY, and you have connected to a copy node or the primary server, the connection is redirected to the copy node in its branch with the lowest load. If there are no copy nodes, the connection is redirected to the mirror server. If you have connected to the mirror node the connection is accepted since the mirror server does not know the status of the copy nodes. READONLY is used to connect to any read-only server, either a copy node or the mirror.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673212">673212</a></td>
<td>1) If one TCP/IP address for one partner server in the partner/mirror/primary server connection string in the MIRROR SERVER or -xp configuration was correct, but the TCP/IP address for the other mirror partner server was incorrect, it was possible for the primary server to have skipped performing checkpoints indefinitely. This could only occur with the incorrect TCP/IP address configuration and if the mirror servers contained the fix for Engineering issue 660851. This has been fixed so that the primary server checkpoints normally. </p>
<p>				2) If a High Availability or read-only scale-out server failed to connect to another server, there may not have been any indication of the failed connect. This has been fixed by logging a message to the console for each failed connection. </p>
<p>				3) A High Availability or read-only scale-out server may have displayed the message &quot;... recovery n% complete&quot; where n was a number less than zero or much greater than 100. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673483">673483</a></td>
<td>When the method Connection.emergencyShutdown() was called, existing connections on the database did not have their states changed to NOT_CONNECTED. This has been fixed.</p>
<p>				Also, the method DatabaseManager.connect() now returns SQLE_INVALID_PARAMETER if passed a NULL configuration.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673561">673561</a></td>
<td>The changes for Engineering case 623303 caused additional debug integrity checks to be accidentally turned on. Row pages were being checked on every INSERT and DELETE. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673641">673641</a></td>
<td>Renaming of a member of a destination alias would have caused an error message saying that there was a problem saving the &quot;deletion rule&quot;. Destination alias members can now be successfully renamed without getting an error message. When deleting the members of a destination alias, the exception generated is now explicitly ignored if the client being deleted doesn&#39;t actually exist.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673646">673646</a></td>
<td>It was possible to check both the &quot;Task runs on a schedule&quot; and &quot;High priority&quot; boxes in the Remote Task Properties window. These options are mutually exclusive, so this should have been disallowed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673678">673678</a></td>
<td>If more than one instance of dbmlsync was running on the same machine and they both attempted to create a restartable download file at the same time then it is possible for the file to become corrupted. This will result in errors being reported when another instance of dbmlsync attempts to restart the download.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673704">673704</a></td>
<td>In very rare circumstances, the histogram cleaner could have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673844">673844</a></td>
<td>The server may have crashed while attempting to log a deadlock error between connections. For this to have happened, the Log_deadlocks option needed to have been set to &#39;on&#39;, and at least one of the connections that was participating in the deadlock needed to be executing a query that had a parallel plan.</p>
<p>				There are two possible workarounds:</p>
<p>				1) Turn off intra-query parallelism by setting the Max_query_tasks option to 1, or</p>
<p>				2) Set the Log_deadlocks option to &#39;off&#39;</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673852">673852</a></td>
<td>With both 32 bit and 64 bit versions of SQL Anywhere installed on a 64 bit Windows system, using the Deployment wizard to create a 32 bit install would have displayed the 64-bit UltraLite feature. Attempting to install the MSI that was created in this way on a 32-bit Windows system would have caused the following error:</p>
<p>				Module C:\Program Files\SQL Anywhere 12\BIN64\ulodbc12.dll failed to register. HRESULT -2147024703. Contact your support personnel.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR673856">673856</a></td>
<td>Sometimes the TLS internal communication error (220) was reported without a useful system error code (e.g. Certicom error code) for further analysis. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674024">674024</a></td>
<td>The toolbar buttons in the Interactive SQL utility were not enabled if a stored procedure was executed from Sybase Central and the procedure completed with errors. This has been corrected so that the toolbar buttons are now enabled correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674027">674027</a></td>
<td>When using read-only scale-out and the NodeType=COPY parameter, the connection may have been incorrectly redirected to a parent node or a node which had a higher load than the current node. Also, in very rare timing depending cases with concurrent clients connecting with NodeType=COPY, the server could have crashed. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674032">674032</a></td>
<td>A database&#39;s in-memory state may have become corrupt if it had many indexes on large tables and small row limits. This would have resulted in an ArrayIndexOutOfBounds exception. The database itself was not actually corrupted and could have been used after disconnecting and reconnecting. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674063">674063</a></td>
<td>When typing a single-line SQL comment, the Text Completer could have opened while typing. This has been corrected so that the Text Completer remains hidden unless it is explicitly opened.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674120">674120</a></td>
<td>A web server worker may have crashed when logging lengthy debug messages that had not been localized. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674187">674187</a></td>
<td>A web server worker thread may have crashed when it failed to load the localized language resource (e.g dblge12.dll). The reasons for the failure may have included the file not being found due to path and registry info, or the account associated with the worker did not have permission to read the resource. The symptom was a truncated log line with a missing end-of-line. This has been fixed so that the crash will no longer occur and an unlocalized error message is displayed regarding the loading error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674206">674206</a></td>
<td>The DatabaseManager.release() method is designed to be used only once to release all resources associated with the UltraLiteJ runtime. However, some DatabaseManager methods (eg. connect) did not return an error, but silently failed when called after the call to release(). This has been fixed. Now, a ULjException is thrown with the error code SQLE_NOT_CONNECTED if a connect() or createDatabase() is called after the call to release().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674243">674243</a></td>
<td>The text completer in the Interactive SQL utility and Sybase Central usually suggests SQL statements (e.g. DELETE,INSERT,SELECT) when starting to typing a statement. There was a problem that prevented statements from being suggested when typing a new statement if there was already a statement on a later line, and there was no command delimiter (i.e. a semicolon) between the new statement and the existing one. In this case, only matching SQL keywords and database object names would be suggested. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674250">674250</a></td>
<td>When the MobiLink Server ran against a consolidated database running on Microsoft SQL Server, the MobiLink server could have reported the following error message:</p>
<p>				[-10002] Consolidated database server or ODBC error: ODBC: [Microsoft][SQL Server Native Client 10.0][SQL Server]</p>
<p>				Cannot drop the table &#39;#elbat_yraropmet_ymmud_a_si_siht&#39;, because it does not exist or you do not have permission. </p>
<p>				(ODBC State = 42S02, Native error code = 3701)</p>
<p>				This error would have occurred in one of the following situations:</p>
<p>				1) a deadlock was detected during upload;</p>
<p>				2) an error occurred in a trigger that was defined on an upload table; or</p>
<p>				3) the &#39;XAXT_ABORT&#39; option was set to &#39;ON&#39; in one of the user-defined scripts.</p>
<p>				This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674262">674262</a></td>
<td>When 64 bit versions of SQL Anywhere, MobiLink or the Relay Server were installed, and none of the corresponding 32-bit features were installed (which is the default feature selection), the Start menu shortcuts to dblang.exe (&quot;Change language to &lt;language&gt;&quot;) would not have worked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674320">674320</a></td>
<td>After a MANUAL or AUTO REFRESH text index was renamed, it may not have been found by subsequent statements. This has been fixed.</p>
<p>				Note that restarting the database server eliminates the problem</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674389">674389</a></td>
<td>On Windows desktop platforms, the Winsock version 1 library has been replaced by the Winsock version 2 library. As a result, Wsock32.lib has been replaced by Ws2_32.lib. A few applications (MobiLink, Relay Server) that need Microsoft additional functionality, such as TransferFile, also include Mswsock.lib. The result is the elimination of the Wsock32 DLL and a smaller execution time footprint (36K less).</p>
<p>				Note, this change also affects the ADO .NET provider, the OLE DB provider, MobiLink server, Relay Server Outbound Enabler, database server, all SA software requiring TCPIP running on Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674441">674441</a></td>
<td>Applications with small row limits (due to tables with a lot of columns), many indexes, or large downloads, may have experienced an ArrayIndexOutOfBounds exception while committing the download or while another thread was committing a change parallel to a synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674467">674467</a></td>
<td>Queries that contained a predicate where an expression was &#39;greater than or equal to&#39; or less than or equal to&#39; the minimum value for a column, would have returned a result set that included rows where that column was null (if rows with null exist in the table). Moreover, the HASH SIZE for the indexed column must have been large enough to fully hash the indexed value.</p>
<p>				For example, if x is of type signed integer and there are rows in T where x is NULL, and there is an index on x with max hash size 4, then the following statement would have returned a result set that included rows where X is NULL:</p>
<p>				SELECT * FROM T WHERE x &gt;= -2147483648</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674537">674537</a></td>
<td>Simple INSERT statements referencing a table with an article defined with a non-empty WHERE and/or SUBSCRIBE BY clause could have occasionally failed with a &quot;Column not found&quot; error for the column referenced in either WHERE or SUBSCRIBE BY clause. Re-execution of the same INSERT would, in most cases, have succeeded with no error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674545">674545</a></td>
<td>If a function that can be inlined was invoked with an argument that was an expression with restrictions on where in the query it can appear (for example, an aggregate function), a syntax error could have beeen returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674549">674549</a></td>
<td>The server may have failed assertions 111706, 111707, 106808, or 201200, if the recursive subquery of a recursive common table expression returned a larger select-list item value than its corresponding select-list item in the initial subquery. The problem only happened if the recursive subquery performed a join operation to rows added during previous iterations. This has been fixed so that the server now returns the error </p>
<p>				&quot;Recursive column %1: conversion from &#39;%2&#39; to &#39;%3&#39; loses precision &quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674550">674550</a></td>
<td>Calling the system function WRITE_CLIENT_FILE could have incorrectly resulted in the error &quot;Client library reported a permissions error accessing object (&#39;&lt;FILENAME&gt;&#39;) during transfer&quot; if there were multiple READ_CLIENT_FILE or WRITE_CLIENT_FILE calls in a batch, procedure, or function referring to the same client file name. This could have happened if the client executed a batch or procedure, which in turn called other functions or procedures which ended up doing multiple READ_CLIENT_FILE or WRITE_CLIENT_FILE calls during the execution of the batch or procedure that was executed by the client. This has been fixed by explicitly closing the file at the end of the function call. The file was previously closed at the end of the request.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674559">674559</a></td>
<td>1) In a read-only scale out environment, if a copy node was automatically added (no CREATE MIRROR SERVER statement was executed), but the database server was restarted and used a different TCP/IP address or port, it would have failed to connect properly to other mirror servers. This has been fixed so that copy node servers and primary servers that have this fix will automatically continue to be able to connect if the copy node&#39;s TCP/IP address or port changes the first time the copy node connects. </p>
<p>				2) If an ALTER MIRROR SERVER statement was executed to adjust a copy node&#39;s connection string, that copy node may have temporarily failed to connect properly to other servers. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674582">674582</a></td>
<td>The server would have crashed when inserting several values lower then MIN_DBL (about 1e-306, which is the smallest double which can be stored in normalised format) which still can be stored using denormalized double values. This was fixes by forcing all of the denormal double values to be rounded down to zero.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674702">674702</a></td>
<td>Assertion failure messages now include a database name where available.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674704">674704</a></td>
<td>If a directory access server was queried, and one of the files was owned by a user that did not exist on the system where the server was running, then the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674740">674740</a></td>
<td>Applications with small row limits (due to tables with a lot of columns), several indexes and many open cursors (more than <img src='https://www.dbainfo.net/wp-content/uploads/image/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> on one table may have experienced an ArrayIndexOutOfBounds exception while committing an update. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674748">674748</a></td>
<td>Attempting to unload and reload a SQL Anywhere database from version 10.0.0 and later could have failed if the database contained a large number of integrated logins, and several of the integrated logins had comments associated with them. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674753">674753</a></td>
<td>In rare, timing depending cases, a primary, mirror or copy node server could have hung while shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674782">674782</a></td>
<td>If a server involved in a high availability mirroring system had active TLS connections, the server may have hung indefinitely due to a thread deadlock. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674898">674898</a></td>
<td>Multi-threading access to an UltraLiteJ database may have resulted in a null pointer or other exception. This problem would have occured if another thread was accessing many rows in a single operation (i.e. updating a table with a large number of rows and indexes with small row limiting values). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674917">674917</a></td>
<td>Under rare conditions, the server could have crashed when processing queries with intra-query parallelism. This has been fixed.</p>
<p>				The crash can be worked around by disabling intra-query parallelism by setting the database option MAX_QUERY_TASKS=1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR674931">674931</a></td>
<td>The 32-bit versions of Sybase Central, the Interactive SQL utility, the Console utility, and the MobiLink Monitor, could have failed to start on 32-bit Windows systems under &quot;low&quot; memory conditions. The point at which memory becomes low is difficult to quantify, and depends heavily on the number of other programs running on the machine, and their locations in memory. This has been fixed. </p>
<p>				As part of this change, the message that is displayed when the Java Virtual Machine can&#39;t start has been improved to include the actual JVM error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR675048">675048</a></td>
<td>An application attempting to update a blob column on a result set by calling ULResultSet::AppendByteChunk (ULResultSet.AppendBytes in .NET) would have crashed. The crash wouldn&#39;t have occurred when updating a blob column using an UPDATE statement or a ULTable object. In .NET, this problem would have appearred as a System.AccessViolationException. This has been fixed.</p>
<p>				Also, when attempting to update a blob column that was NULL using a ULTable object, the column value would have remained NULL. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR675119">675119</a></td>
<td>If the Microsoft Firewall Client (FwcWsp.dll) was installed on a Windows systems, applications would see a 20-second delay when the SQL Anywhere ODBC driver was unloaded.</p>
<p>				For example, if &quot;Test Connection&quot; was used when configuring a Datasource Name (DSN), using the ODBC Datasource Administrator on a system with Microsoft Firewall Client installed then a 20-second delay occurs after the OK button is clicked.</p>
<p>				A work-around has been developed for this problem. If the Firewall Client DLL is present when the SQL Anywhere ODBC driver is unloaded, the Windows Socket libraries are not unloaded by the driver. This avoids the 20-second delay. In this case, the Windows Socket libraries are unloaded when the client application terminates.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR675147">675147</a></td>
<td>The Interactive SQl utility&#39;s Import wizard usually remembers the names of recently-imported files and presents them in the combo-boxes where a file can be selected to import. A bug was preventing the list of file names from being remembered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR675293">675293</a></td>
<td>If an initial connection was made to a blank-padded database, and the connection was redirected because of the NodeType connection parameter, the connection would have incorrectly failed with the error &quot;Database cannot be started -- ???&quot;. If the LogFile connection parameter was used to get more information, the generated file would have contained the line &quot;Communication function i_cs_ProtocolErrorP code 0&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_91.htm#CR675317">675317</a></td>
<td>Under extreme load conditions, the Relay Server may log errors on shared memory operations. This logging operation may have crashed the web server worker process. Also, for 12.x Relay Servers, the line label for such logging has the format of &lt;pricessId.threadId.ShmDebug&gt;. The threadId could have been wrong. Both of these problem have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675326">675326</a></td>
<td>When run on a Windows Mobile device, the server could have crashed if the &quot;Authentication parameters&quot; field in an existing &quot;SYNCHRONIZATION PROFILE&quot; was modified. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675363">675363</a></td>
<td>A null pointer exception was possible when a host variable occurred in the HAVING clause This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675496">675496</a></td>
<td>Explicitly opening the Text Completer when the &quot;SQL Statements&quot; field contained only matching parentheses would have caused the Interactive SQL utility to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675642">675642</a></td>
<td>Database corruption was possible when the UltraLiteJ Runtime was under row limitation stress (when the maximum and minimum row limitation values are close together). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675686">675686</a></td>
<td>The server may have failed assertion 101412 - &quot;Page number on pages does not match page requested&quot;, if the database/connection option &#39;chained&#39; was set to &#39;off&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675738">675738</a></td>
<td>Some statements, like CREATE TEXT INDEX and CREATE MATERIALIZED VIEW, record the current database option values that exist at the time the statement was executed in the transaction log. The server would have returned the assertion failure error 100904 - &quot;Invalid option &#39;&lt;option-name&gt;&#39; -- no PUBLIC setting exists&quot;, if there was not public setting for one of </p>
<p>				these options during startup recovery, or when applying changes on a mirror server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675805">675805</a></td>
<td>It is possible, although rare, for the machine.config file to contain multiple registered SQL Anywhere ADO.NET providers. When unregistering, the SetupVSPackage.exe utility only removed one SQL Anywhere ADO.NET provider from the machine.config file. This problem has been fixed so that SetupVSPackage.exe now looks for all registered SQL Anywhere ADO.NET providers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR675894">675894</a></td>
<td>In Sybase Central, you can generate HTML documentation for a database to which you are connected. That documentation includes cross-reference information for stored procedures -- a list of procedures a given procedure calls, and a list of the procedures which call the given procedure. This cross-reference information was not being generated for those stored procedures which used the Transact SQL dialect. Cross-reference information for procedures which used the SQL Anywhere dialect were generated fine. This has been fixed so that cross-reference information is generated for stored procedures that are written using either dialect.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676007">676007</a></td>
<td>The server would have failed to rename the request log correctly if the option RequestLogNumFiles was set to 1. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676015">676015</a></td>
<td>Queries involving spatial predicates over an indexed geometry column may have failed to select a plan that used the spatial index if the table was very large (several gigabytes at least). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676033">676033</a></td>
<td>When a statement cannot be executed by the Interactive SQL utility, the error is displayed in an error window. That window contains a &quot;Help&quot; button which, which clicked, can display a menu of relevant help topics (for the error message and for the type of statement being executed). Opening this error window could have taken a non-trivial amount of time if the online documentation for SQL Anywhere was not installed. In those cases, the software had to check with the DocComment Exchange (DCX) server to see if help was available for the statement in question. While the Interactive SQL utility is doing this check, it could be unresponsive. The problem was most acute on machines that were not connected to the internet at all. This has been fixed so that the error dialog opens without delay, and Interactive SQL remains responsive at all times.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676069">676069</a></td>
<td>The UltraLiteJ Database Unload utility (uljunload) did not allow specifying the page size on a new databases. A new flag -z has been added to uljunload to specify the page size in bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676092">676092</a></td>
<td>During download deletes, index pages were not being flushed. This has been fixed.</p>
<p>				Other changes have been made as well to reuse Java objects and reduce the creation of temporary objects during the download.</p>
<p>				These changes were made to improve memory useage during synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676102">676102</a></td>
<td>Inserting Unicode strings into a database using an MBCS/ANSI encoding (that is, not UTF-8) could have resulted in corruption of the strings and possibly unbounded store growth. Unicode strings are inserted using the wchar methods in the C++ API, or using .NET. The Unicode conversion routines to and from wchar were not correct and have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676210">676210</a></td>
<td>Execution of a SET REMOTE OPTION would have failed if the value of the setting was larger then 256 bytes. This was due to the schema of the ISYSREMOTEOPTION table which has a 255 byte limit on the length of the settings column. The server has been changed to provide a more appropriate error message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676224">676224</a></td>
<td>If a database had a publication defined using the &quot;download only&quot; or &quot;scripted upload&quot; clauses, but had not defined any synchronization users or synchronization subscriptions, then when a dbunload was run on the database, the &quot;download only&quot; or &quot;scripted upload&quot; clauses of the publication would not have been maintained. This problem has been fixed.</p>
<p>				A workaround to this issue would be to add any synchronization user or synchronization subscriptions to the database. For example, if a publication &quot;p1&quot; was defined for download only, execute &quot;CREATE SYNCHRONIZATION SUBSCRIPTION TO p1 TYPE &#39;tcpip&#39;&quot;. This would define TCP/IP as the default communication type when synchronizing the publication, which is the default that would be chosen anyway.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676332">676332</a></td>
<td>UPDATE statements with complex table expressions may have caused a server crash. At least the following conditions must have been true:</p>
<p>				1. The UPDATE statement is using the syntax:</p>
<p>				UPDATE [ row-limitation ] table-expression [, ...] ]</p>
<p>				SET set-item[, ...]</p>
<p>				[ WHERE search-condition ]</p>
<p>				[ ORDER BY expression [ ASC | DESC ] , ...]</p>
<p>				[ OPTION( query-hint, ... ) ]</p>
<p>				2. The statement must have had at least two query blocks (e.g., a derived table, subselect, subqueries).</p>
<p>				3. The &#39;table expression&#39; contained a Left Outer Join at the root of the tree</p>
<p>				4. The Left Outer Join was a redundant join. Removing the Left Outer Join from the original statement generates an equivalent statement.</p>
<p>				This has been fixed.</p>
<p>				For example:</p>
<p>				update LP join PR on PR.PR1 = LP.LP1</p>
<p>				join LS on LS.LS2 = PR.PR2</p>
<p>				join SC on SC.SC1 = LS.LS2 </p>
<p>				left outer join PC on PC.PC1 = LS.LS1 </p>
<p>				set LP.LP2 = LS.LS1 </p>
<p>				where</p>
<p>				PR.PR3 = 10 and </p>
<p>				LS.LS3 = 20 and </p>
<p>				SC.SC2 = 30</p>
<p>				and SC.SC2 = (select max(id) from product )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676340">676340</a></td>
<td>The database server could have taken longer than expected to perform a backup. During such a backup other database requests may have appeared to stall, and connections to the server may also have been impacted. This should only have occurred if the total size of database files was larger than 5 GB. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676363">676363</a></td>
<td>When attempting to use Sybase Central to create a proxy table for an Access database, and the remote server used the &#39;MSACCESSODBC&#39; server class, the following error would have been displayed:</p>
<p>				[Sybase][ODBC Driver][Adaptive Server Anywhere]Server &#39;&lt;server-name&gt;&#39;: [Microsoft][ODBC Driver Manager] Driver does not support this function (-660)</p>
<p>				A call was being made to SQLPrimaryKeys() to determine which columns in the table belong to the primary key. Access does not support this function, so this error is now ignored for the &#39;MSACCESSODBC&#39; server class.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676364">676364</a></td>
<td>The version of zlib used by the SQL Anywhere and MobiLink clients and servers contained security vulnerabilities documented under US CERT Vulnerability notes VU#680620 and VU#238678. These are fixed in zlib version 1.2.3. SQL Anywhere and MobiLink clients and servers now use zlib version 1.2.5.</p>
<p>				Links:</p>
<p>				http://www.kb.cert.org/vuls/id/680620</p>
<p>http://www.kb.cert.org/vuls/id/238678</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676495">676495</a></td>
<td>1. A copy node can now act as an arbiter for the database it is copying in a high-availability system with mirroring. The arbiter and both partners must be running the updated software to take advantage of this change. As before, a partner cannot act as arbiter for its own database. When defining the arbiter to refer to a copy node, use an arbitrary mirror server name for the arbiter that does not match the server name of any of the database servers in the HA system. The name of the arbiter mirror server isn&#39;t actually used for connecting. For example:</p>
<p>				CREATE MIRROR SERVER &quot;scaleout_child&quot; AS COPY connection_string = &#39;server=scaleout_child;host=winxp-2:6878&#39;;</p>
<p>				CREATE MIRROR SERVER &quot;TheArbiter&quot; AS ARBITER connection_string = &#39;server=scaleout_child;host=winxp-2:6878&#39;;</p>
<p>				Note that there is no database server in the HA system that is running with the server name &quot;TheArbiter&quot;: it is just being used as a placeholder in the mirror server definitions to hold the connection string for the arbiter.</p>
<p>				2. Copy nodes could have reported a log mismatch error in certain cases involving a failure of both the primary server and the arbiter. This problem has been fixed.</p>
<p>				3. There was a race condition that could have allowed an arbiter server to create two separate internal states for the same mirroring system. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676505">676505</a></td>
<td>Under rare, timing dependent conditions, the Relay Server may have reported a fatal error &quot;RSF11016: Freeing already freed memory block in shared memory&quot;. The Relay Server&#39;s shared memory manager would have protected itself from this illegal operation and continued to operate normally. This error may have occurred right after RSE2000, RSE3008 or Relay Server shutdown. This has been fixed by eliminating the redundant freeing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676664">676664</a></td>
<td>After the changes for Engineering case 661663, passing an invalid certificate to a web procedure (i.e. CREATE FUNCTION ... URL &#39;...&#39; CERTIFICATE &#39;...&#39;) may have caused the server to crash when the procedure was executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676668">676668</a></td>
<td>Values in long binary and long varchar columns may have become corrupted when used in temporary tables. This may have manifested itself as incorrect values read, or ArrayIndexOutOfBounds exceptions, when values were read or when rows containing these values are deleted or updated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676727">676727</a></td>
<td>When editing a TIMESTAMP column value in the &quot;Results&quot; panel, the editor did not distinguish between AM and PM, always assuming AM. This has been corrected so that the editor now distinguishes between the two.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676844">676844</a></td>
<td>Attempting to perform an unload with reload of a database, using the Unload utility or the dbtools DBUnload function, may have failed with a &quot;Cannot find index named ...&#39; error if the index had a comment. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR676996">676996</a></td>
<td>The database server, running a database in read-only mode, could have crashed during database validation. This would only have occurred in very rare circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677104">677104</a></td>
<td>Current login policy allowed putting a restriction over the number of failed login attempts a user can make before the user&#39;s account is locked. However, this restriction did not apply to users with DBA authority. Regardless of the number of failed login attempts, a DBA user was always allowed to login if correct credentials are provided. This made DBA accounts vulnerable to brute force attacks. This has been changed with the new option, max_failed_login_attempts. The value of this option is also applied to users with DBA authority. However, to prevent complete database lock down, an automatic unlock time of 1 minute is also applied. At the time of database restart, a DBA user will also be allowed to make one failed login attempt, regardless of the number of failed login attempts stored in the catalog.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677165">677165</a></td>
<td>In specific circumstances, it was possible for the server to fail assertion 101519. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677251">677251</a></td>
<td>If an embedded SQL application or a stored procedure first opened a READ ONLY cursor on a simple SELECT query qualifying for optimizer bypass, and later opened an UPDATE cursor for the same query, a positioned update to the second cursor could have failed with SQLCODE -192 (&quot;Update operation attempted on non-updatable query&quot;). This has been fixed.</p>
<p>				For the error to occur in version 11, the first cursor would need to be explicitly declared FOR READ ONLY, because FOR UPDATE is the default (c.f. documentation for DECLARE CURSOR statement). In version 12.0.0 and later, cursor updatability depends upon cursor type (c.f. documentation for SELECT and PREPARE statements) but defaults to FOR READ ONLY for ESQL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677327">677327</a></td>
<td>In some cases, SQL Anywhere HTTP procedures and the HTTP server would have failed to process received chunked mode transfer encoded data when the chunk length meta-data contained leading zeros. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677430">677430</a></td>
<td>In extremely rare cases, inserting data into a compressed column that had a blob index may have resulted in the blob index becoming corrupt. This could have resulted in assertion failures if the data was accessed randomly (i.e. using substr(), right(), or similar), and would also have resulted in validation failures. This has been fixed.</p>
<p>				Note: existing corrupted blob indexes must be dropped and recreated after the fix is applied. This can be done using:</p>
<p>				alter table &lt;table&gt; alter &lt;column&gt; no index</p>
<p>				alter table &lt;table&gt; alter &lt;column&gt; index</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677515">677515</a></td>
<td>Running REORGANIZE TABLE on a table with foreign key indexes when the database was under heavy update/delete load, had a chance of corrupting the table. Specifically, the indexes on the table would have contained more values then the table itself. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677803">677803</a></td>
<td>If an invalid certificate was encountered by the server running on the Mac, the error reported may have been &quot;Error parsing certificate file, error code 0&quot;. This has been fixed, the error code should have been non-zero if an error occurred.</p>
<p>				Note, this problem also affected SQL Anywhere clients running on the Mac.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677867">677867</a></td>
<td>Null values retrieved with ResultSet.getString( col_no ) were returned as an empty string. This has been fixed. Now, null values are retrieved as null with this method.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677962">677962</a></td>
<td>When a database was shut down (for example, as part of server shutdown) and the database was a high availability mirror or a read-only scale-out copy node, the server could have hung in rare timing dependent cases. If the server was hung due to this problem, there would have been messages like the following in the server console: </p>
<p>				A write failed with error code: (6), The handle is invalid. </p>
<p>				Fatal error: disk full when writing to &quot;???&quot; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR677966">677966</a></td>
<td>Applications with small row limits (due to tables with a lot of columns), many indexes, or large downloads, may have experienced an ArrayIndexOutOfBounds or ULjException with error code SQLE_ERROR. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678117">678117</a></td>
<td>Under rare circumstances, the database server could have crashed or failed an assertion while running diagnostic tracing on a database where a large number of procedures, user-defined functions, triggers or events are being invoked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678144">678144</a></td>
<td>A high availability partner server that was under heavy load could have hang when a thread deadlock occurred. This has been fixed so that a request will now receive the error: &quot;All threads are blocked&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678259">678259</a></td>
<td>A SQL Anywhere http procedure call may, on rare occasions, have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678597">678597</a></td>
<td>When running in a continuous mode, SQL Remote would have leaked about 10 kilobytes of memory in every attempt of sending messages to its subscribers. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678600">678600</a></td>
<td>When downloading rows with multiple LONG BINARY or LONG VARCHAR columns, they may have been corrupted when earlier clob/blob columns were null. This could have then resulted in a variety of errors including reading random values.</p>
<p>				For example, if a table was defined as:</p>
<p>				CREATE TABLE t(</p>
<p>				c1 INT PRIMARY KEY,</p>
<p>				c2 LONG VARCHAR,</p>
<p>				c3 LONG VARCHAR )</p>
<p>				and the row[ 1, null, &#39;b&#39; ] was downloaded, reading c3 would have failed. Rows [2, &#39;a&#39;, &#39;b&#39;], [3, &#39;a&#39;, null ] and [4, null, null ] would have been okay.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678780">678780</a></td>
<td>Under heavy row limiting (i.e. large tables, many indexes, or many columns), complex queries involving temp tables may have resulted in a NullPointer Exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678806">678806</a></td>
<td>The ENCRYPTED KEY &#39;&lt;key&gt;&#39; clause is now supported in the openstring OPTIONS clause. This is useful for reading in files created using UNLOAD with the ENCRYPTED clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678817">678817</a></td>
<td>A canceled SQL Anywhere HTTP client procedure may, on rare occasions, hang the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678942">678942</a></td>
<td>There was a small chance that some statistics could have been reported incorrectly if parallel plans were used. Statistics affected include lock count, and the various io counts. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR678983">678983</a></td>
<td>The MobiLink server could have crashed when synchronizing using HTTP. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679160">679160</a></td>
<td>Invoking the SQLDIALECT function can cause server failure under specific, and unlikely, situations. The problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679296">679296</a></td>
<td>With UltraLiteJ for Android, synchronization with HTTP and E2EE was not possible because the methods setE2eePublicKey() and getE2eePublicKey() were members of the class StreamHTTPSParms. This has been fixed by moving the methods to the base class, StreamHTTPParms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679356">679356</a></td>
<td>When the Relay Server state manager was started with the -os command line option, and the Relay Server extension was published using a user account without write permission of the folder that contained the log file, then auto truncation of the log when the size limit was reached may have failed on IIS7.x with a RSF11013 error where the underlying reason was system error 5 (Access is denied). This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679370">679370</a></td>
<td>If an application had a proxy procedure defined with an INOUT or OUT parameter of type [n][var]char(m), then calling that proxy procedure would have caused a server crash if the remote returned a value for that parameter that was the full m characters long. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679403">679403</a></td>
<td>Calling ResultSet.getString(i) when column i was of type INT, SMALLINT, UNSIGNED SMALLINT, BIGINT, NUMERIC, REAL or DOUBLE, would have thrown a ULjException with code SQLE_VALUE_IS_NULL when the column value was NULL. This has been fixed so that ResultSet.getString() now returns null in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679408">679408</a></td>
<td>If a connection exists on the mirror server (ie, not the primary) when a failover occurs, that connection will persist while that partner becomes the primary. Database operations then performed by that connection (including certain temp-table operations which are valid from read-only connections) could have caused errors or crashes on other servers in the mirroring / HA system. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679415">679415</a></td>
<td>Reloading a database that contained a table that referenced a sequence could have failed. This has been fixed. </p>
<p>				As a work around, the &quot;Create sequences&quot; section could be manually moved to before the &quot;Create tables&quot; section in the reload.sql file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679436">679436</a></td>
<td>After returning false from the SyncProgressed method, or calling CancelSynchronize to cancel a synchronization, it was possible that the Synchronize or EndSynchronize call would have hung. This has been fixed.</p>
<p>				Also, the ULSyncProgressData.FLAG_IS_BLOCKING flag could have been set erroneously when the state was ULSyncProgressData.STATE_CANCELLED. This too has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679580">679580</a></td>
<td>The server could have crashed if a table was being dropped at the same time as a virtual table was being created. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679605">679605</a></td>
<td>When a geometry had multiple polygons configured in a particular way, the Union of that geometry with another polygon, which was also configured in a particular way, would have caused a &#39;ring not closed&#39; error.</p>
<p>				A simple example of a query that demonstrates this error is:</p>
<p>				select ST_Geometry::ST_GeomFromText( &#39;MultiPolygon( ( ( -10 -10, -11 -10, -11 -11, -10 -11, -10 -10 ) ), ( ( 2 2, 2.5 1, 1 1, 1 2, 0 2, 0 0, 3 0, 3 2, 2 2 ) ) )&#39; ).ST_Union( ST_Geometry::ST_GeomFromText( &#39;Polygon( ( 1 1, 2.5 1, 2 2, 1 2, 1 1 ) )&#39; ) )</p>
<p>				The only work around is to break up the MultiPolygon and perform the unions in a different order.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR679803">679803</a></td>
<td>SQL Remote would have generated the following error message:</p>
<p>				&quot;The address given is invalid. The address must be a directory name with no path separators.&quot;</p>
<p>				and then aborted the message receiving thread when it was able to retrieve all the names of the message files in the given directory from a FTP server, but for some reasons (such as network problems) was not able to retrieve the contents of a file from the server. This problem is fixed so that the error message is now:</p>
<p>				&quot;Unable to retrieve message file &#39;xxxx&#39; from the FTP server.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680025">680025</a></td>
<td>If a database had one or more ODBC based remote servers that used the new &quot;driver=SQL Anywhere Native&quot; feature, and if more than one connection attempted to establish a remote connection using these remote server definitions, and if no other connection had previously established a remote server definition using one of these remote server definitions, then there was a very small chance that the server would have crashed on exit. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680034">680034</a></td>
<td>In a heavy indexing environment (many rows * many cursors with small row limiting values, and small cache size relative to number of index pages in the database), after a synchronization with several open cursors and containing download deletes, subsequent deletes or updates may have resulted in SQLE_ERRORs or NullPointerExceptions. These have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680036">680036</a></td>
<td>In a heavy indexing environment (many rows * many cursors with small row limiting values and small cache size relative to number of index pages in the database), a synchronization of many download deletes may have become stuck while committing the download. Sometimes, on the BlackBerry OS it would have caused a system wide ForcedStackTrace exception. These have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680039">680039</a></td>
<td>A memory leak could have occurred when using the SQL Anywhere ODBC driver in such a way that the driver was repeatedly loaded and unloaded by the Microsoft ODBC Driver Manager on Windows Vista and Windows 7. This could have occurred when repeatedly creating and subsequently freeing the ODBC Environment as part of calling the SQL Anywhere ODBC driver. This problem occurs under Windows Vista and Windows 7 only as a result of a bug in Microsoft&#39;s SHELL32.DLL for these two operating systems. An Activation Context object is leaked on each load of the DLL. A workaround has been developed to avoid the problem.</p>
<p>				Another way to avoid the problem is to create and destroy the ODBC Environment only once in an application and connect/disconnect as often as desired.</p>
<p>				SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &amp;henv );</p>
<p>				SQLSetEnvAttr( henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0 );</p>
<p>				loop</p>
<p>				connect/disconnect many times</p>
<p>				endloop</p>
<p>				SQLFreeHandle( SQL_HANDLE_ENV, henv );</p>
<p>				Note, Microsoft has published http://support.microsoft.com/kb/2624911, which describes the problem with Windows Vista and Windows 7.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680180">680180</a></td>
<td>Conversions between Date and Time datatypes during direct computation would fail in versions 11.0 and earlier, but in version 12.0, this conversion did not fail. This has been fixed so conversions between dates and times in version 12.0 will now also fail, as these conversions are invalid.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680183">680183</a></td>
<td>In rare timing-dependent cases, a multi-threaded client application that made simultaneous connection attempts from different threads may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680196">680196</a></td>
<td>An application that connected using jConnect version 7 would have found that certain DatabaseMetaData calls returned incorrect results or unexpected errors. These metadata problems have now been corrected.</p>
<p>				Note that a database upgrade is needed in order to get this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680218">680218</a></td>
<td>Calling ULConnection.SetSyncListener would have internally launched a thread that would never terminate. This could have prevented Windows Mobile applications from completely shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680231">680231</a></td>
<td>Databases which are accessed with row limiting enabled (see ConfigPersistent.setRowMinimumThreshold and setRowMaximumThreshold) will now always lazy load indexes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680242">680242</a></td>
<td>Procedures with a SELECT statement that called another procedure may have become slower over time. This happened when the SELECT statement generating the result of the inner procedure qualified for a certain type of caching. This has now been fixed.</p>
<p>				A workaround is to ensure that the SELECT statement inside the inner procedure is not subject to simple query caching. If this slowdown is observed, the workaround can be implemented by adding a predicate that is not a tautology, but which is always known to be true for the data, to the inner select. For example, if a certain column is always greater than zero, adding the predicate col &gt;= 0 is sufficient to avoid the problem. Note that simple predicates such as 1=1 will be detected as data-independent tautologies and removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680348">680348</a></td>
<td>When the Text Completer completes a table, view, or procedure name, the owner name is now added if the name would be ambiguous without it. Previously, the owner name could have been added when it wasn&#39;t necessary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680569">680569</a></td>
<td>When run on Unix systems, the system procedure xp_startsmtp(), which Starts an email session under SMTP, would have hung when called with a non-null &quot;trusted_certificates&quot; argument. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680578">680578</a></td>
<td>If a table had many rows with the same index value (all columns for a given index were the same), updates and deletes could have been slow. The performance decreased as the number of non-unique indexes with poor value distribution on a given table increased. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680726">680726</a></td>
<td>If a server identity file with an unencrypted private key was provided to the server, the server would have refused to use it, reporting &quot;Error parsing certificate file, error code 4113&quot;. This has been fixed.</p>
<p>				Note that this problem would not be seen on Mac OS X systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680755">680755</a></td>
<td>Sybase Central could have crashed when selecting a global temporary table in the tree, then selecting the Data tab in the right-pane and attempting to insert a row into the table. The crash would only have occurred if the table&#39;s commit action was DELETE ROWS. This has been fixed so that the Data tab is no longer shown for a GLOBAL TEMPORARY table unless its data is SHARE BY ALL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680760">680760</a></td>
<td>When viewing extended options for a synchronization profile, publication, MobiLink user, or synchronization subscription, the values for the MobiLinkPwd and NewMobiLinkPwd extended options could have been seen in plain text from their tooltips. Now, no tooltips are shown for these values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680766">680766</a></td>
<td>Execution of a CREATE OR REPLACE SEQUENCE statement would have failed with the error &quot;Sequence &lt;sequence name&gt; already exists&quot; if the sequence already existed. This has been fixed. </p>
<p>				The workaround is to manually drop the sequence before issuing the CREATE statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680767">680767</a></td>
<td>When unloading a database, incorrect CREATE TEXT CONFIGURATION of external term breakers and prefilters were being generated in the reload,sql file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680769">680769</a></td>
<td>When unloading a database, SEQUENCE generator comments were not included in the reload.sql file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680770">680770</a></td>
<td>When unloading a database, GRANT INTEGRATED/KERBEROS statements containing square brackets were written in the reload.sql file. These statements would have would have generated an &#39;unexpected statement&#39; error when executed. This has been fixed by always putting double quotes rather than square brackets around the user identifier.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680779">680779</a></td>
<td>When unloading a database, the ALTER TABLE statement to generate unique constraints in the reload.sql file did not include the CLUSTERED keyword for clustered unique constraints. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680917">680917</a></td>
<td>Interactive SQL contains a number of menu items for selecting the current, previous, and next statements. These menu items could hale selected more than just the statement text, or could have selected nothing at all if the statement being selected included the text &quot;IF NOT EXISTS&quot;.</p>
<p>				For example: </p>
<p>				CREATE TABLE IF NOT EXISTS t ( c INT PRIMARY KEY ) </p>
<p>				This has been fixed. Now, statements are selected properly. </p>
<p>				This same problem also affected the behavior of the &quot;Single Step&quot; menu item which also relies on being able to select the next statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR680920">680920</a></td>
<td>The ISS Application Pool Process (w3wp.exe) may have crashed some time later after handling a request with a URL ending with the Relay Server extension.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681055">681055</a></td>
<td>When setting the MobiLink client network protocol options for an Agent, it was not possible to specificy a certificate file name if that name contained any of the following characters: &quot;!@#%^&amp;()+-_&quot;. Attempting to do so would have resulted in an error message saying there was a syntax error in the protocol options. This message was incorrectly being display, and is now not shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681059">681059</a></td>
<td>The usage text for the Relay Server Outbound Enabler was incorrectly listing &#39;identity_name&#39; as a value for the -cr option. The value &#39;identity_name&#39; has now been removed .</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681078">681078</a></td>
<td>TLS and HTTPS synchronization would have failed when the client attempted to use a client-side identity with an unencrypted private key. The error reported would have been: &quot;Unable to read the private key&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681081">681081</a></td>
<td>The connection string an agent uses to connect to a given remote database can be changed by selecting the agent, then selecting a database on the &quot;Managed Remote Databases&quot; panel and clicking the &quot;Set Connection String&quot; menu. If the &quot;Cancel&quot; button was clicked on the resulting window, the changes were made permanent, as if &quot;OK&quot; had been clicked instead. This has been corrected so that the changes in the dialog are discarded when &quot;Cancel&quot; is clicked.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681082">681082</a></td>
<td>If deployment of a synchronization model to a consolidated database stopped progressing because another database connection was blocking it, clicking Cancel would have caused Sybase Central to become unresponsive, even after the blocking from the other connection ended. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681088">681088</a></td>
<td>Memory usage for large downloads containing both deletes and/or updates has been improved, particularly in respect to the number of object handles used on BlackBerry devices. Downloads that delete or update tables with many columns will benefit most from this new algorithm.</p>
<p>				Note, row limiting is required to make use of this improvement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681396">681396</a></td>
<td>If an Unix machine had many network interfaces (hard to say how many), starting the server may have failed. The only error message displayed was &quot;TCPIP communication link not started&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681398">681398</a></td>
<td>The server could have crashed while using the UNLOAD statement to unload data with &#39;APPEND ON&#39; to a file if that file was also being deleted by some other process. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681404">681404</a></td>
<td>A MobiLink client doing an HTTPS synchronization could have crashed if the connection was lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681419">681419</a></td>
<td>Multi-threaded OLEDB applications could have experienced an access violation when a rowset was released. This problem was introduced by the changes made for Engineering case 662896 and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681424">681424</a></td>
<td>On Windows Mobile devices, calling GetStringLength(), on a ULValue returned from any of the schema methods in ulcpp11.cpp, could have returned 0 even if it was a valid non-zero length string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681545">681545</a></td>
<td>If a client&#39;s character set was a multi-byte character set, the following operations could have resulted in CHAR or NCHAR sizes larger than they should have been: </p>
<p>				- the columns in a table created by the SELECT ... INTO [ LOCAL TEMPORARY TABLE ] table-name </p>
<p>				- the columns in a view </p>
<p>				- sa_describe_query and sa_describe_cursor domain_name_with_size and widths </p>
<p>				- the EXPRTYPE returned data type length </p>
<p>				These operations have been fixed to return the correct lengths.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681551">681551</a></td>
<td>In rare cases, the server may have hang while trying to flush histogram statistics. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681571">681571</a></td>
<td>If an application attempted to drop a connection that had a cursor on a proxy table open, then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681578">681578</a></td>
<td>In rare timing dependent cases, a copy node or async mirror could have failed assertion 100927 (&quot;Transaction log page number ... from parent or partner is not expected page number ... &quot;). This problem could have occurred soon after the copy node started, or soon after the copy node reconnected to a parent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681579">681579</a></td>
<td>For certain queries containing the built-in function ARGN(), the ARGN() expression may either have returned an incorrect value due to incorrectly matching an earlier case in the expression, or caused the server to crash. The probability of either failure was very small, and depended on both the database page size and the query text; however, the failure was deterministic for a given database and query text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681612">681612</a></td>
<td>In a read-only scale-out configuration, the use of CREATE OR REPLACE MIRROR SERVER parent-server (where parent-server is the parent to any copy node) could have resulted in incorrect behaviour. The incorrect behaviour included servers and/or databases stopping, or the copy node not being able to connect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681616">681616</a></td>
<td>The &#39;asyncfullpage&#39; mirror synchronization_mode performance has been improved to be significantly better than the &#39;async&#39; synchronization_mode for workloads that can take advantage of it. Note the &#39;synchronous&#39; synchronization_mode is recommended since both the &#39;async&#39; and &#39;asyncfullpage&#39; modes can result in lost transactions if the primary server fails.</p>
<p>				After changing the synchronization_mode while the mirror server was connected, the mirror could have failed to take over as primary (including if the synchronization_mode was changed from &#39;async&#39; or &#39;asyncfullpage&#39; to &#39;synchronous&#39;). This has been fixed. A side effect of this fix is the database on the mirror server automatically stops and restarts if the synchronization_mode is changed between an asynchronous mode and &#39;synchronous&#39;.</p>
<p>				If the mirror database stopped and immediately restarted, in rare timing dependent cases, it was possible that the mirror would fail to take over as the primary if the primary failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_92.htm#CR681620">681620</a></td>
<td>If the MobiLink server was started with an identity file containing an unencrypted private key, it would have fail to start with error &quot;Unable to read the private key.&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681621">681621</a></td>
<td>In a Relay Server farm environment, likely with non-sticky loadbalancer, it was possible for the Outbound Enabler to leak memory in the rare case of failing to locate the proper channel where the client request originally came from. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681739">681739</a></td>
<td>In extremely rare situations, the primary server in a mirroring system could have become deadlocked while attempting to send log pages to the mirror partner. For the problem to have occurred, all request tasks on the primary server must have been blocked and the connection from the primary to the mirror must have been severed while the log pages were being sent to the mirror. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681743">681743</a></td>
<td>In rare, timing dependent cases a server which was a copy node and its parent could both have hung for several minutes and then the parent report the following message in the console &quot;Mirroring request timed out: dropping mirroring connection&quot; and both server continue normally. If this did occur, after the message was logged, the copy node would have reconnected and both servers continue normally. In order for this situation to occur, there needed to be requests from the copy node server to the parent server (such as mirroring requests for another database or remote data access requests).</p>
<p>				This has been fixed so that servers that have less than about 20 committed transactions per second will no longer hang. There may also be slightly improved performance when using copy nodes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681749">681749</a></td>
<td>Support has been added to the SQL Anywhere Perl DBI driver which permits access to multiple result sets. The more_results() method which is not part of the standard default DBI template has been added as an extension.</p>
<p>				For example:</p>
<p>				$sth = $dbh-&gt;prepare(&quot;BEGIN SELECT * FROM Departments ORDER BY DepartmentID;SELECT TOP 10 * FROM SalesOrders ORDER BY ID;END&quot;);</p>
<p>				$sth-&gt;execute();</p>
<p>				do {</p>
<p>				while (my $data = $sth-&gt;fetch) {</p>
<p>				print &quot;@$data\n&quot;;</p>
<p>				}</p>
<p>				print &quot;---end of data---\n&quot;;</p>
<p>				} while (defined $sth-&gt;more_results());</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681755">681755</a></td>
<td>In a high availability setup, if both partners accessed the arbiter at the same time, the arbiter could have crashed or behaved incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681758">681758</a></td>
<td>In a mirroring setup, copy node server console messages often said &quot;mirror&quot; or &quot;partner&quot;, causing confusion about the actual role of the server and which server was its parent server. This has ben corrected so that the server console messages for a copy node will now refer to the copy node itself as &quot;copy node&quot;, and its parent as &quot;parent&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681759">681759</a></td>
<td>The database property &#39;PartnerState&#39;, as returned by db_property, would have returned inaccurate results for databases that had no mirroring definitions, but were running with mirroring enabled. This has been fixed. Now, db_property(&#39;PartnerState&#39;) will return &quot;null&quot; if no partner has been defined.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681765">681765</a></td>
<td>One or more high availability or read-only scale-out servers could have hung in rare timing dependent cases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681788">681788</a></td>
<td>Version information was missing from mlnotif.jar, so an ianywhere.ml.notifier.BuildNum class with a static main method that prints the version with build number to System.out, has been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681789">681789</a></td>
<td>Version information was missing from rstool.jar, so an ianywhere.ml.rs.BuildNum class with a static main method that prints the version with build number to System.out, has been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681791">681791</a></td>
<td>On Windows systems, a standalone Relay Server Outbound Enabler (RSOE) may have mistakenly identified a backend server as down or not accepting requests during the backend ping cycle on startup. This error could have happened if the Winsock DLL startup failed. This has now been fixed. Instead, the RSOE will print the error message &quot;Backend ping socket startup failed&quot;, and backend ping attempts will stop.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681796">681796</a></td>
<td>In a High Availability system, if the primary was processing changes faster than the mirror could apply them, it was possible that the primary could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681805">681805</a></td>
<td>In a mirroring system, if a procedure was in use on a mirror or copynode and DDL to ALTER or DROP the procedure was applied on the primary server, the mirror or copynode using the procedure may have given an assertion and shut down. This has been fixed. Now, any connections using the procedure will be dropped, and the following message will be printed to the server console: &quot;Dropping connections that are preventing the transaction log from being applied.&quot;</p>
<p>				In a mirroring system, if an event was in use on a mirror or copynode, and DDL to alter or drop the event was applied on the primary server, the mirror or copynode using the event may have given an assertion and shut down. This has been fixed. Now, if the event is running on the mirror or copynode, the connection the event is running on will be dropped, causing the event to be cancelled, and the following message will be printed to the server console: &quot;Dropping connections that are preventing the transaction log from being applied.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681813">681813</a></td>
<td>The system procedure sa_mirror_server_status() would have returned incorrect results when run on a copy node server, or a mirror server in a mirroring setup. The procedure was returning results for the server&#39;s parent or partner, and could have returned an incorrect status for a server that had been involved in a failover. This has been fixed. The procedure will now return the correct status for the queried server and its children.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681837">681837</a></td>
<td>Doing a large number of download deletes when under extreme row limiting conditions may have resulted in an ArrayIndexOutOfBounds exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681915">681915</a></td>
<td>A client application could have failed with an AccessViolationException, instead of a normal communication error, when a connection was dropped. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681921">681921</a></td>
<td>If an application had an insert trigger on a local table that referenced a proxy table, then the trigger could have failed if the remote query involved the new row values for the trigger. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681928">681928</a></td>
<td>A command can be added to a remote task by selecting the task, then clicking the &quot;Add Command&quot; toolbar button or menu item. If a command is then selected in the &quot;Commands&quot; tab, the new command appears on the row following the selected row. This command was not actually added to the task at that position, instead, it was always added to the end of the command list. This has been fixed so that the new command actually follows the selected command. </p>
<p>				This problem could have made it appear as if the order of commands changed when a remote task was deployed, if the remote task was deployed shortly after adding a command. In fact, the ordering of the commands was incorrect immediately after the command was added. If Sybase Central was started and the task was viewed without deploying it, the added command would have been at the end of the command list.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681931">681931</a></td>
<td>When looking at the commands in a deployed task, the &quot;On failure&quot; setting for each command was displayed as &quot;Abort task&quot;, even for those commands with different &quot;On failure&quot; settings. This has been fixed. The correct &quot;On failure&quot; setting is now shown for each command.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681956">681956</a></td>
<td>Calling the ULConnection methods SetSyncInfo() or ULSetSynchInfo() with a ul_sync_info, where both the auth_parms and additional_parms were non-null, would have created a sync profile where one of the additional_parms had been made into an auth_parm. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR681963">681963</a></td>
<td>If a statement similar to the statement below was used in a stored procedure, function, or trigger, a syntax error may have been incorrectly returned. The statement must have containeds both MATCH and DELETE or INSERT clauses. This has been fixed. </p>
<p>				For example:</p>
<p>				create or replace PROCEDURE test1( )</p>
<p>				BEGIN</p>
<p>				ALTER TABLE ixddl6 ADD CONSTRAINT FK_primary</p>
<p>				FOREIGN KEY (x)</p>
<p>				REFERENCES ixddl5(pk)</p>
<p>				match unique simple on delete set null</p>
<p>				END</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682234">682234</a></td>
<td>The text editor used to display SQL commands in a remote task can be resized. Refreshing or restarting Sybase Central would have reset the size of the editor to the default. Now, the editor size is persisted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682246">682246</a></td>
<td>If an application attempted to cancel a query that involved one or more proxy tables, then the cancel request would have, in some rare cases, been ignored. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682250">682250</a></td>
<td>In a database mirroring setup using asynchronous mode, the mirror was not responding to pages sent by the primary as quickly as it should, affecting performance. This has been fixed and performance should be improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682512">682512</a></td>
<td>If a high availability partner was shutdown while it was the primary, its partner took over as primary, and then the partner that was shutdown was restarted, it could have failed to start with the errors: </p>
<p>				&quot;database is not compatible with primary; files must be replaced&quot; and </p>
<p>				&quot;Database server shutdown due to incompatible files for database mirroring.&quot; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682530">682530</a></td>
<td>When unloading a database, the DESC clause was not being added to statements in the reload.sql file when creating Primary and Foreign Keys with a descending sequence. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682532">682532</a></td>
<td>In version 12 of the Table Mappings editor for synchronization models, if the mapping to direction was changed to &quot;Not synchronized&quot; it was not possible to use the same menu to change it back. As a work around, either use Edit &gt; Undo, or save the model and re-add the table mapping. This has been fixed. Now the table mapping direction menus remain enabled after changing the mapping direction to &quot;Not synchronized&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682561">682561</a></td>
<td>The fix for Engineering case 660995 had caused an issue where client requests that were not assigned to a backend server may have caused the IIS worker to crash in rs_client.dll. The client request may not have been assigned for various reasons. For example, when the Relay Server Outbound Enabler of the backend server was not connected, or the farm was disabled. If that happened and there were also I/O error while reading the request for discarding, a crash could have occurred when the Relay Server tried to report the I/O error. The crash has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682621">682621</a></td>
<td>Remote Relay Server administration operations can be initiated from Sybase Central&#39;s Relay Server plugin, or via the Relay Server administration API. Remote administration operations, such as Relay Server reconfiguration or log archiving, could have caused the Linux Apache Relay Server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682648">682648</a></td>
<td>When using the local Relay Server reconfiguration utility on Linux Apache to change the Relay Server configuration, or to archive the Relay Server log, the utility would not exit once complete. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682662">682662</a></td>
<td>A small amount of memory was leaked when an application using the ADO.NET interface executed a distributed transaction. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682755">682755</a></td>
<td>Multithreaded client applications (e,g., ODBC, OLEDB, ADO.NET applications) could have crashed with a memory access violation, or leaked memory, when attempting simultaneous connections to a server. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682756">682756</a></td>
<td>If operations on a mirror server created a cycle by committing operations on the primary server (via, for example, an OMNI connection), the primary and mirror servers could have deadlocked on each other and appear to hang. The problem was most likely to have been seen when the mirror server was also attempting to shut down. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682762">682762</a></td>
<td>Changes forn Engineering case 674559 introduced a bug which could have caused a crash on the primary server of a mirroring system when auto-adding a copy node. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682773">682773</a></td>
<td>EF 4.1 is the latest release of Microsoft Entity Framework. The major new feature of EF 4.1 is &quot;Code First&quot;. Support has now been added for Code First.</p>
<p>				Code First enables a different development workflow: defining data model objects by simply writing C# or VB.NET classes mapping to database objects without ever having to open a designer or define an XML mapping file. Optionally, additional configuration can be performed by using data annotations or the Fluent API. Model can be used to generate a database schema or map to an existing database.</p>
<p>				Here&#39;s an example which creates new database objects using the model:</p>
<p>				using System;</p>
<p>				using System.Collections.Generic;</p>
<p>				using System.ComponentModel.DataAnnotations;</p>
<p>				using System.Data.Entity;</p>
<p>				using System.Data.Entity.Infrastructure;</p>
<p>				using System.Linq;</p>
<p>				using iAnywhere.Data.SQLAnywhere;</p>
<p>				namespace CodeFirstExample</p>
<p>				{</p>
<p>				[Table( &quot;EdmCategories&quot;, Schema = &quot;DBA&quot; )]</p>
<p>				public class Category</p>
<p>				{</p>
<p>				public string CategoryId { get; set; }</p>
<p>				[MaxLength( 64 )]</p>
<p>				public string Name { get; set; }</p>
<p>				public virtual ICollection&lt;Product&gt; Products { get; set; }</p>
<p>				}</p>
<p>				[Table( &quot;EdmProducts&quot;, Schema = &quot;DBA&quot; )]</p>
<p>				public class Product</p>
<p>				{</p>
<p>				public int ProductId { get; set; }</p>
<p>				[MaxLength( 64 )]</p>
<p>				public string Name { get; set; }</p>
<p>				public string CategoryId { get; set; }</p>
<p>				public virtual Category Category { get; set; }</p>
<p>				}</p>
<p>				[Table( &quot;EdmSuppliers&quot;, Schema = &quot;DBA&quot; )]</p>
<p>				public class Supplier</p>
<p>				{</p>
<p>				[Key]</p>
<p>				public string SupplierCode { get; set; }</p>
<p>				[MaxLength( 64 )]</p>
<p>				public string Name { get; set; }</p>
<p>				}</p>
<p>				public class Context : DbContext</p>
<p>				{</p>
<p>				public Context() : base() { }</p>
<p>				public Context( string connStr ) : base( connStr ) { }</p>
<p>				public DbSet&lt;Category&gt; Categories { get; set; }</p>
<p>				public DbSet&lt;Product&gt; Products { get; set; }</p>
<p>				public DbSet&lt;Supplier&gt; Suppliers { get; set; }</p>
<p>				protected override void OnModelCreating( DbModelBuilder modelBuilder )</p>
<p>				{</p>
<p>				modelBuilder.Entity&lt;Supplier&gt;().Property( s =&gt; s.Name ).IsRequired();</p>
<p>				}</p>
<p>				}</p>
<p>				class Program</p>
<p>				{</p>
<p>				static void Main( string[] args )</p>
<p>				{</p>
<p>				Database.DefaultConnectionFactory = new SAConnectionFactory();</p>
<p>				Database.SetInitializer&lt;Context&gt;( new DropCreateDatabaseAlways&lt;Context&gt;() );</p>
<p>				using ( var db = new Context( &quot;DSN=SQL Anywhere 12 Demo&quot; ) )</p>
<p>				{</p>
<p>				var query = db.Products.ToList();</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				Here&#39;s another example which maps to an existing database:</p>
<p>				using System;</p>
<p>				using System.Collections.Generic;</p>
<p>				using System.ComponentModel.DataAnnotations;</p>
<p>				using System.Data.Entity;</p>
<p>				using System.Data.Entity.Infrastructure;</p>
<p>				using System.Linq;</p>
<p>				using iAnywhere.Data.SQLAnywhere;</p>
<p>				namespace CodeFirstExample</p>
<p>				{</p>
<p>				[Table( &quot;Customers&quot;, Schema = &quot;GROUPO&quot; )]</p>
<p>				public class Customer</p>
<p>				{</p>
<p>				[Key()]</p>
<p>				public int ID { get; set; }</p>
<p>				public string SurName { get; set; }</p>
<p>				public string GivenName { get; set; }</p>
<p>				public string Street { get; set; }</p>
<p>				public string City { get; set; }</p>
<p>				public string State { get; set; }</p>
<p>				public string Country { get; set; }</p>
<p>				public string PostalCode { get; set; }</p>
<p>				public string Phone { get; set; }</p>
<p>				public string CompanyName { get; set; }</p>
<p>				public virtual ICollection&lt;Contact&gt; Contacts { get; set; }</p>
<p>				}</p>
<p>				[Table( &quot;Contacts&quot;, Schema = &quot;GROUPO&quot; )]</p>
<p>				public class Contact</p>
<p>				{</p>
<p>				[Key()]</p>
<p>				public int ID { get; set; }</p>
<p>				public string SurName { get; set; }</p>
<p>				public string GivenName { get; set; }</p>
<p>				public string Title { get; set; }</p>
<p>				public string Street { get; set; }</p>
<p>				public string City { get; set; }</p>
<p>				public string State { get; set; }</p>
<p>				public string Country { get; set; }</p>
<p>				public string PostalCode { get; set; }</p>
<p>				public string Phone { get; set; }</p>
<p>				public string Fax { get; set; }</p>
<p>				[ForeignKey( &quot;Customer&quot; )]</p>
<p>				public int CustomerId { get; set; }</p>
<p>				public virtual Customer Customer { get; set; }</p>
<p>				}</p>
<p>				public class Context : DbContext</p>
<p>				{</p>
<p>				public Context() : base() { }</p>
<p>				public Context( string connStr ) : base( connStr ) { }</p>
<p>				public DbSet&lt;Contact&gt; Contacts { get; set; }</p>
<p>				public DbSet&lt;Customer&gt; Customers { get; set; }</p>
<p>				}</p>
<p>				class Program</p>
<p>				{</p>
<p>				static void Main( string[] args )</p>
<p>				{</p>
<p>				Database.DefaultConnectionFactory = new SAConnectionFactory();</p>
<p>				Database.SetInitializer&lt;Context&gt;( null );</p>
<p>				using ( var db = new Context( &quot;DSN=SQL Anywhere 12 Demo&quot; ) )</p>
<p>				{</p>
<p>				foreach ( var customer in db.Customers.ToList() )</p>
<p>				{</p>
<p>				Console.WriteLine( &quot;Customer - &quot; + string.Format( &quot;{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}&quot;,</p>
<p>				customer.ID, customer.SurName, customer.GivenName, customer.Street, customer.City,</p>
<p>				customer.State, customer.Country, customer.PostalCode, customer.Phone, customer.CompanyName ) );</p>
<p>				foreach ( var contact in customer.Contacts )</p>
<p>				{</p>
<p>				Console.WriteLine( &quot; Contact - &quot; + string.Format( &quot;{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}&quot;,</p>
<p>				contact.ID, contact.SurName, contact.GivenName, contact.Title, contact.Street, contact.City,</p>
<p>				contact.State, contact.Country, contact.PostalCode, contact.Phone, contact.Fax ) );</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				Additional assembly references need to be add to run these examples: EntityFramework, iAnywhere.Data.SQLAnywhere.v4.0, System.ComponentModel.DataAnnotations, System.Data.Entity.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR682889">682889</a></td>
<td>Changes made using the Interactive SQL utility might not have been automatically committed when it was closed, if it was opened from a new MobiLink project. This problem only affected newly created MobiLink projects. If Sybase Central was restarted after creating the project, the problem did not happen. It also only occurred when connect to the consolidated database using only an ODBC data source. If explicit connection parameters were provided, the problem did not happen. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683025">683025</a></td>
<td>If the connection making an http or https request was closed while the request was still executing, and that request was in turn making a request to a mirror server (for high availability or read-only scale-out), or making a request to a diagnostic server, the server could have hung or fail in some other way. This has been fixed. </p>
<p>				In high availability or read-only scale-out, if the connection to the primary or parent server was dropped just after the mirror or copy node had determined its role, the mirror or copy node could have failed to start with the errors: </p>
<p>				&quot;database is not compatible with primary; files must be replaced&quot; and </p>
<p>				&quot;Database server shutdown due to incompatible files for database mirroring.&quot; </p>
<p>				This has been fixed. Note that attempting to restart the mirror or copy node after receiving this error should succeed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683143">683143</a></td>
<td>The IIS Relay Server is no longer multi-process. Shared memory for IPC and the Relay Server State Manager utility have been removed. The shared_mem property in the Relay Server configuration is now ignored. Users no longer need to setup a RSHost service. The Relay Server will start up on demand when the Web Service is running. Shutting down the web service also shuts down the Relay Server.</p>
<p>				New and simplified configuration and logging conventions:</p>
<p>				- Configuration file: &lt;physical directory of the rs.dll&gt;/rs.config</p>
<p>				- Relay Server log file location: &lt;physical directory of rs.dll&gt;/Log/rs.log</p>
<p>				The removal of the use of shared memory improves security and simplifies flow control signals, as there is one less resource to monitor. The new IIS Relay Server must be set up with a single application pool with web garden size = 1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683159">683159</a></td>
<td>When SQL Remote was running in continuous mode, if the max_retries message system parameter had been set, and a message was generated because the maximum size of the message had been reached before the next send phase, then SQL Remote would have incorrectly believed that an error had occurred when sending the message. SQL Remote would then have paused for the number of seconds specified by the pause_after_failure message system parameter. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683161">683161</a></td>
<td>A multithreaded application using the SQL Anywhere oledb driver could have crashed with an access violation when a rowset was released. This problem was introduced by the changes for Engineering case 662986, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683170">683170</a></td>
<td>When using a CREATE OR REPLACE MIRROR SERVER server_name AS COPY USING AUTO PARENT statement to convert a mirror server from a partner to a copy node, server_name would have been given an invalid parent and the alternate parent would be lost. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683177">683177</a></td>
<td>The Interactive SQL utility would have crashed if the &quot;Show progress messages&quot; option was modified in the &quot;Options&quot; window while not connected to a database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683240">683240</a></td>
<td>A forced termination of the web server worker process, may have caused the Relay Server Outbound Enabler (RSOE)connection to become unrecoverable until the rshost process was restarted. The RSOE will receive authentication error continuously upon every recovery attempt, and the Relay Server log will continuously report RSE3003 accordingly. The forced termination could have been caused by killing the w3wp processes, crashes, worker process recycling or IIS configuration update timeout waiting for outstanding requests to complete. This problem has now been corrected so that the recovery should succeed two minutes after the forced termination, without requiring the rshost process to be restarted.</p>
<p>				The workaround is to restart the rshost process. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683384">683384</a></td>
<td>Additional changes have been made for Engineering case 678817. Outbound HTTP worker threads could have hung indefinitely because the server was not broadcasting a notification.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683385">683385</a></td>
<td>If an application that was connected using Open Client or jConnect executed a Transact SQL batch that contained an undefined host variable, then there was a chance the server would have crashed. This has now been fixed so that batch will fail with a &quot;not enough values for host variables&quot; error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683394">683394</a></td>
<td>When UltraLIteJ was run on Android devices, the method DatabaseInfo.getPageSize() could have returned an incorrect value. This has been fixed.</p>
<p>				Also, the method Connection.getDatabaseProperty() was exposed for UltraLiteJ Android; and the method DatabaseInfo.getRelease() was modified to return the full software release, including the build number.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683410">683410</a></td>
<td>A server in a mirroring system could have crashed when another server with many IP addresses was connected. This has been fixed.</p>
<p>				Note, if a server that does not have this fix, and has many IP addresses, connects to a server with this fix, the fixed server will give a protocol error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683425">683425</a></td>
<td>Additional changes were required for Engineering case 681396, where the server may not start on HP-UX machines if there were many network interfaces. The description for case 681396 mentioned Unix systems, but this problem was actually limited to HP-UX only. A border case, as well as IPv6, were corrected as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683525">683525</a></td>
<td>If a partner in a mirroring environment setup that is mirroring more than one database, it is possible to specify more than one mirror state file. If multiple databases were started and configured on the same server without restarting the server after configuration, this could have resulted in the server not being able to get quorum when its partner shut down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683552">683552</a></td>
<td>If an UltraLite application was suddenly terminated (application crash, device reset, etc.) while a transaction was in progress, and the partial transaction was flushed to the database file by another commit or checkpoint, rows were not properly rolled back on subsequent restart. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683555">683555</a></td>
<td>The UltraLite Database Unload utility (ulunload) would not have preserved the download-only table attribute when unloading a database. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683700">683700</a></td>
<td>With UltraLiteJ, committing a SQL statement that had updated a table containing a large BLOB or CLOB could have caused a StackOverflowError exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683704">683704</a></td>
<td>Whenever the Server Licensing utility (dblic) was used with the -k option (to specify a new registration key), the registration key was being written to the license file. This should not have been done for add-on keys such as the High Availability option, and has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683707">683707</a></td>
<td>When a copy node was promoted to replace its parent via &quot;ALTER MIRROR SERVER ... ALTER PARENT FROM ...&quot;, or internally because a copy node was not responding, siblings of the promoted node did not notice that their parent had changed and would continue trying to reach their original parent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683717">683717</a></td>
<td>When performing a database upgrade (either via the Upgrade utility (dbupgrad) or via the ALTER DATABASE UPGRADE statement) on a database containing spatial data, the server would have terminated with a the following error:</p>
<p>				SQL error (-1474) -- SRID 0 is referenced by column ... of table ...</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683720">683720</a></td>
<td>If a schema change was done using the START/STOP SYNCHRONIZATION SCHEMA CHANGE functionality, and authentication parameters were passed during synchronization, it was possible that the authentication parameters would not have been sent for the first synchronization after the schema change commands had been processed. This would likely have resulted in a failed synchronization. The next synchronization though would have been successful, and no data loss would have occurred. This problem has now been fixed, and authentication parameters are no longer missed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683721">683721</a></td>
<td>When the password provided by the identity_password option for an encrypted private key for a client side certificate was incorrect, the error STREAM_ERROR_INTERNAL was reported. Now the correct error STREAM_ERROR_BAD_PRIVATE_KEY_PASSWORD is reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683728">683728</a></td>
<td>In some situations, the server may have crashed while executing an ALTER SYNCHRONIZATION PROFILE statement with the MERGE clause. The maximum size of the new profile string was being calculated incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683774">683774</a></td>
<td>With UltraLiteJ, an UPDATE statement for table T with a subquery in the WHERE clause that referenced T, could have failed with a -144 error (&quot;Column ... found in more than one table or it is used more than once in the SELECT list -- it needs a correlation name&quot;) at statement preparation time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683813">683813</a></td>
<td>The methods Connection.getNewUUID() and ULPodUUID.toString() were removed in version 12.0 as a result of the introduction of equivalent SQL functions. These methods have been reintroduced. As a workaround the system functions newid() and uuidtostr() can be used.</p>
<p>				Documentation:</p>
<p>				Connection::getNewUUID method </p>
<p>				Returns a new UUID value.</p>
<p>				Syntax </p>
<p>				UUID getNewUUID()</p>
<p>				example:</p>
<p>				uuid = conn.getNewUUID();</p>
<p>				SQLType.toString method </p>
<p>				Returns the string name of the specified SQL column type constant or BAD_SQL_TYPE if not a recognized type.</p>
<p>				Syntax </p>
<p>				String toString(UInt16 code)</p>
<p>				Parameters </p>
<p>				code The SQL column type constant. </p>
<p>				example:</p>
<p>				uuid_str = conn.getNewUUID().toString();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683830">683830</a></td>
<td>There were two problems in the MobiLink server remote ID locking logic that have now been corrected:</p>
<p>				1) When the consolidated database was running on a MySQL server, the MobiLink server could have immediately failed a status-check request when the server was not able to lock the remote ID;</p>
<p>				2) When the consolidated database was running on a SQL Anywhere server, if the remote ID could not be locked in the upload transaction, the server would have shown the following warning message:</p>
<p>				&quot;Retrying the upload after deadlock in the consolidated database&quot;</p>
<p>				and then retried the upload transaction one more time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683947">683947</a></td>
<td>In very rare cases, when a server shutdown was requested via the server console, the server would have shutdown successfully, but the server console would have stayed up. This would only have occurred on Windows machines with multiple processors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR683999">683999</a></td>
<td>When calling the method SADataReader.GetSchemaTable, the SQL Anywhere provider creates two prepared statements which were not dropped immediately in some situations. Actually, the statements are dropped either when the SACommand objects (created in SADataReader.GetSchema Method as local variables) are garbage collected, or when creating a new command and the number of prepared statements has exceeded the &#39;max_statement_count&#39; option. Still, the SADataReader.GetSchema method has now been modified to dispose of the commands within the SADataReader.GetSchema method. This will drop the prepared statements immediately.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684000">684000</a></td>
<td>The usage message for the UltraLiteJ Database Load utility (uljload -?) would have output a &quot;null&quot; for the new -z parameter (specify the page size in bytes). An untranslated usage message for -z has been added for all languages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684096">684096</a></td>
<td>In timing dependent cases, a read-only scale-out copy node could have crashed or hung. This was more likely if the server was loaded and requests needed to be queued because there were no idle workers (more concurrent tasks than the current multiprogramming level). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684166">684166</a></td>
<td>Do we support load a table using USING CLIENT FILE, in the Perl driver?</p>
<p>				If so, please document the prototype for Perl for db_register_a_callback function.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684277">684277</a></td>
<td>Accessing result set or table columns, via streaming methods like ULResultSet::GetStringChunk in C++, could have returned unexpected values when the actual value was null, so checking explicitly to see if the value is null (ULResultSet::IsNull) was essential. This issue has been addressed by ensuring empty strings are now returned in this case. Proper handling of null values still requires an explicit check to differentiate between null and empty strings though.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684335">684335</a></td>
<td>An explicit or implicit cursor describe that should have failed could have caused the server to crash. An example of a describe cursor that is expected to fail is if the describe is cancelled. This has been fixed so that server no longer crashes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684340">684340</a></td>
<td>When certain fatal errors occurred (particularly &quot;dynamic memory exhausted&quot;), the version 11.0 server attempts to create a cache.dmp file to describe the contents of cache at the time of the failure. When using an AWE cache, the server could have crashed while generating this dump file. The server had already encountered a fatal error and would need to be restarted anyway, but the crash prevented generating the dump file that would have allowed analysis of the allocation problem. This has been fixed so that the server no longer crashes when creating the cache.dmp file.</p>
<p>				Note, SQL Anywhere version 12.0 does not attempt to generate a cache.dmp file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684361">684361</a></td>
<td>The MobiLink Replay utility (mlreplay) could have read and sent row data in the wrong order. This could have caused a crash in mlreplay, and caused the MobiLink server to read incorrect/invalid row data resulting in a -10308 error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684479">684479</a></td>
<td>If a partner in a mirroring system was shutdown while it was the primary, its partner took over as primary, and then the partner that was shutdown was restarted, it could have failed to start with the errors: </p>
<p>				&quot;database is not compatible with primary; files must be replaced&quot; and </p>
<p>				&quot;Database server shutdown due to incompatible files for database mirroring.&quot; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684569">684569</a></td>
<td>If an error occurred in the second or subsequent result set of a stored procedure that produces multiple result sets, the error was not reported correctly by the Perl More_Results function. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684575">684575</a></td>
<td>Unlike other &#39;set&#39; methods on Configuration objects, ConfigPersistent.setEncryption() would not have thrown an exception when the configuration object was in use by an open connection. The use of setEncryption() while in use could have potentially corrupted a database. This has been fixed by throwing an exception when attempting to change encryption.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684608">684608</a></td>
<td>ODBC/JDBC escape syntax incorrectly required uppercase keywords like IN or FROM in scalar functions like POSITION and EXTRACT. </p>
<p>				For example:</p>
<p>				select {fn extract(month from &#39;2011-05-07&#39;)}, {fn position(&#39;b&#39; in &#39;abc&#39;)}</p>
<p>				would have failed with syntax errors. If an uppercase keyword was used, the query would have succeeded:</p>
<p>				select {fn extract(month FROM &#39;2011-05-07&#39;)}, {fn position(&#39;b&#39; IN &#39;abc&#39;)}</p>
<p>				This problem has been fixed.</p>
<p>				Note: In Interactive SQL, the braces { and } must be doubled-up (i.e. {{ and }} ).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684721">684721</a></td>
<td>The rs_client.dll may have crashed when parsing a malformed response header. This has been fixed so that the Relay Server will response with an http 400 instead of crashing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684769">684769</a></td>
<td>In very rare cases the server may have crashed when upgrading a pre-version 12 database to version 12, if the database did not use a transaction log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684808">684808</a></td>
<td>When a back-end server aborted reading a request, for example due to some early detectable protocol error, the Outbound Enabler may have caused further protocol errors later on for other requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684881">684881</a></td>
<td>When using &quot;Alter Mirror Server ...&quot; to convert a copy node to a partner, a state file may have been neglected. This prevented the converted partner from knowing the current mirror state of the database, which could have caused both servers to start up as a primary server. This has been fixed. Now, only one server will be able to start as primary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR684891">684891</a></td>
<td>If a query plan used multiple nested-loops outer joins then a cursor positioning using FETCH RELATIVE 0 may have returned the next row in the forward direction, instead of refetching the current row. This has been fixed.</p>
<p>				A possible work-around for the problem is to use an insensitive or keyset-driven cursor type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685083">685083</a></td>
<td>If a partner in a mirroring environment was started with an invalid state file provided, it may have started the database in a bad state. This has been fixed. The partner will now give an error saying &quot;unable to start database&quot;, and shut down.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685149">685149</a></td>
<td>When execution of a stored procedure or user defined function was cancelled by the user</p>
<p>				and an error handler within the stored procedure was invoked, an incorrect SQLCODE (0 or</p>
<p>				the error code of a different error that occurred prior to the cancel) could have been reported. An incorrect error message could also have been reported by the ERRORMSG() function. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685156">685156</a></td>
<td>The server may have crashed if a procedure debugger connection disconnected before a debuggee connection was able to get attached to the debugger. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685163">685163</a></td>
<td>For version 12.0, the methods ResultSet.getString() and ULTable.getString() would have returned an empty string for columns that were null. Earlier versions would have correctly returned a &#39;null&#39;. These methods have been corrected so that they now return results consistent with the prior versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685205">685205</a></td>
<td>When unloading a database, comments for unique constraints were not included in the reload.sql file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685284">685284</a></td>
<td>If a synchronization failed during the upload, subsequent changes to the database would not have been uploaded in the next synchronization, but in the synchronization after that. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685289">685289</a></td>
<td>When performing an archive backup via an external backup provider, the database server provided incorrect min_iosize &amp; max_iosize parameters to the provider when calling the syb_defineapi() function. Generally, the min_iosize was set to what is actually the server&#39;s maximum IO size and max_iosize was set to 512K. Usually, the min_iosize was larger than the max_iosize. This problem has been fixed by setting the min_iosize to 2K and the max_iosize to the server&#39;s actual max buffer size.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685299">685299</a></td>
<td>The &quot;Overview&quot; panel for a database shows the HTTP and HTTPS ports which its server is using. If both HTTP and HTTPS were used, and the server&#39;s -xs command line option was sufficiently complex, the reported port numbers would have been incorrect. Typically, they were more than 6 digits long. Now, the correct port numbers are displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685318">685318</a></td>
<td>The values returned in the table_page_cached and ext_page_cached columns of the result set returned by the system procedure sa_table_stats() could have been smaller than the number of pages that were actually cached by the server. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685323">685323</a></td>
<td>If the server&#39;s ports (-x) or web protocols command line option (-xs) contained certain multibyte characters, the server could have failed to start up and would have displayed the server&#39;s usage message or window. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685559">685559</a></td>
<td>If a non-recurring event was run on a read-only database, or had the &quot;FOR ALL&quot; clause, indicating it could run on a mirror or copy node, the server could have hung with 1 CPU at 100% after the event ran. Non-recurring events are events with a SCHEDULE clause that does not specify EVERY or ON. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685566">685566</a></td>
<td>When a mirror or diagnostics connection to another server was attempted the &quot;Using broadcast address of: ...&quot; message was logged to the console when it should not have been. This has been fixed so that this message is only logged if the -z server option is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685574">685574</a></td>
<td>When unloading a database, ALTER INDEX ... RENAME statements were not being added to the reload.sql file when an index or unique constraint had been renamed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685733">685733</a></td>
<td>The server could have unnecessarily consumed 100% of one CPU in certain circumstances as described below. These problems have been fixed. </p>
<p>				- In certain cases when a copy node lost its connection to its parent and then encountered a log mismatch with the parent after it reconnected, a single CPU would remain at 100% utilization indefinitely.</p>
<p>				- When cancelling a CREATE EVENT statement while processing a procedure profile (sa_procedure_profile, sa_procedure_profile_summary), a single CPU would have remained at 100% utilization until no connections were processing profile information</p>
<p>				- While waiting for connections to drop when yielding to a mirroring partner, a CPU would have remained at 100% utilization until all connections were dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685746">685746</a></td>
<td>With UltraLiteJ for Android, the method DatabaseInfo.getNumberRowsToUpload() always returned 0. This has been fixed so that it now works as documented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685857">685857</a></td>
<td>When inserting a value into a FLOAT column, an error would have been given if the absolute value of the number was too big, or too close to zero. This has been fixed. Now, an error will only be given if the absolute value of the number is too big. If the number is too close to zero, it will be set to zero and inserted without an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685873">685873</a></td>
<td>When using the Service utility (dbsvc) for Windows to delete a service that was currently running, the following messages were displayed:</p>
<p>				The specified service is running. The service will be deleted when it is stopped.</p>
<p>				Service &quot;&lt;svc name&gt;&quot; was deleted successfully.</p>
<p>				This has been fixed. If the service is running, only the first message is displayed, otherwise only the second is displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685894">685894</a></td>
<td>When running at a verbosity higher than 0, the Relay Server Outbound Enabler was not obscuring the security token and passwords in the log file. This has been fixed so that their values are now hidden by ******, regardless of verbosity level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685973">685973</a></td>
<td>If a user&#39;s path contained a large number of directories and/or contained directories located on mapped network drives, the first connection attempt made by an application could have been slow. This has been fixed. A workaround is to create an empty file called saldap.ini (assuming the LDAP feature is not being used) in the installation bin32/bin64 directory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR685982">685982</a></td>
<td>Updating the remote schema in a synchronization model from an UltraLite database may have subsequently caused errors, including NullPointerException, if a user was not specified when connecting to the UltraLite database. This would have changed the remote tables to have no owner, but the table mappings may still have referred to remote tables using owners. Such invalid mappings were not detected by the program when opening a synchronization model. This has been fixed. Owner mismatches for table mappings are now detected when the remote table in either the remote schema or the table mapping has no owner</p>
<p>				.A workaround is to specify a user when connecting to the UltraLite database to update the remote schema.</p>
<p>				The error message displayed when a table in a table mapping can&#39;t be found in the corresponding schema has also been fixed. The message now correctly includes the table name that could not be found, instead of displaying &#39;{0}&#39; for the table name.</p>
<p>				Another problem is also addressed with this change. Previously if you changed the remote table for a table mapping, some options could change to their defaults, such as the direction changing to bidirectional. Now the synchronization direction and other synchronization options are maintained.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_93.htm#CR686009">686009</a></td>
<td>Under some circumstances SQL Anywhere HTTP logs would have contained an empty URI for the @U log-format place holder. This may have occurred for the following reasons: </p>
<p>				- HTTP METHOD was not supported, </p>
<p>				- request URL was malformed, </p>
<p>				- the HTTP listener specifies that the DBN was required but the database name was not within the URL path. </p>
<p>				This has been corrected. Now if a request has faulted due to any of the above reasons, the HTTP method (@M) and version (@V) will emit the string &quot;???&quot;. The given request line is pre-pended with a &quot;&gt;&gt;&gt;&quot; and emitted for the (@U) format place holder. </p>
<p>				For example: </p>
<p>				A request of the form: </p>
<p>				BLAH /sample/test HTTP/1.0 </p>
<p>				will emit the following for LogFormat=&quot;@M @U @V&quot; </p>
<p>				&quot;??? &gt;&gt;&gt; BLAH /sample/test HTTP/1.0 ???&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686036">686036</a></td>
<td>Attempting to make a Remote Data Access connection to an Oracle database, using an ODBC driver other than the iAnywhere Oracle ODBC driver, could have caused the server to crash when running on a Unix system. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686039">686039</a></td>
<td>After sending the upload and applying the download, UltraLiteJ sends a message to the server telling it the synch is complete. If there was a network error while sending this message, it would have been reported to the application, implying the sync had failed even though the download was applied correctly. This has been fixed and now the application no longer gets an error if the sync otherwise succeeded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686040">686040</a></td>
<td>UltraLiteJ could have caused the MobiLink server to report spurious protocol errors in the MobiLink server log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686041">686041</a></td>
<td>The MobiLink server would have reported an unnecessary protocol error when the first command of a request was a NOOP. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686057">686057</a></td>
<td>An optional ias-rs-status-refresh-sec query parameter has been added to the status url for controlling the auto refresh rate of the status page. A refresh interval of 0 means auto refresh is not wanted and users are expected to use the refresh button on the browser to refresh the status. The following information was also added to the status page:</p>
<p>				- Service start time in UTC.</p>
<p>				- Status capture time in UTC.</p>
<p>				- Status refresh interval, or indication that manual refresh is expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686183">686183</a></td>
<td>If an application using the UTF8 character set connected via jConnect or Open Client to a blank padded non-UTF8 database and fetched a non-nullable char(n) value, then the returned value would have been blank padded to n*3 bytes. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686202">686202</a></td>
<td>For recurring scheduled events, there were several errors in how end times were computed:</p>
<p>				1. If an end-time was specified (i.e., &quot;BETWEEN start-time AND end-time&quot;), then:</p>
<p>				a. Seconds were being ignored. For example, an end-time of &#39;23:59:59&#39; was being interpreted as &#39;23:59:00&#39;.</p>
<p>				b. The end-time was tested as an exclusive endpoint rather than an inclusive endpoint, contrary to the documentation of the BETWEEN ... AND clause. For example, the schedule &quot;BETWEEN &#39;9:00&#39; AND &#39;17:00&#39; EVERY 60 MINUTES&quot; would cause the event to fire last at 16:00, rather than 17:00.</p>
<p>				2. If an end-time was not specified (i.e., &quot;START TIME start-time&quot;), the end-time for each day was implicitly being treated as &#39;23:59:00&#39; exclusive, instead of &#39;23:59:59&#39; inclusive.</p>
<p>				The combined effect of these error were that no scheduled events would fire in the minute from 23:59:00 until midnight. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686203">686203</a></td>
<td>Cancelling an external environment call call immediately after making the external call, could in very rare cases have caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686204">686204</a></td>
<td>Cancelling an external environment call that was in the process of returning a large result set, could in very rare cases have caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686237">686237</a></td>
<td>Relay Server web server extensions may have crashed if the URL contained redundant leading forward slashes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686304">686304</a></td>
<td>When SQL Anywhere components were running in the isolated session 0 (ie, the services session) of Vista and later Windows operating systems, but were not actually running as services, the components could have attempted to display GUI elements. Due to session 0 isolation, these GUI elements were not accessible to users. To execute as a non-service within session 0, the program was likely to have been launched as a child of a service. On Vista and later versions of Windows, SQL Anywhere components now suppress GUI components when running in session 0 rather than just when running as a service.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686407">686407</a></td>
<td>In rare cases where a primary server lost its connections to both the mirror and the arbiter servers as a checkpoint was performed, the next time the primary and mirror servers were connected and attempted to synchronize, the mirror server may have reported the error: &#39;Database &quot;&lt;name&gt;&quot; mirroring: database is not compatible with primary; files must be replaced&#39; and then stop with the message: &#39;Database server shutdown due to incompatible files for database mirroring&#39;. This has been fixed so as to reduce the possibility of this occurring. In rare cases this could still occur and the database running on the current primary must be manually copied or backed up to the mirror server so that the server can successfully synchronize again. </p>
<p>				Note, this extends the changes made by Engineering case 660851.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686409">686409</a></td>
<td>If an IPv6 address that included a port number was specified in square brackets, rather than parenthesis, the server or client libraries would not have parsed it correctly. For example, if a connection string included &quot;;HOST=[&lt;ipv6_addr&gt;]:&lt;port&gt;&quot;, the error &quot;No IP address found for [&lt;ipv6_addr&gt;]:port.&quot; This has been fixed.</p>
<p>				Note, this applies to addresses in connection strings (using the LINKS or HOST parameters), the -x and -xs switches on the server, and URLs in web service procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686415">686415</a></td>
<td>Relay Server shutdown may have taken unnecessarily long, or even crashed. This would have occurred if the shutdown was requested when a new client session was waiting for backend server assignment while all Outbound Enablers of the backend farm had been disconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686428">686428</a></td>
<td>In a mirroring system, it was possible for multiple servers to deadlock, waiting for responses from each other. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686501">686501</a></td>
<td>Debug logging level 3 or higher would have produced logging of OE_UPCHANNEL_CONNECT packets with the oei field equal to &quot;older than 12.0&quot;. This is misleading and the packet doesn&#39;t contain such a field. The misleading information has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686519">686519</a></td>
<td>Calling PreparedStatement.setBytesParameter would have truncated a byte array with more than 32k elements. This has been fixed.</p>
<p>				Note, it is recommended that large binary parameters be set using PreparedStatement.appendBytesParameter().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686524">686524</a></td>
<td>The SQL Anywhere Monitor was incorrectly reporting the total disk space as the current Relay Server log&#39;s file size. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686561">686561</a></td>
<td>If any of the following occurred while starting a database, the server could have crashed, although it would only occur in very rare situations:</p>
<p>				1. An error was encountered while starting the database</p>
<p>				2. Logs were being applied to a database at startup with -a, -ad or -ar but the -as switch was not used</p>
<p>				3. The engine was requested to stop while the database was starting.</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686575">686575</a></td>
<td>Very complex disjuncts in the WHERE clause were not able to be used for index scans. Now, IN predicates are generated if at all possible. These new IN predicates can then be used to drive an index scan improving the execution times for this type of query.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686586">686586</a></td>
<td>A lengthy Relay Server alert may have been corrupted by having extra non-break space tokens (&nbsp;) broken up by exclamation marks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686790">686790</a></td>
<td>When the server was starting a database, statistics collection may be performed on the database tables even though the statistics are not updated. This has been corrected so that statistics collection is now disabled on a database that is being started.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686791">686791</a></td>
<td>In a mirroring system, if the primary server made changes faster than the mirror server could apply them, and if the connection between the two servers was dropped, in rare timing dependent cases, the mirror server could have hung with 1 CPU at 100%. Stopping the server or the database during the 100% CPU hang would have succeeded. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686822">686822</a></td>
<td>If an ALTER PUBLICATION or a DROP PUBLICATION command was executed by the MobiLink client inside the sp_hook_dbmlsync_schema_upgrade hook, it was possible for the command to have thrown an 100904 assertion (&quot;Failed to redo a database operation ...&quot;) if the database server had to replay the operation during recovery. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR686869">686869</a></td>
<td>When a database page was reused, the unused portion of the page was not always set to zeros, possibly resulting in exposure of decrypted data when that page was written out. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687157">687157</a></td>
<td>Upload rows sent by clients might not have been applied to the consolidated database on a SQL Anywhere or Sybase IQ database server if a redundant synchronization request was received by the MobiLink server, and the MobiLink server aborted the request with the following error:</p>
<p>				User &#39;a_ml_user_name&#39; has the row in &#39;ml_database&#39; locked (ODBC State = 40001, Native error code = -210)</p>
<p>				The new synchronization must also have contained an upload that included upload rows for multiple synchronization tables, and reused the database connection that was used for processing the redundant synchronization. This problem is fixed now.</p>
<p>				Note, all connections used by a MobiLink server are shown in the MobiLink server logging file with a prefix SPID when a minimal verbosity is specified in the MobiLink command line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687162">687162</a></td>
<td>When using a trigger to maintain a timestamp column in a synchronized table in a synchronization model, the generated update trigger would have fired when any column except the timestamp column was updated. If the table included a computed column, this would have caused an error when creating the trigger, even if one disabled synchronization for the computed column (as suggested in the &quot;Limitations of synchronization models&quot; documentation). This has been fixed. Now the generated update trigger only fires if a synchronized column or delete tracking column (if using logical deletes) is modified. A workaround is to deploy to a SQL file and edit the trigger definition.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687264">687264</a></td>
<td>The server&#39;s http log did not display the query component of the request URI. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687273">687273</a></td>
<td>The HTTPS parameter was not mentioned in the usage text description of the Relay Server Outbound Enabler&#39;s -cs option, nor do any cert parameters mention that it is required. This is also the case for the usage for the -cr option, where HTTPS was not mentioned anywhere. Descriptions have now been added to the usage text for these options, as well as a mention that HTTPS=1 is required for any of the cert parameters. Also the -cs https=1 default port was set to 80, this has now been changed to 443 instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687277">687277</a></td>
<td>The Relay Server Outbound Enabler (RSOE) didn&#39;t complain about typos in the -cs and -cr command line options. For example, if trusted_certificates was entered as trusted_certificate, RSOE would not stopped with an error right at start-up. Also, when HTTPS related parameters were specified and HTTPS=1 was not set, RSOE would also silently attempt to make an HTTP connection. These problem have been fixed so that RSOE will detect these problem, report an error, and abort.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687393">687393</a></td>
<td>Under very rare circumstances, a server could have crashed during backup if many connections are committing transactions at the same time. Live backups were the most likely to suffer from this problem. This has been fixed. No workaround is known.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687411">687411</a></td>
<td>When an ALTER DATABASE UPGRADE statement is executed, events are suspended in order to avoid having active connections while upgrading. Once upgrading is done, events are re-enabled. Running simultaneous ALTER DATABASE UPGRADE statements could have left events permanently suspended on the server. No events on any database would have been executed. This problem has been fixed. Also, when upgrading a single database, the server suspended events for all databases that爓ere running. This was unnecessary and the server now only suspend events in the database that is being upgraded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687447">687447</a></td>
<td>In rare, timing dependent cases the server could have had incorrect behaviour when a connection had at least 20 prepared statements with cached prepared statements, or at least 20 cursors open. The incorrect behaviour could have varied, and the only known symptom was incorrectly returning the error &quot;Resource governor for &#39;prepared statements&#39; exceeded&quot;, but it may also have been possible for server crashes or assertions to have occurred. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687567">687567</a></td>
<td>The SQL Anywhere Monitor may have missed counting some uncommon Relay Server errors. These errors were:</p>
<p>				FARM_CHANNEL_CONNECT_WITH_INVALID_SERVER_IDX 2006</p>
<p>				SERVER_DISCONNECT_EARLY 3014</p>
<p>				FARM_FAIL_ACCESS 12000</p>
<p>				SERVER_FAIL_NEWING_CLIENT_STATISTIC 13011</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687570">687570</a></td>
<td>A .NET Policy DLL and the associated iAnywhere.MobiLink.Client.config file are now installed and configured. The .NET Policy DLL will allow .NET applications compiled against any build of v12.x of the iAnywhere.MobiLink.Client assembly to automatically re-direct to the most recent build of the assembly installed on the machine, if the desired build of the assembly could not be located on the machine. Before these files were installed and configured, an application.config file or machine.config file could have been used to get the same functionality.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687571">687571</a></td>
<td>If Relay Server State Manager failed to initialize on startup during creating the shared memory step, it did not output a detailed message with the system error code and message. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687578">687578</a></td>
<td>Applications using the .Net provider could have crashed after running for some time. In rare occasions, the provider could have attempted to drop a prepared statement twice. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687596">687596</a></td>
<td>When shutting down a server that was running as a Windows service, the server could have crashed. Although the problem was only seen when shutting down an interactive service on Windows XP by using the &#39;Shutdown&#39; button on the server window, the problem was a timing issue and could have occurred when the server was shut down in other ways. The problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687604">687604</a></td>
<td>INSERT performance was 25-35% slower than version 11.0. The problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687747">687747</a></td>
<td>If the server was shutdown while a mirrored database was in the process of starting on the server, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687749">687749</a></td>
<td>A query using aggregate functions may have caused a server crash if its select list contained a derived table with an outer reference to the query, and the outer reference did not appear in the queries group by list. At least one of the following conditions must also have been trun:</p>
<p>				1) The derived table contained a procedure call in its FROM clause and the procedure argument expression contained the outer reference.</p>
<p>				2) The derived table contained a OPENSTRING clause in its FROM clause and its value expression contained the outer reference.</p>
<p>				3) The derived table contained another derived table and the outer reference was inside this other derived table.</p>
<p>				The below query shows an example of condition 3). </p>
<p>				select ( select V0.e from ( </p>
<p>				select T3.e from T3 where T3.e = T2.c ) V0</p>
<p>				) c1,</p>
<p>				max(T1.b) as c2</p>
<p>				from T1 join T2 on T1.a = T2.c</p>
<p>				This problem has been fixed. The engine will now correctly return the error SQLE_INVALID_GROUP_SELECT, since the outer reference column has to be specified in the GROUP BY clause. Specifying the outer reference column in the GROUP BY clause (in the above example: group by T2.c) is also the work around to this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687761">687761</a></td>
<td>The dbisqlc utility would have reported a syntax error whenever it tried to execute a &#39;STOP SERVER&#39; statement. This problem has been fixed. The statement used to be &#39;STOP ENGINE ...&#39; and dbisqlc did support (and continues to support) that variant; however, it was never updated when the statement was changed to &#39;STOP SERVER&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687769">687769</a></td>
<td>In some circumstances, the Long.MIN_VALUE (-2^63) was incorrectly stored internally as a NUMERIC value. This resulted in incorrect values during expession evaluation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687773">687773</a></td>
<td>In extremely rare cases, the server could have crashed when request level logging was enabled. The problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687776">687776</a></td>
<td>The changes for Engineering case 686057 made have caused the server to crash when using URL query parameters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687786">687786</a></td>
<td>An interactive quick setup feature has been added to help users with deploying Relay Server components to Microsoft IIS 6.0 on Windows Server 2003. This is being provided as an alternative to the manual procedure documented in the Relay Server Guide. </p>
<p>				Setup is automated but also interactive. It creates a demo application and a Quick Reference Guide to assist in subsequent Relay Server server maintenance. The Quick Reference is launched automatically as part of the setup.</p>
<p>				Setup is comprised of the following major steps:</p>
<p>				1. Introduction</p>
<p>				2. Customization</p>
<p>				3. Create a Backup</p>
<p>				4. Deploy and Start the Relay Service</p>
<p>				5. Generate and Launch the Quick Reference</p>
<p>				6. Launch the Relay Server Status Page</p>
<p>				7. Launch the SimpleTestApp Client</p>
<p>				8. Shut down</p>
<p>				To deploy the Relay Server components to Microsoft IIS 6.0 on Windows Server 2003, run rs-setup.bat from the SQLANY12%/RelayServer/IIS/quicksetup_iis6 directory</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687796">687796</a></td>
<td>If an application using the SQL Anywhere JDBC driver attempted to exit, then there was a very small chance the client would crash on non-MacOS systems; however, on MacOS systems, the crash would have occurred every time. This problem has now been fixed. Note that the original problem was introduced with the fix for Engineering case 680183.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687835">687835</a></td>
<td>If an MSI install was built using the Deployment wizard, and Sybase Central was selected but Interactive SQL was deselected, the subsequent install of Sybase Central would have failed on exit. The error:</p>
<p>				Interactive SQL could not be launched.</p>
<p>				Please change the plug-in properties and</p>
<p>				add the isql.jar file to its path.</p>
<p>				was due to Sybase Central expecting ISQL.jar to be installed. This has been corrected by adding a dependency on ISQL.jar when an install of Sybace Central is created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687837">687837</a></td>
<td>If an Overview color in the Options dialog was changed, the Overview display would have been erased. This has been corrected. A workaround is to disable, then re-enable, the Overview or change, then change back, the option to keep the Overview window attached to the main window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687840">687840</a></td>
<td>The initial primary mirror server could have crashed or not correctly processed requests in rare timing dependent cases after executing the &quot;ALTER DATABASE SET PARTNER FAILOVER&quot; statement. This problem could have also occurred when a preferred partner server became available after being disconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687973">687973</a></td>
<td>Calling the system procedures sp_remote_tables or sp_remote_columns for an ASE or MS SQL Server remote server would have failed if the catalog argument was specified as NULL. This problem was introduced in 12.0.1 GA and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687980">687980</a></td>
<td>UltraLite is now supported on the Pocket PC 2003 platform. Support for TLS and HTTPS sync encryption, however, is not available for this platform.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687998">687998</a></td>
<td>While extremely rare, the server may have crashed while executing a query that referenced proxy tables. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR687999">687999</a></td>
<td>In rare timing dependent cases, a transaction which was successfully committed on a primary server could have been lost. In order for there to have been a chance of this occurring, all of the following needed to be true: </p>
<p>				- the application was connected to a primary server that lost quorum (the server lost the connection to both the mirror and arbiter servers) </p>
<p>				- the application stayed connected to this server (the old primary server) even though the network connection to other servers dropped </p>
<p>				- the application was in the middle of committing a transaction between the time that the old primary server lost its connection to the mirror and arbiter server, and when the old primary server restarted as the new mirror server because it lost quorum </p>
<p>				- the old mirror server took over as the new primary (the mirror server must have been able to connect to the arbiter server for this to occur) </p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688019">688019</a></td>
<td>When connected to the utility database (utility_db), if a statement that was not supported was prepared, the PREPARE may not have generated an error when it should have. This has been fixed so that the unsupported prepare now returns the error &quot;Permission denied: you do not have permission to execute a statement of this type.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688116">688116</a></td>
<td>Support has now been added to the Relay Server to allow it to extract identity information from client certificate and then forward them in HTTP headers that SAP Gateway or Web Dispatcher understands. To turn on the feature for a backend farm, set the following new backend farm property in the Relay Server configuration file:</p>
<p>				forward_x509_identity = yes</p>
<p>				In the case were there is a chain of SAP intermediaries, the client identity headers may already present in the request. However not all clients may be granted a permission to act as such forwarder. So the default behavior is to replace the existing headers with the identity of the forwarder. To grant permission for a forwarder to forward its client identity without being overwritten by its identity, the following new pair of backend farm properties may be in the Relay Server configuration file:</p>
<p>				forwarder_certificate_subject = &lt;match-string&gt;</p>
<p>				forwarder_certificate_issuer = &lt;match-string&gt;</p>
<p>				The &lt;match-string&gt; is used to check against a serialized form of the corresponding compound name field in the certificate. A &#39;?&#39; can be used to match any character and a &#39;*&#39; can be used to match any string. A &#39;\&#39; can be used as the leading escape character for &#39;?&#39;, &#39;*&#39; or &#39;\&#39; of they need to be matched literally.</p>
<p>				For example:</p>
<p>				forwarder_certificate_subject = &#39;CN = mySapWD??.my.com, OU = Sybase, O = SAP, *&#39;</p>
<p>				forwarder_certificate_issuer = &#39;CN = quicksigner, OU = security department, O = my coop, L = my city, S = my state, C = my country&#39;</p>
<p>				To obtain the subject or issuer string of a forwarder, simply perform a forwarding without setting up the match requirement. The following error messages in the Relay Server log will reveal the full subject or issuer which fails the default empty match-string:</p>
<p>				Forwarder certificate subject &#39;&lt;full-subject-string&gt;&#39; does not match pattern &#39;&#39; required in farm &#39;&lt;farm&gt;&#39;</p>
<p>				Forwarder certificate issuer &#39;&lt;full-issuer-string&gt;&#39; does not match pattern &#39;&#39; required in farm &#39;&lt;farm&gt;&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688149">688149</a></td>
<td>New OUTPUT command options to control column names.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688272">688272</a></td>
<td>If an INSERT or an UPDATE failed, due to a unique constraint violation for example, a row may have been left behind in the store. This would have resulted it unrecoverable database growth. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688435">688435</a></td>
<td>An IS [NOT] DISTINCT FROM predicate may have been incorrectly evaluated for some data types, such as string datatypes. The incorrect evaluation would have been observed if the predicate was not used in a Hash Join, Merge Join, or as a sargable predicate for a partial index scan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688459">688459</a></td>
<td>Queries that use temporary tables could have produced incorrect results when UltraLiteJ was configured with row limitations (i.e. using ConfigPersistent.setRowScoreMaximum or ConfigPersistent.setRowScoreFlushSize). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688468">688468</a></td>
<td>The UltraLite runtime library for iPhone would have failed to build with recent Xcode/SDKs (Xcode 4.2 with iOS 5.0 SDK, for example), as gcc-4.2 was no longer being shipped (the command wais not found while trying to run build.sh). This has been fixed by having the UltraLite runtime makefile now simply use &#39;gcc&#39;.</p>
<p>				This problem can be worked-around by creating a symlink for gcc-4.2 -&gt; gcc in the /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin and similar Simulator directories, or by modifying the makefile or build.sh used by UltraLite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688573">688573</a></td>
<td>An interactive quick setup feature has been added to help users with deploying Relay Server components to Microsoft IIS 7.0 or 7.5 on Windows Server 2008/Windows Server 2008 R2. This is being provided as an alternative to the manual procedure documented in the Relay Server Guide. </p>
<p>				Setup is automated but also interactive. It installs IIS7, turns on required IIS7 features, configures IIS7 for Relay Server, creates a demo application and a Quick Reference Guide to assist in subsequent Relay Server server maintenance. The Quick Reference is launched automatically as part of the setup.</p>
<p>				Setup is comprised of the following major steps:</p>
<p>				1. Introduction</p>
<p>				2. Customization</p>
<p>				3. Install IIS7 and Required Features</p>
<p>				4. Create a Backup</p>
<p>				5. Deploy and Start the Relay Service</p>
<p>				6. Generate and Launch the Quick Reference</p>
<p>				7. Launch the Relay Server Status Page</p>
<p>				8. Launch the SimpleTestApp Client</p>
<p>				9. Shut down</p>
<p>				To deploy the Relay Server components to Microsoft IIS 7.0 or 7.5 on Windows Server 2008/Windows Server 2008 R2, run rs-setup.bat from the SQLANY12%/RelayServer/IIS/quicksetup_iis7 directory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688581">688581</a></td>
<td>In a read-only scale-out system, if the non-primary server (say S) in the read-only scale-out tree had more than ten direct or indirect children, then S&#39;s parent could have hung, in rare timing dependent cases. This problem was introduced by changes made for Engineering case 681813, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688720">688720</a></td>
<td>UltraLite could have returned fewer rows than expected for queries utilizing an index scan with conditions on multiple columns in the index. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688788">688788</a></td>
<td>In rare timing dependent cases, if a mirror server was using all available workers, it was possible for the server to hang, or for a mirror database to not restart after loss of quorum. The maximum number of workers is defined by -gnh (in version 12) or by -gn (in version 11). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688888">688888</a></td>
<td>The ENCRYPTED KEY option of the OPENSTRING clause can now specify a variable name rather than a string.</p>
<p>				For example:</p>
<p>				create variable mykey varchar(50);</p>
<p>				set mykey=&#39;TheActualEncryptionKey&#39;;</p>
<p>				select * from openstring(...) with (...) option (encrypted key mykey);</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688891">688891</a></td>
<td>It is now possible to disable the fast launcher feature of the Interactive SQL utility using the oem.ini file. To disable the fast launcher add the line &quot;fastLauncherEnabled=false&quot; to the &quot;dbisql&quot; section of the OEM.INI file. This option disables the fast launcher but does not prevent a user from re-enabling it using the options dialog. To prevent users from re-enabling fast launching add &quot;fastLauncherEnabled&quot; to the value of the &quot;lockedPreferences&quot; option in the OEM.INI file. So, with both options set you OEM.INI would look something like this:</p>
<p>				[dbisql]</p>
<p>				lockedPreferences=fastLauncherEnabled</p>
<p>				fastLauncherEnabled=false</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688892">688892</a></td>
<td>When running mlgenreplayapi with a non-existent recorded protocol file, and/or using the -d switch with a non-existent directory, no error messages was displayed at the console. However, if the -o or -ot switch was used, the errors were logged in the log file. Now, if no -o or -ot options are specified for mlreplay and mlgenreplayapi, all output goes to stdout.</p>
<p>				As well, mlgenreplayapi will now create the directory specified by the -d option (the directory in which to put the generated code) when it does not exist.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR688896">688896</a></td>
<td>If an application crashed during synchronization it was possible that subsequent sync attempts would have failed with server errors. The MobiLink server would have reported a progress mismatch and the log could have shown multiple instances of the same publications. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689047">689047</a></td>
<td>An HTTP or HTTPS synchronization through the Relay Server could have failed with stream error STREAM_ERROR_HTTP_HEADER_PARSE_ERROR. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689167">689167</a></td>
<td>After using the &quot;Find&quot; button to find a network server, the message &quot;You cannot use the Host connection parameter and advanced network parameters at the same time.&quot; could have been returned, even though nothing was specified on the &quot;Network&quot; tab. For this problem to have occurred, the &quot;Action&quot; field had to have been set initially to &quot;Connect to a running database on nother computer&quot;. The problem would not have occurred if the &quot;Action&quot; value had been changed prior to clicking the &quot;Connect&quot; button. This has been fixed. </p>
<p>				In a related issue, the above error message should have been displayed, but was not, in a number of other cases. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689174">689174</a></td>
<td>The Relay Server was sensitive to the networking environment and how quickly the web server detected read errors (RSE3004) caused by network problems on the down channel between the Outbound Enabler and the Relay Server. If there was enough delay so that the Outbound Enabler had already recovered the channels before the detection occur, the Relay Server would have failed subsequent client requests targeting this back-end server and reported the following warning:</p>
<p>				W. 2011-10-28 21:23:36. &lt;5608.2420.F5fcB0S456bR0&gt; Server response NOT completed. Remaining 0 of 0 bytes.</p>
<p>				Restarting the Outbound Enabler would have resolved the issue. This has now been fixed so that client requests will not be affected by the delay and restarting Outbound Enabler is no longer required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689193">689193</a></td>
<td>The changes for Engineering case 682512 introduced a problem where stopping a high availability primary server while it was connected to its partner (mirror) server could have resulted in the database not being able to start. Specifically, in timing dependent cases, attempting to restart the primary mirror server could fail with the &quot;Database cannot be started -- &lt;database name&gt; not expecting any operations in transaction log&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689194">689194</a></td>
<td>When synchronizing with a SQL Anywhere remote using the MobiLink client running on a non-English operating system, it was possible for the following message to be generated by the MobiLink server:</p>
<p>				Gtk-CRITICAL **:gtk_text_buffer_emit_insert:assertion &#39;g_utf8_validate (text, len, NULL)&#39; faild </p>
<p>				This problem has been fixed. As a consequence, the message output in the MobiLink server log when a synchronization request is received from a SA remote will change from:</p>
<p>				Request from &quot;Dbmlsync Version 16.0.0.3940&quot; for: remote ID: ... </p>
<p>				to:</p>
<p>				Request from &quot;Dbmlsync 16.0.0.3940&quot; for: remote ID: ...</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689233">689233</a></td>
<td>Opening a procedure in a new window, deleting the procedure from the main Sybase Central window, and then attempting to save the procedure from the new window, would have caused Sybase Central to crash. The same problem occurred for views, functions, triggers and events. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689315">689315</a></td>
<td>When connected via jConnect or Open Client to a blank padded UTF8 database and a non-nullable char(n) value was fetchesd, the client may have experienced protocol errors if n was less than 3. This problem was introduced by the fix for Engineering case 686183 and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689451">689451</a></td>
<td>If the server was forcibly shut down while an encrypted database was in the process of starting or stopping, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689464">689464</a></td>
<td>The Property() function would have displayed negative values for the server properties &#39;HttpPorts&#39; and &#39;HttpsPorts&#39; when the port numbers were above 32768. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689511">689511</a></td>
<td>In some extremely rare cases, the transaction log may not have been committed to disk when a COMMIT operation was performed.</p>
<p>				Also, if a transaction only modified temporary tables, it was possible that the transaction log would have been committed to disk although it didn&#39;t need to be.</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689614">689614</a></td>
<td>In rare cases in a mirroring system, where a mirror server lagged far behind the primary in applying changes, it was possible for the primary and mirror server to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689657">689657</a></td>
<td>Three new properties have been added:</p>
<p>				LastCommitRedoPos: This property is available at both the connection-level and the database-level. The value returned is the redo log position after the last COMMIT operation was written to the transaction log by the connection or database. </p>
<p>				LastWrittenRedoPos: This is a database-level property only. The value returned is the last redo position for which a write was issued to disk. The write is not necessarily synced to the physical medium as it may still be cached by the OS, disk controller or disk drive.</p>
<p>				LastSyncedRedoPos: This is a database-level property only. The value returned is the last redo position for which a write was issued to disk and the data was synched to the physical medium. Data prior to this position is expected to be present on disk even in the event of a power failure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689696">689696</a></td>
<td>In exceptionally rare circumstances, the server may have failed with assertion errors 200130, 200131, 200106, 108701, or others, on index pages. The problem was seen on multi-core machines under very high index contention, that included index updates and deletes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689764">689764</a></td>
<td>The assembly names of version 3.5 and 4.0 providers in the policy config file were not correct. This meant that version 3.5 and 4.0 policy files did not redirect old versions to a newer version. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689781">689781</a></td>
<td>The ADO .Net provider now supports Microsoft Entity Framework 4.2. To use the new Entity Framework 4.2, it must be added to Visual Studio projects using the Visual Studio tool NuGet.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689792">689792</a></td>
<td>Requests to 12.0 MobiLink servers from MobiLink clients without the changes made for Engineering case 471582, where the MobiLink client included version and build number in each synchronization, could have ended with an &quot;Unknown request completed&quot; in the MobiLink server log. Also, error &quot;[-10344] The remote database identified by remote ID &#39;89d85096-0006-11e1-8000-8a42a227c45d&#39; is already synchronizing: orphaned UltraLite synchronization&quot; could have been reported for requests from MobiLink clients without this change as well. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689907">689907</a></td>
<td>The Interactive SQL utility would not have reported an error if an unknown encoding name was used in the READ statement&#39;s ENCODING clause. This has been corrected so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689910">689910</a></td>
<td>Extra rows were returned when executing a query using UNION where the subqueries contained joins with ON conditions. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689943">689943</a></td>
<td>With UltraLiteJ, committing a SQL statement that updated a table containing a large BLOB or CLOB could have caused an ArrayIndexOutOfBoundsException. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR689954">689954</a></td>
<td>An ODBC application could have crashed when attempting to connect if a thread was unable to be started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690075">690075</a></td>
<td>Events run on temporary connections, but those connections did not always have the correct locale information. In particular, functions such as errormsg() would have returned strings encoded in the OS character set rather than in the database character set. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690114">690114</a></td>
<td>Recovery could have failed if an operation in the transaction log required access to a feature that was secured on the command line via the -sf option. The operation could have entered the log, either by having the operation performed on a server where the feature was not secured, or if security was permitted, on the given connection via the -sk server option and setting the secure_feature_key option to match. The failure would have been displayed as assertion number 100904 &quot;Failed to redo a database operation&quot;. This has now been fixed.</p>
<p>				Note, not all secured features add entries to the transaction log. For example, the READ_FILE secured feature blocks access to xp_read_file which would not get logged; however, the REMOTE_DATA_ACCESS secured feature blocks access to statements such as CREATE SERVER does get logged.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690133">690133</a></td>
<td>When connected via jConnect or Open Client, retrieving the metadata of a long nvarchar or ntext column may have incorrectly indicated that the column was a long binary value. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690224">690224</a></td>
<td>The database properties CurrIO, MaxIO, CurrRead, MaxRead, CurrWrite, and MaxWrite, in some cases were not be maintained correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690250">690250</a></td>
<td>The UltraLiteJ runtime now supports restartable HTTP synchronizations. With restartable HTTP enabled, UltraLiteJ applications can tolerate network interruptions, so synchronizations will fail less often on unreliable networks. Restartable HTTP is disabled by default. To enable, use the following new methods on the StreamHTTPParms class:</p>
<p>				/**</p>
<p>				* Enables or disables restartable HTTP. With restartable HTTP enabled, </p>
<p>				* UltraLiteJ can tolerate network interruptions, so synchronizations will fail </p>
<p>				* less often on unreliable networks.</p>
<p>				* &lt;p&gt;</p>
<p>				* To use restartable HTTP, both UltraLiteJ and the MobiLink server must have </p>
<p>				* applied CR#690250. </p>
<p>				*</p>
<p>				* @param isRestartable Pass true to enable restartable HTTP, and false to </p>
<p>				* disable. The default is false.</p>
<p>				* @see #isRestartable()</p>
<p>				*/</p>
<p>				public void setRestartable( boolean isRestartable );</p>
<p>				/**</p>
<p>				* Returns true if restartable HTTP will be used, and false otherwise.</p>
<p>				*</p>
<p>				* @return Whether restartable HTTP will be used.</p>
<p>				* @see #setRestartable(boolean)</p>
<p>				*/</p>
<p>				public boolean isRestartable();</p>
<p>				To use this change, both remotes and servers must be upgraded. It is safe to upgrade only one of the remote or the server, as long as setRestartable is not called on the remote.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690254">690254</a></td>
<td>When request logging is enabled with ALL or PLAN, the server may have crashed if the following sequence occurred:</p>
<p>				- Connection A opened a cursor that included fetching rows from a procedure</p>
<p>				- Connection B dropped the procedure used by connection A</p>
<p>				- Connection A then closed its cursor</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690291">690291</a></td>
<td>An UltraLiteJ database that was created from a file using the method DatabaseManager.importDatabaseFile() could have been invalid in rare circumstances. The circumstances in which this was more likely were when the page size of the database was small (1 KB or less). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690295">690295</a></td>
<td>An IIS web server application could have crashed after running for a few days. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690373">690373</a></td>
<td>Statements with virtual tables referencing user-defined functions, and stored procedures which qualify for in-lining, may crashed the server or returned incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690393">690393</a></td>
<td>The changes for Engineering cases 673184 and 673184 may have caused non-lazy loading databases to encounter SQLE_ERROR and ArrayIndexOutOfBounds. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_94.htm#CR690627">690627</a></td>
<td>If a stored procedure is called from the Interactive SQL utility, and that procedure performed a client-side file operation, the user is asked whether the operation should be allowed or not. Previously, if dbisql was run with the -q command line option, the prompt was not displayed, and &quot;Allow&quot; was assumed. Now, the prompt is displayed even if the -q option is used, and the initially selected option has been changed from &quot;Allow&quot; as default, to &quot;Disallow&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR690734">690734</a></td>
<td>The MIN and MAX aggregate functions would have returned an error when using an argument of type &quot;timestamp with time zone&quot; or &quot;xml&quot;:</p>
<p>				Cannot convert timestamp with time zone to a numeric</p>
<p>				or</p>
<p>				Cannot convert xml to a numeric</p>
<p>				Further, using an &quot;numeric&quot; before computing the aggregate. This has been fixed. The MIN and MAX aggregates no longer attempt to cast these types to &quot;numeric&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR690768">690768</a></td>
<td>In order to prevent the possibility of having two primary servers running at the same time when there was no connection between the two partners, the arbiter would have refused a role switch from &quot;mirror&quot; to &quot;primary&quot; if it had a connection to the current primary. If a mirroring partner server was unable to connect to its partner server after the connection dropped, it was possible for the server to be unable to decide whether to take the role of primary or mirror server. A work around for this problem was to use the syntax &quot;ALTER DATABASE &lt;mymirroreddb&gt; FORCE START&quot; to force the database to start up as primary, and should only have been used if there was no other primary server running. This problem has been fixed, and the server should now be able to decide to take a role of either &quot;primary&quot; or &quot;mirror&quot; server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691036">691036</a></td>
<td>When using the -sf server option to disable certain features other than &quot;database&quot;, the CREATE DATABASE statement could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691040">691040</a></td>
<td>When fetchingd a string value containing trailing blanks from a proxy table, the trailing blanks would have been stripped. This problem has now been fixed and the string value will be exactly as returned by the underlying driver.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691106">691106</a></td>
<td>The Relay Server Outbound Enabler&#39;s down channel would have responded slowly to new requests when there were on-going heavy downloads. This has been fixed by internal tuning of the Outbound Enabler&#39;s down channel. In testing, two concurrent 1G reponses were making the Outbound Enabler take 18 sec to satisfy another pair of clients waiting for 10x10k responses. After tuning, it took only 0.5 sec to satisfy the lighter responses without jeopardizing the aggregated download throughput.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691167">691167</a></td>
<td>The request timing counters record the number of times, and the duration, a connection blocks waiting for various resources (disk accesses, locks, etc.). These counters were normally only available when the server was run with the -zt option, or when enabled with sa_server_option(&#39;RequestTiming&#39;, &#39;on&#39;). As of this change, the ReqTimeBlockIO and ReqCountBlockIO properties are always available, regardless of the -zt setting. These properties are cheap to maintain, relative to the others, because the time required to wait for a disk access is much larger than that required to update the property.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691168">691168</a></td>
<td>Load table operations were not permitted on temporary tables in a read-only database, even though other DML operations (INSERT/UPDATE/DELETE/TRUNCATE) were. This has been fixed.</p>
<p>				Note, as expected no data is logged to the transaction log in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691178">691178</a></td>
<td>Attempting to make a Kerberos connection with a large Kerberos ticket could have failed with the error &quot;Kerberos login failed&quot;. This would have occurred with a Kerberos ticket size approaching 8K, which was possible if the ticket was part of a large number of Active Directory groups. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691204">691204</a></td>
<td>In a high availability mirroring configuration, it is possible to drop the mirror server definition for a partner server currently acting as a mirror. If the dropped server later tried to connect to the primary server as a copy node, the primary server would still have thought the server was its partner, rather than a copy node. This has been fixed.</p>
<p>				Also, in a read-only scale out mirroring configuration, it is possible to drop the mirror server definition for a copy node. If that copy node was connected to the primary server at the time of the drop, the mirror server definition would not have been removed from the system tables. This to has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691207">691207</a></td>
<td>An ArrayIndexOutOfBoundsException could have occurred when reconnecting to an UltraLiteJ database if a previous connection had used a large amount of storage for temporary tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691215">691215</a></td>
<td>Different system catalog views, DESCRIBE, and the dbunload schema information, showed different base type names for the domain Signed Integer. The base type names shown were &quot;int&quot; or &quot;integer&quot;. This has been fixed. Now the base type name &quot;integer&quot; is consistently returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691304">691304</a></td>
<td>The changes for Engineering case 686407 introduced a problem for shared memory connections where calling connection_property( &#39;LastReqTime&#39; ) could have reported an inaccurate value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691322">691322</a></td>
<td>The ENCRYPTED KEY option of the OPENSTRING statement was recently extended to permit the encryption key to be specified as a variable (see Engineering case 688888). In certain scenarios this feature could have caused either a crash, or an inappropriate error - SQLCODE -851 &quot;Decryption error: Missing encryption key&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691327">691327</a></td>
<td>If the Notifier had encountered an unexpected error (such as a deadlock) when executing one of the Notifier events, subsequent attempts to execute the same Notifier Event would have resulted in an &quot;Invalid Cursor State&quot; error. This has been corrected so that the Notifier no longer reports the &quot;Invalid Cursor State&quot; error on subsequent attempts. Stopping and starting the MobiLink Server would also have resolved the issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691453">691453</a></td>
<td>The functions Upper(), UCase(), Lower(), and LCase() could have incorrectly described the length of the output based on the length of the input if input collation was UCA. This has been fixed. Output is now described as LONG (N)VARCHAR.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691589">691589</a></td>
<td>1. ALTER TABLE would have allowed the addition of a UNIQUE constraint with nullable columns. This would have resulted in corruption of row store for the table, and would have lead to ArrayIndexOutOfBounds exceptions or corrupt data being read.</p>
<p>				2. ALTER TABLE ADD constraint would not have added existing table rows to the new index. SELECT with ORDER BY using the new constraint would have returned less rows, and it was possible to INSERT rows that violated the constraint.</p>
<p>				3. ALTER TABLE ALTER column would not have properly modified the column definition.</p>
<p>				4. ALTER TABLE ADD column, DROP column or ALTER column, would have corrupted the in-memory state when lazy loading, resulting in SQLE_ERROR in subsequent operations on a given table.</p>
<p>				All the above issues have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691654">691654</a></td>
<td>MobiLink clients that output localized error messages, now output a more detailed error message for connection failures on Windows desktop and devices, in addition to doing so for network read and write errors as they did before.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691657">691657</a></td>
<td>When using the Deployment Wizard, a temporary list of files is generated to pass over to makecab.exe based on the temporary directory path (%TMP%); e.g. makecab.exe /F C:\DOCUME~1\user\Local Settings\Temp\1\sql6.tmp. If the %TMP% variable contained a space, this would not work correctly, although the MSI file would still have been generated, but it would not have contained the necessary files. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691662">691662</a></td>
<td>DELETE query blocks (e.g. a main query block in a DELETE statement or a query block of a DML DELETE derived table) were restricted from flattening subqueries defined in the WHERE clause. An exception was that subquery flattening was done if and only if the cardinality of the DELETE query block was not affected. The restriction has now been removed, which may significantly improve the performance of some DELETE statments. With this change, any subquery which qualifies for flattening is flattened similar with SELECT/UPDATE query blocks.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691732">691732</a></td>
<td>The database server now accepts the -gta command line option to control which logical processors the database server is permitted to use. The argument to -gta is a comma-separated list of processor numbers and/or ranges.</p>
<p>				For example:</p>
<p>				-gta 3,5-7</p>
<p>				allows the database server to run on processors 3, 5, 6 and 7.</p>
<p>				The lower endpoint of a range may be omitted in which case it is assumed to be zero. The upper endpoint of a range may be omitted in which case it is assumed to be the highest cpu known to the OS. The database server will only use logical processors specified by -gta but it may not use all of them if the license does not allow it, or if one or more of the specified logical processors does not exist or is offline. If the set of processors specified by -gta exceeds the license limits, the server will use the lowest-numbered logical processors specified by -gta up to but not exceeding the license limits. In particular, the server does not choose logical processors in the order listed by -gta and it does not attempt to maximize concurrency within the license limit and the specified</p>
<p>				-gta option. If the set of processors specified by -gta does not match any online processors, the server acts as if -gta was not specified and uses up to the licensed number of processors starting at processor 0.</p>
<p>				Note that -gta cannot be used at the same time as -gt or -gtc. A usage message will be</p>
<p>				displayed when -gta is used with either -gt or -gtc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691736">691736</a></td>
<td>When connected to a version 11 or earlier database, clicking the database&#39;s Overview panel would have displayed a &quot;Table &#39;sysmirrorserver&#39; not found&quot; error. This has been fixed. A check of database version has now been added before querying the SYS.SYSMIRRORSERVER table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691739">691739</a></td>
<td>The detailed Relay Server status page, via the rs_admin.dll and rs_monitor.dll, were showing a heading and an empty list of fully available farms when there were no fully available farms. This has now been changed to not show the heading when the list is empty. The issue with partially available farms and unavailable farms has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691879">691879</a></td>
<td>If an IPv6 address was used in the HOST or LINKS parameters of a connection string, on a machine that did not support IPv6, the client would have displayed the message &quot;No IP address found for &lt;IPv6 address&gt;&quot;. This has been fixed. The error message will now read &quot;No valid host names or addresses given&quot;. If the LOG= parameter is also used, the message &quot;Ignoring IPv6 address &lt;IPv6 address&gt;&quot; is written to the log for each IPv6 address found.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691891">691891</a></td>
<td>If all the consolidated tables were already mapped in a synchronization, and the New Table Mappings menu or toolbar button was used, the user would have been incorrectly prompted to update the remote schema instead of the consolidated schema. Also, unchecking the option to add a table to the remote schema when adding a table mapping, would have resulted in the new table mapping having no remote table. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691893">691893</a></td>
<td>When installing an MSI file created by the Deployment wizard, the install would have partially completed and then failed, rolling back the install. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691976">691976</a></td>
<td>Aggregated download throughput, using one or more Outbound Enablers, has been improved significantly across all kinds of loads when there is bandwidth left in the link to the Relay Server.</p>
<p>				Running multiple OEs still remains an option to further improve throughput over a single OE. In our test environment, it now takes about 12 OEs in order to become network bound. Previously, even with 64 OEs with network bounding client load (i.e. RS/OE slows down the traffic to the point that it is no longer network bound) it was not possible to max-out the link. </p>
<p>				When the load is not sufficient to cause a network bounding situation, the Relay Server can now achieve close to 90% of the direct throughput where the clients are directly accessing the backend server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR691979">691979</a></td>
<td>The SQL Anywhere JDBC 4 Driver (sajdbc4.jar) now contains the proper manifest information to allow it to be loaded as an OSGI bundle.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692013">692013</a></td>
<td>If a copy node in a read-only scale out setup was converted to be a partner mirror server, the primary mirror server could not have been restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692127">692127</a></td>
<td>A new database server property, &#39;ProcessID&#39;, has been added. This proberty returns the PID of the server process.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692216">692216</a></td>
<td>A problem with TDS secure logins has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692243">692243</a></td>
<td>The [NOT|AUTO] COMPRESSED option is now supported in the OPTIONS list of the OPENSTRING clause. This is useful for reading in files created using UNLOAD with the COMPRESSED option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692249">692249</a></td>
<td>On Mac OS X 10.7 Lion, the Java administration tools (Sybase Central, Interactive SQL, etc) would have silently failed if Java was not installed. Previous versions of Mac OS X included a Java runtime, but on Lion it is a separately installed component. </p>
<p>				Use the following method to initiate the Java runtime installation or confirm it is currently installed:</p>
<p>				1.Go to Applications &gt; Utilities &gt; Java Preferences. </p>
<p>				2.Open the Java Preferences. </p>
<p>				3.If Java is not installed, you receive the following message: </p>
<p>				揟o open 揓ava Preferences,&quot; you need a Java runtime. Would you like to install one now?� </p>
<p>				4.Click Install and follow the prompts. The Java runtime is downloaded and installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692307">692307</a></td>
<td>In blank padded and case insensitive databases using INSERT ON EXISTING UPDATE when updating a value which was logically equivalent but physically different could have failed due to constrain violations. This has been fixed. The server now does constraint checking using logical representations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692340">692340</a></td>
<td>Machine and OS information have now been added to the Relay Server Outbound Enabler log. As well, timezone offset information has been added to the Relay Server and the Outbound Enabler logs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692342">692342</a></td>
<td>Attempting to start the Relay Server Outbound Enabler with the command line option &quot;-cs status_url&quot; would have failed. This has been fixed and a usage text for -cs status_url, which was missing, has been added.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692346">692346</a></td>
<td>The Relay Server Outbound Enabler would have crashed after showing the usage text due to an invalid parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692376">692376</a></td>
<td>After the changes for Engineering case 666434 (&quot;dbisqlc could report errors when using output redirection for nested READ statements&quot;), dbisqlc did not always correctly close all files opened for READ statements. If enough files were opened for READ statements during a session, dbisqlc could have reported &quot;too many open files&quot;. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692504">692504</a></td>
<td>Entity Famework queries could have returned incorrect result when using parameters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692583">692583</a></td>
<td>In some rare cases, the server would have hung when a connection queried another </p>
<p>				connection&#39;s LastStatement property. This has been fixed.</p>
<p>				The work-around is to not use the -zl command line option, or to turn off the </p>
<p>				RememberLastStatement server option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692598">692598</a></td>
<td>An HTTPS synchronization could have failed on 64-bit Windows with STREAM_ERROR_SECURE_HANDSHAKE, depending on what trusted certificates were provided. This failure would have been more likely to occur when using the OS&#39;s CA certificate store. Certicom has provided updated libraries which correct this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692604">692604</a></td>
<td>The server could have run out of memory after processing many HTTP requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692617">692617</a></td>
<td>When the dbisqlc OUTPUT_FORMAT option &#39;ASCII&#39; was renamed to &#39;TEXT&#39; in version 11.0.0, the ability to generate the old format that dbisqlc called &#39;TEXT&#39;, which was fixed-width with column headers, was lost. Now, setting the OUTPUT_FORMAT to &#39;COLUMNS&#39; will generate the old TEXT format.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692867">692867</a></td>
<td>The changes for Engineering case 677962 introduced a situation where, in rare timing dependent cases, a server could have hung when it was shutting down a database which was a high availability mirror or a copy node. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692899">692899</a></td>
<td>The changes for Engineering case 691204 introduced a problem where, in rare timing dependent cases, a high availability server or a copy node server could have crashed when shutting down, or when a DROP MIRROR SERVER statement was executed for a connected copy node.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR692981">692981</a></td>
<td>Within stored procedure code, ARGN and some other builtins, IF expressions, conjunction or disjunction of predicates, could have eagerly evaluated all of the subselects in subexpressions. For example, expression</p>
<p>				ARGN( 1, (select 1/max(v) from t1), (select 1/min(k) from t2), (select 1/0 from dummy) )</p>
<p>				would have evaluated all of the subselects (and returned an error) before noting that only the first of the subselects needed to be evaluated, and no error returned. This has been fixed.</p>
<p>				NOTE: The evaluation of subselects in procedural expressions now matches the evaluation in queries. For disjunctions and conjunctions, the order of evaluation of predicates is not guaranteed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693005">693005</a></td>
<td>If a JDBC application was launched, and no language resource DLL or shared object was located, the application would have gone into a loop consuming virtual memory until an &quot;out-of-memory&quot; error occurred. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693111">693111</a></td>
<td>On Windows Mobile / CE, database files were not always properly flushed when necessary. The file metadata was the most likely data not to have been flushed, and assertion failure 201129 (File shorter than expected) was the most likely corruption to be seen in the event of a full power outage (eg if the CE device battery runs out). This problem has been fixed.</p>
<p>				Also, the server&#39;s &#39;-u&#39; (use buffered IO) command line switch was ignored on Unix platforms that supported direct IO. This problem has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693135">693135</a></td>
<td>On Mac OS X, servers or client applications that made many TCP/IP connections requiring broadcasts to other servers could have sent many more UDP broadcast packets than required. In extreme cases, this could have flooded the network with UDP packets, affected an entire subnet&#39;s performance. Connection strings such as links=tcpip (with no broadcast=) or host=hostname (with no port) use broadcasting to other servers and could have had this problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693255">693255</a></td>
<td>If the publisher&#39;s address for a database contained a UNC path, or if the address for a remote user contained a UNC path, the Unload and Extraction utilities would have failed to escape the string properly, resulting in an address in the new database with missing backslash characters. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693319">693319</a></td>
<td>The sql functions set_bit() and get_bit() incorrectly accepted the value 0 for the bit-position parameter. This has been fixed. Now these functions return an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693325">693325</a></td>
<td>The MobiLink replay utility (mlreplay) could have crashed when the version of the recorded protocol was incompatible with the version of the replay utility replaying it. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693344">693344</a></td>
<td>The MobiLink server and clients now support certificates signed using SHA-2. Previously, only MD5 and SHA-1 were supported.</p>
<p>				Also, the Certificate Viewer utility (viewcert) will now also correctly display the signature algorithm for certificates signed using SHA-2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693418">693418</a></td>
<td>A partner mirror server could have hung when stopping the mirrored database in rare timing dependent cases after executing an ALTER MIRROR SERVER for the arbiter server. This problem was introduced by the changes made for Engineering case 688291 and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693422">693422</a></td>
<td>The default value specified in a CREATE [ OR REPLACE ] VARIABLE statement within a procedure, function, or trigger would have been ignored. </p>
<p>				Example:</p>
<p>				create or replace procedure foo ()</p>
<p>				begin</p>
<p>				create or replace variable @v int = 123;</p>
<p>				end;</p>
<p>				call foo();</p>
<p>				select @v; -- should return 123 but would have returned NULL</p>
<p>				This has been fixed. As a workaround set the default or initial value for the variable in a separate statement after the variable has been created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693539">693539</a></td>
<td>The changes for Engineering case 635466 introduced a problem where, on machines under heavy load, TCP connection attempts could have failed with an incorrect error code. On certain operating systems, the connection attempt could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693560">693560</a></td>
<td>Under very rare circumstances, a server could hang if it had a large number of processors and was executing a query with a parallel hash join. This was more likely on systems with large numbers of cores (more than 8). This has been fixed.</p>
<p>				A workaround is to disable intra-query parallelism by setting option MAX_QUERY_TASKS=1. (This only needs to be done for the statement or connection experiencing the problem, if it can be isolated.)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693569">693569</a></td>
<td>When the &#39;Names&#39; sample was loaded into Xcode 4.2, several warnings would have been reported. Even after this change, there will still be a prompt to remove the obsolete &#39;PREBINDING&#39; build setting. It is recommended that this build setting be removed. The other warnings have been addressed. The most significant change is that the project format has been upgraded to Xcode 3.2-compatible format. Some other minor enhancements have also been made to the sample, such as specifying the UltraLite temp_dir. See the DataAccess class&#39; openConnection method for more details.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693579">693579</a></td>
<td>When using the &quot;Export to Database&quot; functionality of the MobiLink Monitor on a 64-bit Linux systems, a dialog with an exception like the following would have been displayed: </p>
<p>				Error! The DBLIB library could not be loaded. </p>
<p>				This can happen if your SQL Anywhere installation has been corrupted. You will not be able to search for database servers. </p>
<p>				/opt/sqlanywhere12/lib32/libdblib12_r.so.1: /opt/sqlanywhere12/lib32/libdblib12_r.so.1: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) </p>
<p>				Dismissing the dialog would allow the Monitor to continue, but the &quot;Find&quot; button would not have been available to search for SQL Anywhere database servers. </p>
<p>				Workaround: </p>
<p>				. /opt/sqlanywhere12/bin64/sa_config.sh </p>
<p>				export LD_LIBRARY_PATH=/opt/sqlanywhere12/lib64:$LD_LIBRARY_PATH </p>
<p>				/opt/sqlanywhere12/bin64/mlmon</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693670">693670</a></td>
<td>When a copy node server in a mirroring setup was not running an arbiter or partner server for another database, any connections from a server running mirroring to the copy node would have consistently dropped and reconnected for no apparent reason. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693690">693690</a></td>
<td>When the &#39;CustDB&#39; sample was loaded into Xcode 4.2, several warnings would have been reported. Even after this change, there will still be a prompt to remove the obsolete &#39;PREBINDING&#39; build setting. It is recommended that this build setting be removed. The other warnings have been addressed. The most significant change is that the project format has been upgraded to Xcode 3.2-compatible format. Some other minor enhancements have also been made to the sample, such as specifying the UltraLite temp_dir. See the DataAccess class&#39; openConnection method for more details.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693819">693819</a></td>
<td>When the server was running with the -fips command line option (Requires that only FIPS-approved algorithms should be used for strong database and communication encryption), it was still able to start simple-encrypted databases. This has been fixed, such databases will now fail to start.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693900">693900</a></td>
<td>The SQL Anywhere Monitor database gathers monitoring data over time, and this data is reduced according to the maintenance settings. If data reduction settings allowed more data to be gathered than the default settings, when the maintenance plan did run it may not have been able to successfully prune the gathered data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693917">693917</a></td>
<td>If a copy node in a mirroring setup became unresponsive, it was possible for its parent to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693928">693928</a></td>
<td>When the StartServer method in the dbmlsync API is used to start a dbmlsync server, the dbmlsync commandline is now obfuscated making it harder for someone with access to the machine to discover the dbmlsync commandline.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693938">693938</a></td>
<td>In very rare circumstances, the server could have become deadlocked or hung. In some cases , database mirroring would have been involved and very specific timing was required; however, the problem could have occurred in other situations and would also have required very specific timing. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693964">693964</a></td>
<td>A user that did not have DBA authority was able to alter a SQL procedure that they owned into an external or external environment stored procedure. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR693999">693999</a></td>
<td>When using the Unload utility (dbunload), if an APPINFO connection parameter was specified for the source database (-c option), the APPINFO value was ignored and a warning message printed stating such. This bahaviour has now been changed, the APPINFO value is now passed to the source database and a warning message is printed stating that the rebuild may fail if the source database has an older file format (version 9.0 or older). Connections to the target database (-ac option) are unaffected by this change. Both the previous and new behaviour is to pass the APPINFO value to the target database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694002">694002</a></td>
<td>In extremely rare timing dependent cases, the server could have hung when the db_property function was called. The only known case of this occurring involved mirror servers, but this problem may have affected servers not involved in mirroring. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694022">694022</a></td>
<td>In UltraLiteJ for Android, the API StreamHTTPParms.setExtraParameters( String ) has now been added.</p>
<p>				The classes StreamHTTPParms/StreamHTTPSParms contain a number of methods to set MobiLink client network protocol options as properties, eg. setHost( String ). However, there were no methods to cover all possible MobiLink client network protocol options. This API can now be used to specify a semi-colon-delimted list of options that are appended to the options that are generated by the property settings for the class. The meaning of the option list for this API is as specified in the documentation of MobiLink client network protocol options.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694137">694137</a></td>
<td>There were two problems with attempting to encrypt a table using the ALTER TABLE &lt;table_name&gt; ENCRYPTED statement:</p>
<p>				1. Executing the ALTER TABLE statement incorrectly succeeded on a database that did not support encrypted tables (i.e. one that is not encrypted or fully encrypted).</p>
<p>				2. If a database was created with version 10 to support encrypted databases, but was being executed on a version 11 or later server, the same ALTER TABLE statement would have fail with error -1047 &quot;This database does not support encrypted tables&quot;.</p>
<p>				These problems have now been fixed. In the first case, the ALTER statement will now </p>
<p>				return error -1047, and in the second case, the ALTER statement will succeed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694143">694143</a></td>
<td>When using the CREATE ENCRYPTED TABLE DATABASE statement on a fully encrypted database, the resulting database had all table and index pages encrypted, rather than only the pages for </p>
<p>				encrypted system tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694165">694165</a></td>
<td>An interactive quick setup feature has been added to help users running on an Apache web server to configure the web server for Relay Server, create a demo application, and generate a Quick Reference guide.</p>
<p>				This quick setup is divided into two main steps:</p>
<p>				1- Configure the Apache web server for Relay Server</p>
<p>				Run ap-setup.sh script, which consists of the following sections:</p>
<p>				1. Introduction</p>
<p>				2. Validation</p>
<p>				3. Create Backup</p>
<p>				4. Deploy the Relay Server</p>
<p>				5. Deploy the SimpleTestApp page and Quick Reference</p>
<p>				6. Introduction to test setup script (part two)</p>
<p>				2- Create and start Relay Server test services</p>
<p>				Run rs-test-setup.sh script, which consists of the following sections:</p>
<p>				1. Introduction</p>
<p>				2. Create and deploy Relay Server and Outbound Enabler test services</p>
<p>				3. Start the Apache web server and the test services</p>
<p>				4. Launch the SimpleTestApp</p>
<p>				5. Launch the Relay Server status page</p>
<p>				6. Generate and launch the Quick Reference guide</p>
<p>				7. Shut down</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694466">694466</a></td>
<td>The Compare Databases window could have reported syntactically-distinct, yet semantically-equivalent, differences between the two databases. The differences were limited to the ordering of the following:</p>
<p>				1. Authorities for a user or group</p>
<p>				2. Option name-value pairs for a login policy</p>
<p>				3. Tables for a publication</p>
<p>				4. Columns for an article</p>
<p>				5. Option name-value pairs for a mirror server</p>
<p>				In all of the above cases, the ordering was irrelevant; however, the tool could have reported differences because the comparison could have generated random orderings.</p>
<p>				For example:</p>
<p>				GRANT CONNECT,DBA,RESOURCE TO &quot;DBA&quot; IDENTIFIED BY ...</p>
<p>				vs:</p>
<p>				GRANT CONNECT,RESOURCE,DBA TO &quot;DBA&quot; IDENTIFIED BY ...</p>
<p>				These have been fixed. The comparison now provides a consistent ordering as follows:</p>
<p>				1. User and group authorities are ordered by authority name.</p>
<p>				2. Login policy options are ordered by option name.</p>
<p>				3. Publication tables are ordered first by user name, then by table name.</p>
<p>				4. Article columns are ordered by column id.</p>
<p>				5. Mirror server options are ordered by option name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694468">694468</a></td>
<td>Attempting to compare a tenant database with another database would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694479">694479</a></td>
<td>Attempting to use a server or the Java-based administration tools with large amounts of memory on a Linux system with kernel versions between 3.0 and 3.3 may have resulted in improper system memory calculation. This problem could have manifest itself in many ways. The server may have reported insufficient memory, or may have reported a very low value for its cache size, even when a large amount of system memory is available, e.g.:</p>
<p>				8192K of memory used for caching</p>
<p>				Minimum cache size: 8192K, maximum cache size: 8192K</p>
<p>				The Java-based administration tools may also report the following error:</p>
<p>				Invalid maximum heap size: -Xmx0m</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694480">694480</a></td>
<td>Selecting a tenant database&#39;s Login Mappings folder in the tree would have caused an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694489">694489</a></td>
<td>If a connect to a cloud tenant database was made in the Interactive SQL utility, or Sybase Central, by selecting an action of &quot;Connect to a running database in a cloud&quot; in the &quot;Connect&quot; dialog, and then the connection was disconnected, opening the &quot;Connect&quot; dialog again would not have had the &quot;Action&quot; box initially set to &quot;Connect to a running database in a cloud&quot;. This has been corrected so that now it is.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694491">694491</a></td>
<td>If the server&#39;s main heap was extremely large and fragmented, and/or an extremely large number of SQL objects had been referenced (ie a large number of table names, column names, etc), checkpoints could have been slower than necessary by using more CPU than necessary. Even in extreme cases, the delay might have been only a few seconds and might generally go unnoticed for normal checkpoints; however, execution of a long sequence of DDL statements that performed implicit checkpoints would have been observed as extremely slow. The problem was caused by some in-memory cleanup that must be performed by the server periodically and was performed on every checkpoint; however, this cleanup doesn&#39;t need to be performed when checkpoints are executed in quick succession. Now, SQL Anywhere will perform the cleanup during checkpoint at most once every twenty minutes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694574">694574</a></td>
<td>The SQL Anywhere Ruby/DBI Driver(1.0.0) now supports the latest Ruby version(1.9.3-p194) and the dbi gem version(0.4.5). The DBI test suites for Ruby/DBI Driver(DBD) are verified and the following problems have been fixed.</p>
<p>				- dbh.convert_types = false did not return the String value properly.</p>
<p>				- incorrect value of &quot;precision&quot; and &quot;scale&quot; of the column_info for integer data type.</p>
<p>				- incorrect value of the number for the affected rows.</p>
<p>				Also rakefile is changed to use rdoc/task instead of rake/rdoctask(deprecated).</p>
<p>				New Ruby gem and source are posted under:</p>
<p>				https://rubygems.org/gems/dbd-sqlanywhere</p>
<p>https://github.com/sqlanywhere</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694591">694591</a></td>
<td>When the search condition in an IF expression evaluates to UNKNOWN, the IF expression should return NULL (not the &quot;else&quot; branch). For example, the following statement returns (NULL,NULL)</p>
<p>				select a</p>
<p>				, if a=1 then 1 else 0 end if as b </p>
<p>				from openstring(value &#39;,&#39;)</p>
<p>				with( a int ) D</p>
<p>				If an IF expression was used as an argument to a CASE expression where the predicate is known at open time, then the IF expression was incorrectly evaluated so that UNKNOWN was treated as FALSE, leading to the ELSE branch being returned instead of NULL. For example, the following statement incorrectly returned (NULL,0,0) instead of (NULL,NULL,NULL)</p>
<p>				select a</p>
<p>				, if a=1 then 1 else 0 end if as b </p>
<p>				, case when 1=1 then b end case c</p>
<p>				from openstring(value &#39;,&#39;)</p>
<p>				with( a int ) D</p>
<p>				A similar problem could occur with an IF expression used as an argument to NULLIF.</p>
<p>				This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694592">694592</a></td>
<td>Evaluating particular forms of expressions in procedural code could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694593">694593</a></td>
<td>When evaluating the DATENAME() builtin function, it was possible that the server could have crashed. This potential problem has not been observed, and it is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694594">694594</a></td>
<td>In some cases, statements that included a DML statement in the FROM clause could have missed some checking that is normally done on statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694605">694605</a></td>
<td>SUP&#39;s Sybase Control Center (SCC) may have reported a false positive Relay Server Outbound Enabler (RSOE) status when the up channel or down channel failed to make direct connection to individual Relay Servers in the farm for a sustained period of time when RSOE debug logging is turned on. This was due to RSOE suppressing reporting repeated errors while SCC was scanning only the tail of the RSOE log to determine status. The RSOE has now been changed to not suppress repeated errors for this issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694658">694658</a></td>
<td>If a double-precision floating-point object (SQLDOUBLE) was not aligned on an 8-byte boundary on a Windows Mobile ARM-based device, the SQL Anywhere ODBC driver would have incorrectly issued the following error message when an attempt was made to reference the object (for example, using SQLGetData()):</p>
<p>				[Sybase][ODBC Driver]Invalid string or buffer length</p>
<p>				On the ARM hardware platform, a double-precision value consists of two 32-bit words and, when held in memory, the two words must appear consecutively and must both be word-aligned (i.e., a multiple of 4). The ODBC driver has now been corrected to check for an alignment that is a multiple of 4, not 8.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR694933">694933</a></td>
<td>Execution of a statement could have crashed the server, or returned incorrect results, if the statement contained derived tables with INSERT, DELETE, UPDATE, MERGE query blocks, and either the updated object was a simple updatable view, or the statement was used inside stored procedures, function, triggers, views, or batch statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695079">695079</a></td>
<td>When connected via jConnect, the procedure used to query the primary key metadata of a table would have returned too many rows if the table had a primary key column that was also a foreign key reference to another table. This problem has now been fixed.</p>
<p>				Note, an ALTER DATABASE UPGRADE will need to be performed on existing databases in order to get the new jConnect metadata procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695082">695082</a></td>
<td>Execution of a query with a query block with a FROM clause that was empty, or contained only the DUMMY table, could have crashed the server if the WHERE clause of this query block contained an EXISTS() predicate which could have been flattened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695084">695084</a></td>
<td>Execution of a CREATE PROCEDURE statement with a number a parameters that exceeded the limit would not have failed. Now, execution of such a statement will fail with the error: SYNTACTIC_LIMIT 54W01 -890. </p>
<p>				Note, the maximum number of parameters allowed is a function of the database page size. For example, for a page size of 4k, the limit is ~3620096 parameters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695095">695095</a></td>
<td>When executing a REORGANIZE TABLE statement, the server could have unnecessarily allocated an amount of memory that was proportional to the number of rows in the table. These allocations could have affect performance, and could have caused the cache to grow or, if the cache grew to its limit, could have caused a &#39;dynamic memory exhausted&#39; failure. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695119">695119</a></td>
<td>The MobiLink server would not have accepted any status-check requests sent by clients who had lost the last synchronization status. When a status-check request was received, the MobiLink server would have repoprted the error:</p>
<p>				[Sybase][ODBC Driver][SQL Anywhere]Authentication violation (ODBC State = 08001, Native error code = -98)</p>
<p>				and then failed the request when all the following conditions were met:</p>
<p>				1) The consolidated database was running on an OEM version of a SQL Anywhere server;</p>
<p>				2) The consolidated database had been restarted since the MobiLink server was started; and</p>
<p>				3) A client required a status-check because it did not get a full response in the last sync request that contained an upload.</p>
<p>				These problem is fixed now. The immediate work around for this problem is to restart the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695213">695213</a></td>
<td>When running on Windows systems, the server would have returned the value of property(&#39;MachineName&#39;) truncated to 15 characters. This has been fixed so it will now return the full name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695214">695214</a></td>
<td>With UltraLiteJ for Android, a ULjException with code -735 (Invalid parameter) was thrown when using PreparedStatement.set() to set a String parameter with UTF-8 encoded length greater than or equal to 32 KB. This has been fixed. A workaround is to use PreparedStatement.getClobWriter() to get a Writer object, and use that to write the parameter value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695216">695216</a></td>
<td>If the server was started with a TLS/HTTPS identity file that required a password, but none was supplied, an unhelpful error message was given (&quot;Error parsing certificate file, error code 20763&quot;). This has been fixed; the error message is now &quot;An identity password must </p>
<p>				be specified&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695242">695242</a></td>
<td>On some systems with multiple physical processor packages (ie multiple sockets) using certain Intel x86/x64 processors, including Intel Xeon E5630, the detection of processor geometry could have been incorrect. Too few packages would have been detected but the correct number of logical processors would still have been detected (with some assigned to the incorrect package). This problem was similar to, but different from, Engineer case 666639, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695258">695258</a></td>
<td>A new connection-level property &#39;NumLocalTempTables&#39; has been added that returns the number of local temporary tables in use by the connection. Note that even when a local temporary table is dropped or falls out of scope, it is still considered to be &quot;in use&quot; until the next commit.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695370">695370</a></td>
<td>The MobiLink server could have crashed when using the DBRowReader or DBCommand interfaces in the MobiLink .NET-ODBC bridge, if varchar or binary columns longer than a few KB were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695495">695495</a></td>
<td>When connected to an older 10.x database, creating a remote server and then attempting to utilize the remote server would likely have caused an incorrectly foreign key violation error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695497">695497</a></td>
<td>Only the status page via the rs_admin.dll and rs_mionitor.dll provides full breakdown of status of all farms and servers and the amount of info can be overwhelming for large deployment like hosting environment. The status page via rs_client.dll or rs_server.dll only provides a single Relay Server wide status summary, and the user cannot pinpoint their query to a specific farm for backend server. This change introduces the following two new query parameters for all status pages.</p>
<p>				ias-rs-farm=&lt;backend-farm-id&gt;</p>
<p>				ias-rs-server=&lt;backend-server-id&gt;</p>
<p>				Use of ias-rs-server requires ias-rs-farm to be specified as well. The comparison of the value of these parameters are case sensitive but the name of these parameters are case insensitive. These new parameter can be applied to the status page url via all of the 4 existing extensions and they can co-exist with the ias-rs-refresh-sec parameter.</p>
<p>				Example status page url:</p>
<p>				http:\\my.com\rs\admin\rs_admin.dll?ias-rs-farm=myfarm&amp;ias-rs-server=myserver</p>
<p>				http:\\my.com\rs\client\rs_client.dll?ias-rs-farm=myfarm&amp;ias-rs-status-refresh-sec=20</p>
<p>				When addressing rs_client.dll or rs_server.dll while IAS-RS-SERVER is not specified, individual server status will still be reported but the server name are hidden by label of this format: &quot;_#&lt;enumeration&gt;_&quot;. In the cases of farm or server not found. The status page will still response with basic RS server information together with an error reporting what was not found. In those cases, no status information of any kind are reported but the viewer can still verify if they have a successful access to the extension of their choice.</p>
<p>				The pin-pointed status url shares the pre-existing refresh control and it can be used as a basic service monitor in a browser.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_95.htm#CR695549">695549</a></td>
<td>When the ias-rs-status-refresh-sec url query parameter was specified on a status page url, the Relay Server would have returned the error: HTTP 404 &quot;Not Found&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695633">695633</a></td>
<td>Physical plan operators, such as base table sequential scans and joins, could not have be parallelized if an IN filter predicate belonged to that operator. This potentially could have caused performance degradation from earlier version where such operators could have been parallelized. This problem did not prevent the rest of the plan from being parallelized. For example, for a query with four tables and an IN predicate referencing only one of the tables, only the table referenced in the IN predicate could not have been parallelized, while the two joins joining the rest of the three tables could have been parallel joins. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695762">695762</a></td>
<td>The ALTER SERVER server CONNECTION CLOSE statement was a DDL statement that could not be executed in a read-only database. This has been fixed so that the statement is now executable in a read-only database, and no longer does an automatic commit.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695772">695772</a></td>
<td>When creating a custom MSI install using the deployment wizard, two properties were not being set correctly: UpgradeCode and ProductVersion. This has been fixed so that they are now set correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695774">695774</a></td>
<td>Attempting to execute a grouped query with a complex ORDER BY expression could have failed with the error: &quot;Assertion failed: 106105 Unexpected expression type ..&quot;. This would have occurred if the complex ORDER BY expression referenced a base table column from the GROUP BY clause - such as &quot;T.X +1&quot;, where T.X is a base table column in the GROUP BY clause; and the base table column T.X was eliminated from the GROUP BY clause based on functional dependencies. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695788">695788</a></td>
<td>In rare, timing dependent cases, the server may have failed fatal assertion 101412 - &quot;Page number on page does not match page requested&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695832">695832</a></td>
<td>Reversing the direction of fetches on a cursor would have incorrectly returned the previous row fetched for 慻roup-by� query plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR695909">695909</a></td>
<td>Attempting to upgrade a version 10.x database using a version 11.0.0 or later server would likely have failed with the error: &quot;Item &#39;SYSCAPABILITYNAME&#39; already exists&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696064">696064</a></td>
<td>A new collation &#39;1252BIN&#39; has been added that is based on the windows-1252 character set but has a binary sort ordering. As with the other binary collations, ordering isn&#39;t quite binary when it is used in a case-insensitive database. For case-insensitve 1252BIN collations, upper case letters A-Z sort as if they were lower case (ie, greater than the backquote &#39;`&#39; character).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696240">696240</a></td>
<td>With UltraLiteJ for Android, the MobiLink file transfer APIs, similar to those for UltraLiteJ for J2SE and BlackBerry, are now supported. Specifically, the method DatabaseManager.createFileTransfer( String fileName, int streamType, String userName, String version ) is supported, as are the interfaces FileTransfer, FileTransferProgressData, and FileTransferProgressListener.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696272">696272</a></td>
<td>With UltraLiteJ for Android, calling SyncParms.setLivenessTimeout(n) had no effect. This has been fixed. Now the liveness timeout value for the synchronization connection is set to n seconds.</p>
<p>				Note, the default liveness timeout for synchronization and file transfer connections is 100 seconds for BlackBerry, J2SE and J2ME platforms, and 240 seconds (the default for UltraLite/MobiLink) for Android platforms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696323">696323</a></td>
<td>Localized server resources for the French language have now been enabled on Linux systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696394">696394</a></td>
<td>Execution of a procedure with a very large argument list may have crashed the server. The crash would have occurred if statement needed to be copied (e.g. a remote server statement or a SELECT INTO statement), and a server worker thread ran out of stack. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696467">696467</a></td>
<td>In very rare circumstances, the database server could have consumed 100% of 1 CPU when shutting down, or when stopping a database. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696469">696469</a></td>
<td>Executing an UNLOAD ... TO FILE or UNLOAD ... INTO CLIENT FILE statement with the APPEND ON BYTE ORDER MARK option, would have written a byte order mark even if the unload file already existed with a size greater than zero bytes. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696617">696617</a></td>
<td>If the database option PUBLIC.Java_vm_options was set to contain only spaces, then the server would have crashed when the JAVA external environment was started. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696631">696631</a></td>
<td>Attempting to create a maintenance plan, or test the email settings for a maintenance plan, would have failed when running on a French machine. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696638">696638</a></td>
<td>Using an ALTER TABLE statement to change the length of a string column (char, [long] varchar, [long] binary) that used default INLINE/PREFIX values, would also have explicitly set the INLINE/PREFIX values for that column if there was data in the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696640">696640</a></td>
<td>Attempting to create a maintenance plan with a single quote in its name would have failed. The plan&#39;s name is used in a generated SQL statement. If the name contained a single quote, then the generated statement would not have executed. Any single quotes in the name are now doubled-up before including it in the generated statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696647">696647</a></td>
<td>A new NetworkData class has been added to the Java and .NET scripting APIs to give access to HTTP headers and client-side certificates used in a request. A NetworkData object can be obtained by calling the getNetworkData method, or getting the NetworkData property of the DBConnectionContex class in Java or .NET, respectively. Collection of the network data must be explicitly enabled by adding &quot;collect_network_data=1&quot; to your -x options. To collect client-side certificates, trusted_certificates=&lt;certificate file&gt; must be added to -x options. The client-side certificates are not yet available for MacOS, but that will be added in a future EBF.</p>
<p>				The class documentation for the Java class follows:</p>
<p>				/** </p>
<p>				* Contains information about the network streams for a synchronization.</p>
<p>				* This is useful if you wish to authenticate against some other server in </p>
<p>				* the enterprise using the client-side certificate and HTTP headers.</p>
<p>				*</p>
<p>				* To enable collection of network stream data, add collect_network_data=1 to</p>
<p>				* your -x switches. This adds additional per sync memory overhead to store </p>
<p>				* the data. If using TLS or HTTPS with client-side certificates, add </p>
<p>				* trusted_certificates=&lt;certificate file&gt; to have the server ask the client to send </p>
<p>				* a certificate during the TLS handshake, incurring a time and network cost.</p>
<p>				* </p>
<p>				* You can obtain a NetworkData object by invoking the getNetworkData method</p>
<p>				* of the DBConnectionContext class. When using HTTP or HTTPS, it will contain</p>
<p>				* the header data for the last HTTP request received by the server before the </p>
<p>				* authenticate scripts are invoked.</p>
<p>				*</p>
<p>				* @see DBConnectionContext</p>
<p>				*</p>
<p>				* @examples</p>
<p>				* The following example shows how to get a NetworkData object from the </p>
<p>				* DBConnectionContext, and prints the data it contains to the log.</p>
<p>				* </p>
<p>				* &lt;pre&gt;</p>
<p>				* public class OrderProcessor {</p>
<p>				* DBConnectionContext _cc;</p>
<p>				* </p>
<p>				* public OrderProcessor( DBConnectionContext cc ) {</p>
<p>				* _cc = cc;</p>
<p>				* }</p>
<p>				* </p>
<p>				* // The method used for the authenticate_user event.</p>
<p>				* public void AuthUser() {</p>
<p>				* NetworkData nd = _cc.getNetworkData();</p>
<p>				* if( nd != null ) {</p>
<p>				* if( nd.isHTTP() ) {</p>
<p>				* System.out.println( &quot;http&quot; );</p>
<p>				* String user_agent = nd.getHTTPHeaderValue( &quot;user-agent&quot; );</p>
<p>				* System.out.println( &quot; user-agent: &quot; + user_agent.substring( 0, user_agent.indexOf( &#39;/&#39; ) ) );</p>
<p>				* } else {</p>
<p>				* System.out.println( &quot;no http&quot; );</p>
<p>				* }</p>
<p>				* if( nd.isTLS() ) {</p>
<p>				* System.out.println( &quot;tls&quot; );</p>
<p>				* CertPath certs = nd.getCertificateChain();</p>
<p>				* if( certs != null ) {</p>
<p>				* System.out.println( &quot; client-side cert:&quot; );</p>
<p>				* int n = 1;</p>
<p>				* for( Certificate c : certs.getCertificates() ) {</p>
<p>				* System.out.println( &quot; cert &quot; + n++ );</p>
<p>				* X509Certificate c509 = (X509Certificate) c;</p>
<p>				* System.out.println( &quot; Subject: &quot; + c509.getSubjectX500Principal().getName() );</p>
<p>				* System.out.println( &quot; Issuer: &quot; + c509.getIssuerX500Principal().getName() );</p>
<p>				* }</p>
<p>				* } else {</p>
<p>				* System.out.println( &quot; no client cert&quot; );</p>
<p>				* }</p>
<p>				* } else {</p>
<p>				* System.out.println( &quot;no tls&quot; );</p>
<p>				* }</p>
<p>				* if( nd.isEndToEndEncrypted() ) {</p>
<p>				* System.out.println( &quot;e2ee&quot; );</p>
<p>				* } else {</p>
<p>				* System.out.println( &quot;no e2ee&quot; );</p>
<p>				* } </p>
<p>				* } else {</p>
<p>				* System.out.println( &quot;NULL networkdata&quot; );</p>
<p>				* }</p>
<p>				* }</p>
<p>				* }</p>
<p>				*</p>
<p>				* &lt;/pre&gt;</p>
<p>				*/</p>
<p>				public interface NetworkData</p>
<p>				{</p>
<p>				/**</p>
<p>				* Returns true if this sync is using HTTP or HTTPS, and false otherwise.</p>
<p>				* </p>
<p>				* @return True if this sync is using HTTP or HTTPS, and false otherwise.</p>
<p>				*/</p>
<p>				public boolean isHTTP();</p>
<p>				/**</p>
<p>				* Returns the value of the last header received by the server with the supplied</p>
<p>				* name.</p>
<p>				*</p>
<p>				* @param the header name to the return the value for</p>
<p>				* </p>
<p>				* @return the last header value associated with the supplied header-name </p>
<p>				* </p>
<p>				* @see NetworkData#getHTTPHeaderValues</p>
<p>				* @see NetworkData#getHTTPHeaders</p>
<p>				*/</p>
<p>				public String getHTTPHeaderValue( String name );</p>
<p>				/**</p>
<p>				* Returns all the header values received by the server associated </p>
<p>				* with the supplied name.</p>
<p>				*</p>
<p>				* @param the header name to the return the values for</p>
<p>				* </p>
<p>				* @return the header values associated with the supplied header-name </p>
<p>				* </p>
<p>				* @see NetworkData#getHTTPHeaderValue</p>
<p>				* @see NetworkData#getHTTPHeaders</p>
<p>				*/</p>
<p>				public List&lt;String&gt; getHTTPHeaderValues( String name );</p>
<p>				/**</p>
<p>				* Returns a Map that maps header names to a List of header-values.</p>
<p>				*</p>
<p>				* @return a Map containing all the headers received by the server.</p>
<p>				* </p>
<p>				* @see NetworkData#getHTTPHeaderValue</p>
<p>				* @see NetworkData#getHTTPHeaderValues</p>
<p>				*/</p>
<p>				public Map&lt;String, List&lt;String&gt; &gt; getHTTPHeaders();</p>
<p>				/**</p>
<p>				* Returns true if this sync is using TLS, and false otherwise.</p>
<p>				*</p>
<p>				* @return True if this sync is using TLS, and false otherwise.</p>
<p>				*/</p>
<p>				public boolean isTLS();</p>
<p>				/**</p>
<p>				* Returns a java.security.cert.CertPath containing any certificates </p>
<p>				* sent by the client. The certificates are all </p>
<p>				* java.security.cert.X509Certificate objects.</p>
<p>				*</p>
<p>				* This function will return a non-null value only if isTLS() is true,</p>
<p>				* the client supplies a certificate using the &quot;identity&quot; stream</p>
<p>				* parameter, and the trusted_certificates option is set on the server. </p>
<p>				* A non-null CertPath will contain the certificates in order,</p>
<p>				* from the self-signed certificate to the peer certificate.</p>
<p>				*</p>
<p>				* @return A CertPath containing the X509 certificates that identify the </p>
<p>				* client, or null if no such certificates were provided.</p>
<p>				*/</p>
<p>				public java.security.cert.CertPath getCertificateChain();</p>
<p>				/**</p>
<p>				* Returns true if this sync is end-to-end encrypted, and false otherwise.</p>
<p>				*</p>
<p>				* @return True if this sync is end-to-end encrypted, and false otherwise.</p>
<p>				*/</p>
<p>				public boolean isEndToEndEncrypted();</p>
<p>				}</p>
<p>				This method was added to the Java DBConnectionContext class:</p>
<p>				/**</p>
<p>				* Returns information about the network streams for a synchronization.</p>
<p>				* This is useful if you wish to authenticate against some other server in </p>
<p>				* the enterprise using the client-side certificate and HTTP headers.</p>
<p>				*</p>
<p>				* To enable collection of network stream data, add collect_network_data=1 to</p>
<p>				* your -x switches. This adds additional per sync memory overhead to store </p>
<p>				* the data.</p>
<p>				* </p>
<p>				* @return information about the network streams used for the request, or</p>
<p>				* null if collection has not been enabled.</p>
<p>				* @see NetworkData</p>
<p>				*/</p>
<p>				NetworkData getNetworkData();</p>
<p>				The .NET class documentation follows:</p>
<p>				namespace iAnywhere.MobiLink.Script</p>
<p>				{</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Contains information about the network streams for a synchronization.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;remarks&gt;</p>
<p>				/// This is useful if you wish to authenticate against some other server in </p>
<p>				/// the enterprise using the client-side certificate and HTTP headers.</p>
<p>				///</p>
<p>				/// To enable collection of network stream data, add collect_network_data=1 to</p>
<p>				/// your -x switches. This adds additional per sync memory overhead to store </p>
<p>				/// the data. If using TLS or HTTPS with client-side certificates, add</p>
<p>				/// trusted_certificates=&lt;certificate file&gt; to have the server ask the client to send</p>
<p>				/// a certificate during the TLS handshake, incurring a time and network cost.</p>
<p>				/// You can obtain a NetworkData object by invoking the getNetworkData method</p>
<p>				/// of the DBConnectionContext class. When using HTTP or HTTPS, it will contain</p>
<p>				/// the header data for the last HTTP request received by the server before the </p>
<p>				/// authenticate scripts are invoked.</p>
<p>				///</p>
<p>				/// &lt;/remarks&gt;</p>
<p>				/// &lt;example&gt;</p>
<p>				/// The following example shows how to get a NetworkData object from the </p>
<p>				/// DBConnectionContext, and prints the data it contains to the log.</p>
<p>				/// &lt;code&gt;</p>
<p>				/// using iAnywhere.MobiLink.Script;</p>
<p>				/// using System.Collections.Generic;</p>
<p>				/// using System.Security.Cryptography.X509Certificates;</p>
<p>				///</p>
<p>				/// public class OrderProcessor {</p>
<p>				/// DBConnectionContext _cc;</p>
<p>				///</p>
<p>				/// public OrderProcessor( DBConnectionContext cc ) {</p>
<p>				/// _cc = cc;</p>
<p>				/// }</p>
<p>				///</p>
<p>				/// public void AuthUser() {</p>
<p>				/// NetworkData nd = _cc.NetworkData;</p>
<p>				/// if( nd != null ) {</p>
<p>				/// if( nd.IsHTTP ) {</p>
<p>				/// PrintLn( &quot;http&quot; );</p>
<p>				/// string user_agent = nd.GetHTTPHeaderValue( &quot;user-agent&quot; );</p>
<p>				/// PrintLn( &quot; user-agent: &quot; + user_agent.Substring( 0, user_agent.IndexOf( &#39;/&#39; ) ) );</p>
<p>				/// } else {</p>
<p>				/// PrintLn( &quot;no http&quot; );</p>
<p>				/// }</p>
<p>				/// if( nd.IsTLS ) {</p>
<p>				/// PrintLn( &quot;tls&quot; );</p>
<p>				/// X509Certificate2Collection certs = nd.ClientCertificates;</p>
<p>				/// if( certs != null ) {</p>
<p>				/// PrintLn( &quot; client-side cert:&quot; );</p>
<p>				/// int n = 1;</p>
<p>				/// foreach( X509Certificate2 x509 in certs ) {</p>
<p>				/// PrintLn( &quot; cert &quot; + n++ );</p>
<p>				/// PrintLn( &quot; Subject: &quot; + x509.SubjectName.Name );</p>
<p>				/// PrintLn( &quot; Issuer: &quot; + x509.IssuerName.Name );</p>
<p>				/// }</p>
<p>				/// } else {</p>
<p>				/// PrintLn( &quot; no client cert&quot; );</p>
<p>				/// }</p>
<p>				/// } else {</p>
<p>				/// PrintLn( &quot;no tls&quot; );</p>
<p>				/// }</p>
<p>				/// if( nd.IsEndToEndEncrypted ) {</p>
<p>				/// PrintLn( &quot;e2ee&quot; );</p>
<p>				/// } else {</p>
<p>				/// PrintLn( &quot;no e2ee&quot; );</p>
<p>				/// } </p>
<p>				/// } else {</p>
<p>				/// PrintLn( &quot;NULL networkdata&quot; );</p>
<p>				/// }</p>
<p>				/// }</p>
<p>				/// }</p>
<p>				/// &lt;/code&gt;</p>
<p>				/// &lt;/example&gt;</p>
<p>				public interface NetworkData</p>
<p>				{</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns true if this sync is using HTTP or HTTPS, and false otherwise. </p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;returns&gt;</p>
<p>				/// True if this sync is using HTTP or HTTPS, and false otherwise.</p>
<p>				/// &lt;/returns&gt;</p>
<p>				bool IsHTTP {</p>
<p>				get;</p>
<p>				}</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns true if this sync is using TLS or HTTPS, and false otherwise.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;returns&gt;</p>
<p>				/// True if this sync is using TLS or HTTPS, and false otherwise.</p>
<p>				/// &lt;/returns&gt;</p>
<p>				bool IsTLS {</p>
<p>				get;</p>
<p>				}</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns the existing connection to the MobiLink consolidated database.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				bool IsEndToEndEncrypted {</p>
<p>				get;</p>
<p>				}</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns the value of the last header received by the server with the supplied</p>
<p>				/// name.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;param name=&quot;name&quot;&gt; the header name to the return the value for &lt;/param&gt;</p>
<p>				/// &lt;return&gt;</p>
<p>				/// The last header value associated with the supplied header-name.</p>
<p>				/// &lt;/return&gt;</p>
<p>				///</p>
<p>				/// &lt;seealso cref=&quot;GetHTTPHeaderValues&quot;/&gt;</p>
<p>				/// &lt;seealso cref=&quot;HTTPHeaders&quot;/&gt;</p>
<p>				///</p>
<p>				string GetHTTPHeaderValue( string name );</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns all the header values received by the server associated with </p>
<p>				/// the supplied name.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;param name=&quot;name&quot;&gt; the header name to the return the values for &lt;/param&gt;</p>
<p>				/// &lt;return&gt;</p>
<p>				/// The header values associated with the supplied header-name.</p>
<p>				/// &lt;/return&gt;</p>
<p>				///</p>
<p>				/// &lt;seealso cref=&quot;GetHTTPHeaderValue&quot;/&gt;</p>
<p>				/// &lt;seealso cref=&quot;HTTPHeaders&quot;/&gt;</p>
<p>				///</p>
<p>				IList&lt;string&gt; GetHTTPHeaderValues( string name );</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns a dictionary that maps header names to a list of header-values.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;return&gt;</p>
<p>				/// A dictionary of header name-value pairs.</p>
<p>				/// &lt;/return&gt;</p>
<p>				///</p>
<p>				/// &lt;seealso cref=&quot;GetHTTPHeaderValue&quot;/&gt;</p>
<p>				/// &lt;seealso cref=&quot;GetHTTPHeaderValues&quot;/&gt;</p>
<p>				///</p>
<p>				IDictionary&lt;string, IList&lt;string&gt; &gt; HTTPHeaders {</p>
<p>				get;</p>
<p>				}</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns an X509Certificate2Collection containing any certificates </p>
<p>				/// sent by the client. </p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;remarks&gt;</p>
<p>				/// This function will return a non-null value only if isTLS() is true,</p>
<p>				/// the client supplies a certificate using the &quot;identity&quot; stream</p>
<p>				/// parameter, and the trusted_certificates option is set on the server. </p>
<p>				/// A non-null CertPath will contain the certificates in order,</p>
<p>				/// from the self-signed certificate to the peer certificate.</p>
<p>				/// &lt;/remarks&gt;</p>
<p>				/// &lt;return&gt;</p>
<p>				/// An X509Certificate2Collection containing the X509 certificates that identify </p>
<p>				/// the client, or null if no such certificates were provided.</p>
<p>				/// &lt;/return&gt;</p>
<p>				X509Certificate2Collection ClientCertificates { </p>
<p>				get;</p>
<p>				}</p>
<p>				} </p>
<p>				}</p>
<p>				The following property was added to the .NET DBConnectionContext:</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Returns information about the network streams for a synchronization.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;remarks&gt;</p>
<p>				/// This is useful if you wish to authenticate against some other server in </p>
<p>				/// the enterprise using the client-side certificate and HTTP headers.</p>
<p>				/// </p>
<p>				/// To enable collection of network stream data, add collect_network_data=1 to</p>
<p>				/// your -x switches. This adds additional per sync memory overhead to store </p>
<p>				/// the data. </p>
<p>				/// &lt;/remarks&gt;</p>
<p>				/// </p>
<p>				/// &lt;returns&gt; information about the network streams used for the request, or</p>
<p>				/// null if collection has not been enabled.</p>
<p>				/// &lt;/returns&gt;</p>
<p>				///</p>
<p>				/// &lt;seealso cref=&quot;NetworkData&quot;/&gt;</p>
<p>				NetworkData NetworkData {</p>
<p>				get;</p>
<p>				}</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696667">696667</a></td>
<td>Upgrading an UltraLite database schema by executing &quot;ALTER DATABASE SCHEMA FROM FILE&quot;, could have resulted in corrupt indexes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696753">696753</a></td>
<td>Under rare circumstances, executing a CREATE TEMPORARY PROCEDURE statement could have crashed the server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696816">696816</a></td>
<td>Transaction log corruption could have occurred at the mirror or copy nodes of a high availability or read-only scale-out system if the following sequence of events took place:</p>
<p>				1) The transaction log was renamed (and a new one started) at the end of a backup of the primary</p>
<p>				2) The mirror or copy node caught up and applies some operations from new transaction log</p>
<p>				3) The mirror or copy node lost connection with its partner or parent</p>
<p>				4) The mirror or copy node reestablished connection with its partner or parent</p>
<p>				Note that if the mirror or copy node restarted prior to reconnecting, corruption would not have occurred. If corruption did occur, an &#39;invalid transaction log&#39; assertion failure on the mirror or copy node was the most likely outcome. This problem has been fixed.</p>
<p>				Also, if a copy node (call it CN) has a parent that was not the primary (call it NP), it was possible for CN to stop applying transactions altogether. CN would have remained running as a read-only node but it would not have applied transactions until the database was manually restarted. For CN to enter this state, the following sequence of events must have occurred:</p>
<p>				1) CN and NP become disconnected or CN just wasn&#39;t running yet</p>
<p>				2) NP renamed the transaction log and started a new one (which happens as a result of copying actions performed at the primary)</p>
<p>				3) CN and NP reconnect (or CN was started)</p>
<p>				In this case, CN will now display a &quot;Recovery complete&quot; message in the console log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR696917">696917</a></td>
<td>With the QAnywhere .NET client, the elapsed time to queue messages was substantially slower than that of version 9.0.2. Several performance optimizations have been made, bringing the timings closer to those for version 9.0.2.</p>
<p>				Note that the SQL client API is no longer supported by default. If the SQL client API is needed, the QAnywhere message store must be initialized using qaagent -si with the new option -sqlapi.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697020">697020</a></td>
<td>Parameters for the Certificate Viewer utility (viewcert) can now be put into a response data file and viewcert can be called as: viewcert @data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697061">697061</a></td>
<td>The sample certificates in rsaroot.crt and rsaserver.id have been regenerated using SHA1 and 2048-bit RSA keys. The original certificates used MD5 and 1024-bit keys.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697188">697188</a></td>
<td>When starting the database server, an error is reported (by displaying the usage text) if a non-numeric parameter is passed where a numeric parameter is expected. For example:</p>
<p>				dbeng12 -n jcs -c nonsense</p>
<p>				However, if the argument to -c started with the a character associated with memory units (k, m, g), no usage text was displayed. For example:</p>
<p>				dbeng12 -n jcs -c garbage</p>
<p>				dbeng12 -n jcs -c magic</p>
<p>				dbeng12 -n jcs -c k</p>
<p>				This has been corrected so that the usage text is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697189">697189</a></td>
<td>The MobiLink replay utility (mlreplay) can unpack blobs incorrectly (i.e. using the wrong type) when determining the number of inserts, updates, and deletes in the recorded protocol file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697235">697235</a></td>
<td>The changes for Engineering case 695216 introduced problems with certificate files (for example, supplying an ECC certificate when an RSA certificate was expected) which would have yielded the error message &quot;An identity password must be specified&quot;, even if a password was specified. This has been fixed. In this example, the correct error message is now &quot;An ECC certificate was supplied where an RSA certificate was expected.&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697289">697289</a></td>
<td>When the Relay Server extension name in the URL was specified with some uppercase characters, the Relay Server extension may have crashed. The Relay Server would have recovered, but active requests involved in the crashing process would have failed. This has been fixed so that uppercase character are now acceptable.</p>
<p>				Note: The farm name and server id in the URL remain case sensitive.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697349">697349</a></td>
<td>The SQL Anywhere HTTP server may have crashed due to rare error condition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697439">697439</a></td>
<td>On rare occasions a time-out of a SQL Anywhere web client procedure may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697440">697440</a></td>
<td>The server may have hung on shutdown if an HTTP client procedure was still active. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697450">697450</a></td>
<td>The Relay Server Outbound Enabler may have crashed in a Relay Server farm environment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697464">697464</a></td>
<td>A synchronization using end-to-end encryption could have crashed on the iPhone. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697491">697491</a></td>
<td>In Windows applications, some out-of-memory conditions that occurred in SQL Anywhere libraries would have resulted in Windows MessageBox pop-ups to diagnose the condition. After the requisite user interaction (clicking OK), the application would terminate. This was problematic for applications that were written as services where no user console was present. Usually, an out-of-memory condition is a sign of a problem in the application&#39;s logic, for example, some resource is not being freed. This behavior has been revised so that when an out-of-memory condition occurs, an entry is now logged to the System Event Log and execution will continue. It is up to the libraries and the application to handle the out-of-memory condition. An application written as a service may terminate unexpectedly when an out-of-memory condition occurs, but this is preferable to entering a suspended state where there is no indication of a problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697593">697593</a></td>
<td>If a row was inserted while a REORGANIZE TABLE process was running, and the inserted row&#39;s primary key was greater than the highest primary key at the time the REORGANIZE started, the server could have possibly entered into an infinite loop and consumed 100% of 1 CPU without terminating. The operation could, however, be cancelled. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697611">697611</a></td>
<td>The Relay Server Outbound Enabler (RSOE) did not log command line arguments on startup and before detecting the availability of a backend server. The command line arguments were only printed after detecting that a backend server was up and while connecting to the Relay Server. This has now been fixed so that command line arguments are printed immediately on startup so that RSOE configurations are visible as early as possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697637">697637</a></td>
<td>The MobiLink Replay utility (mlreplay) could have crashed when using the replay API to customize uploads of tables that had no nullable, signed number, or bit columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697638">697638</a></td>
<td>With UltraLiteJ for Android, it was not possible to retrieve the SQLCODE of the last executed SQL statement if it was a warning (ie. SQLCODE was greater than 0). This has been fixed. The method Connection.getLastWarning() has been added for Android only. This method returns a SQLInfo object, from which can be obtained the SQL code and a localized message. If the last SQL statement resulted in a SQL error code, a ULjException is thrown, as before.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697900">697900</a></td>
<td>Attempting to execute a long SQL statement to create a stored procedure could have failed with a &quot;parse stack overflow&quot; error (SQLCODE -131). This problem may also have occurred when parsing a long and nested SQL statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR697936">697936</a></td>
<td>A statement could have failed with an error (Assertion 106104 failed) if the statement contained an aggregate function AGG( agg_arg ) where:</p>
<p>				- agg_arg was a complex expression</p>
<p>				- a complex sub-expression of the agg_arg was used in the WHERE (or in an ON condition)</p>
<p>				- the optimizer selected an execution strategy involving &quot;distinct-by-rowids&quot; (for example, there was an EXISTS subquery)</p>
<p>				This problem has been fixed.</p>
<p>				For example, the following query could have caused the SELECT statement to fail with the assertion failure error:</p>
<p>				create table T_DBR_1( x int );</p>
<p>				create table T_DBR_2( x int );</p>
<p>				insert into T_DBR_1 select row_num from sa_rowgenerator(1,10);</p>
<p>				insert into T_DBR_2 select row_num from sa_rowgenerator(1,100);</p>
<p>				commit;</p>
<p>				select count(*), sum( complex_expr1+2 )</p>
<p>				from (</p>
<p>				select case R1.x*10 when 11 then R1.x end case complex_expr1</p>
<p>				, 99+R2.x as complex_expr2</p>
<p>				from T_DBR_1 R1 left join T_DBR_2 R2 on R1.x = R2.x</p>
<p>				where exists ( select * from dbo.rowgenerator R3 where R3.row_num+1 = R1.x )</p>
<p>				) D</p>
<p>				where complex_expr1 &lt;&gt; 12 </p>
<p>				or complex_expr2+2 &lt;&gt; 11</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698048">698048</a></td>
<td>When using Xcode 4.2 and running armv6 code (i.e., after enabling armv6 and running on &#39;iPhone 3G&#39; or earlier), UltraLite may have corrupted double (floating point) values stored in the database. This has been fixed. As this seemed to be a compiler issue, it may be better to use an older version of Xcode when targeting these older armv6 devices. Note that switching between Clang and LLVM-GCC will not resolve this issue.</p>
<p>				A workaround has been implemented to avoid the problem with double values, but the above note still applies.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698075">698075</a></td>
<td>The MobiLink server could have crashed while shutting down when it was using an integrated Outbound Enabler. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698076">698076</a></td>
<td>The Relay Server Outbound Enabler could have reported a SYS64 error (&quot;SYS64: The specified network name is no longer available...&quot;) with no ill effect to the client. This would have happened when a backend server timed out the connection, and would often have happened when the HTTP response had been completely received by the Outbound Enabler and the connection remained idle for an extended period of time. Receiving a SYS64 error in that case was false alarm. This has been fixed so that this error is now suppressed and verbosity 4 debug logging will now log this situation as &quot;DoneReceive EOF SYS64...&quot; instead of &quot;DoneReceive EOF&quot;, which is for the normal disconnect situation. For the cases where the SYS64 happen prematurely before the entire HTTP response has been received by the Outbound Enabler, the Relay Server will detect the problem and report and error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698082">698082</a></td>
<td>An attempt by the Relay Server to notify the Outbound Enabler to disconnect the associated backend connection may have been mis-routed and discarded. This would have caused a delay in closing the backend connection, together with a SYS64 error, when the backend server eventually timed out the connection. The conditions for this problem were:</p>
<p>				- TCP load balancer without stickiness was used in front of a Relay Server farm of size greater than 1; and</p>
<p>				- an application session had more than one HTTP request; and</p>
<p>				- the session had crossed over to a Relay Sever different from the one where the session started and an I/O error or timeout occurred with the client connection.</p>
<p>				The problem was that the Outbound Enabler was misinforming the Relay Server for a change in upward packet destination, when a session was migrated from one Relay Server to another, on a clear request-response boundary. This has now been fixed so that the Outbound Enable is stopped from misinforming the Relay Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698198">698198</a></td>
<td>The -x option of the MobiLink Server now supports the trusted_certificates option when encryption is in effect. The option is comparable to and symmetric with the client-side option of the same name (see Engineering case 696697).</p>
<p>				The usage is:</p>
<p>				mlsrvXX ... -x tls(...;trusted_certificates=certificate_file) ...</p>
<p>				mlsrvXX ... -x https(...;trusted_certificates=certificate_file) ...</p>
<p>				Used in the simplest way, the trusted_certificates option provides validation of clients, but without other capabilities like certificate revocation lists. To implement a certificate revocation list and otherwise integrate with your enterprise certificate infrastructure, you&#39;ll need to make use of the NetworkData.ClientCertificates API, described in the email forwarded below.</p>
<p>				The simplest example to illustrate this is:</p>
<p>				client --&gt; ML server --&gt; Enterprise certificate infrastructure</p>
<p>				Use the trusted_certificates option to ensure the client certificate is valid, then use the NetworkData.ClientCertificates API to further authenticate the certificate in the authenticate_user script (written in Java or .NET).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698201">698201</a></td>
<td>The Server could have been unresponsive for a long period of time when a backup was starting. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698218">698218</a></td>
<td>An attempt by the Relay Server to notify the Outbound Enabler to disconnect the associated backend connection may have been mis-routed and discarded. This would have caused a delay in closing the backend connection, together with a SYS64 error, when the backend server eventually timed out the connection. The conditions for this problem were:</p>
<p>				- TCP load balancer without stickiness was used in front of a Relay Server farm of size greater than 1; and</p>
<p>				- an application session had more than one HTTP request; and</p>
<p>				- the session had crossed over to a Relay Sever different from the one where the session started and an I/O error or timeout occurred with the client connection.</p>
<p>				The problem was that the Outbound Enabler was misinforming the Relay Server for a change in upward packet destination, when a session was migrated from one Relay Server to another, on a clear request-response boundary. This has now been fixed so that the Relay Server is protected from being misinformed by Outbound Enablers older than 12.0.1.3574.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698219">698219</a></td>
<td>In very rare timing dependent cases, a copy node could have failed to connect to its alternate parent or the root if its parent was unavailable. Additionally, in order for this to have occurred, the copy node&#39;s connection to its parent would have had to disconnect for some reason shortly after it connected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698236">698236</a></td>
<td>The drive_model property could have returned a random string of characters if the OS did not make the corresponding property available. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698386">698386</a></td>
<td>The Server could have hung in very rare cases if a connection made a Remote Data Access request that required a remote connection to be established. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR698526">698526</a></td>
<td>Windows 7 and Windows 2008R2 support systems with more than 64 logical processors; however, it does so by partitioning them into &quot;groups&quot; with no more than 64 processors in each group. Unless an application takes additional measures to take advantage of multiple processor groups, the application will execute only within one processor group and be unaware that other processors are available. Previously, SQL Anywhere would only recognize and utilize the processors in the group to which it was assigned by the OS at startup, but now SQL Anywhere recognizes and supports all processors on Windows 7, Windows 2008R2.</p>
<p>				For more information on Windows processor groups, see the following:</p>
<p>				http://blogs.msdn.com/b/saponsqlserver/archive/2010/09/28/windows-2008-r2-groups-processors-sockets-cores-threads-numa-nodes-what-is-all-this.aspx</p>
<p>				http://msdn.microsoft.com/en-us/library/windows/desktop/dd405503</p>
<p>				In addition to supporting more than 64 processors on Windows, SQL Anywhere now uses the hardware topology as reported by Windows for license enforcement on all supported versions of Windows except Windows 2003 and Windows XP 64-bit edition where the operating system is known to misrepresent the actual topology. Previously, SQL Anywhere relied solely on its own hardware detection on x86 and x64 Windows platforms. By relying on the topology reported by Windows, SQL Anywhere will have a more consistent view of the topology when running in a VM.</p>
<p>				These processor topology changes include fixes on other platforms too. On Solaris prior to this change, if the standalone engine was run within a processor set it would bind itself to a single random processor in the set. Now if the standalone engine is run within a processor set, it binds to the lowest numbered processor in the set. Outside of a processor set, the behaviour has not changed: we bind to the lowest processor that is not bound to any set.</p>
<p>				Also on Solaris, the database server considered processors that were online but non-interruptible as offline. SQL Anywhere would not bind to such a processor. This problem has also been fixed.</p>
<p>				SQL Anywhere now properly avoids processors that are offline when the server starts; however, no attempt is made to adapt to processors that are taken offline or brought online during runtime.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699007">699007</a></td>
<td>Calls to ODBC functions SQLGetDiagRec(with HandleType == SQL_HANDLE_ENV) or SQLGetDiagField(with HandleType == SQL_HANDLE_ENV and DiagIdentifier==SQL_DIAG_MESSAGE_TEXT) in the SQL Anywhere ODBC driver may caused a crash under certain circumstances. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699022">699022</a></td>
<td>If a server was started with the &quot;remote_data_access&quot; secure feature turned on (see -sf command line option), and an application attempted to use the secure feature and subsequently received an error indicating that Remote Data Access was disabled, then any subsequent remote calls would incorrectly have returned a &#39;cursor already open&#39; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699214">699214</a></td>
<td>In a mirroring setup of servers running on multiple host machines, it was possible for the system procdure sa_mirror_server_status() to return incorrect information if the hosts did not have the exact same time. In particular, it was possible for it to appear that some servers were not receiving log pages, even if they were up to date. This has been fixed. The &quot;last_updated&quot; column in the table will always report the time relative to the server named in the &quot;server_name&quot; column.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699241">699241</a></td>
<td>Using the SQL Anywhere ADO .NET Data Provider, the continuous closing and reopening of a pooled connection was slower than it was under version 9.0.2. This problem has been corrected.</p>
<p>				SAConnection conn = new SAConnection( connectString );</p>
<p>				conn.Open();</p>
<p>				.</p>
<p>				.</p>
<p>				.</p>
<p>				conn.Close();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699351">699351</a></td>
<td>When connecting to an SQL Anywhere database from Sybase Central or the Interactive SQL utility, a standard connection dialog is displayed to gather connection options. On the Identification page of that dialog there is a drop-down named &quot;Authentication&quot;. When &quot;Windows Integrated Login&quot; was chosen in the drop-down the choice was ignored and the value &quot;Database&quot; was used instead. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699355">699355</a></td>
<td>Finer selectable items in Deployment wizard to get smaller MSI files</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699387">699387</a></td>
<td>If a server, or one of the SA client utilities, attempted to launch a secondary application (like an external environment), then the secondary application may have failed to start properly when the command line for the secondary application contained characters that were not 7-bit ASCII. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699393">699393</a></td>
<td>With UltraLiteJ for Android, closing a PreparedStatement after its Connection object had been released caused the application to crash. The same was true for a ResultSet object. This has been fixed so that a ULjException with error code -908 &quot;Invalid operation on a closed object&quot; is now thrown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699537">699537</a></td>
<td>If several Open Client or jConnect applications attempted to connect to a server using the extended encrypted password protocol, then there was a very small chance the server would crash if all of the extended encrypted password connection requests were made at the same time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699667">699667</a></td>
<td>If an application made a Java external environment call that returned a SQLException on a JDBC statement, then the next call to the Java external environment would have returned with a NullPointerException if there are no other Java calls in between. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699687">699687</a></td>
<td>The UltraLite runtime now supports RSA TLS and HTTPS on Pocket PC 2003 devices. There is no support for ECC or FIPS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699703">699703</a></td>
<td>In a mirroring setup, it may have been possible for the sa_mirror_server_status() system procedure to report that the primary server had a higher log offset than the mirror or copy nodes, and it could have remained this way until the server received further transactions. This has been fixed. The log offset reported for the primary server will now report the offset that has been pushed to any mirrored servers.</p>
<p>				Note that this was not a problem with the mechanism that pushes log pages to copy nodes and mirror, but with the way the offset was reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699839">699839</a></td>
<td>A hashing algorithm used to speed the access to rows with indexes involving timestamp with time zone columns, in rare conditions, could have performed slightly worse than optimal. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699971">699971</a></td>
<td>The index hash for Timestamp with Time Zone columns was not properly incorporating the offset component. This could have lead to an incorrect ordering of timestamp values that had</p>
<p>				varying timezone offsets. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR699988">699988</a></td>
<td>When Sybase Central attempted to execute SQL that used a secured feature, an error would have been reported immediately. Now, a prompt is displayed, allowing the server&#39;s secure feature key to be specified, after which the original SQL statement is re-executed.</p>
<p>				Note that the server must be started with a secure feature key (-sk) to make use of this feature.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700008">700008</a></td>
<td>Under rare circumstances, the server may have failed assertion 101413 - &quot;Unable to allocate a multi-page block of memory&quot;. This was more likely when many (~5 or more) databases were running within a server, and when the server was running with a small cache (less than 100M per database); and was more likely to be seen when starting a new database after the server has been running for some time. This has been fixed. A workaround is to start the server with several extra databases, and then stop them as soon as the server is started.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700113">700113</a></td>
<td>Given a nullable column, or set of columns, in a nullable index with both zero (or empty string/binary, etc) and null values inserted, the following may have occurred: </p>
<p>				- searching for the zero or null value (or empty string/binary, etc) would have resulted in an incorrect result set </p>
<p>				-) rows with zero or null values may have been intermixed order-wise when scanning the index (i.e. select * from mytable order by col_in_bad_index) </p>
<p>				This has been fixed.</p>
<p>				Note, primary keys, unique keys (constraints) and not null indexes are not affected by this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700123">700123</a></td>
<td>If two connections made external calls that in turn attempted to access rows that the other connection already had a lock on, then the server would incorrectly hang the two connections rather than returning a deadlock error to one of the connections involved. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700132">700132</a></td>
<td>The Certificate Creation utility (createcert) would have fail to create a certificate with the error &quot;Error occurred encoding object&quot; when run on a leap day, and the expiry for the certificate was not a leap year. This has corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700276">700276</a></td>
<td>The MobiLink server now supports the Oracle XMLTYPE data type. This Oracle data type can be mapped to the SA/UL XML data type. However, the Oracle database server does actually validate the data before storing it into a XMLTYPE column and SA/UL does not. Therefore, users must make sure the upload XML data are valid XML documents.</p>
<p>				Small XML documents with a length less than or equal to 32 KB can be uploaded into and downloaded from an Oracle database with Oracle PL/SQL statements. However, when the length of XML documents is great than 32 KB, the upload XML documents may need to be uploaded into a (global) temporary table by the upload_insert and upload_update scripts and the upload data can then be converted and stored into the actual sync table in the end_upload_rows or end_upload script.</p>
<p>				The following section gives sample upload and download scripts to upload and download XMLTYPE objects between an Oracle consolidated and SQLAnywhere remote databases. Here we assume our upload table is defined as</p>
<p>				create table test (pk int not null primary key, c1 XMLTYPE) </p>
<p>				in the Oracle consolidated database and</p>
<p>				create table test (pk int not null primary key, c1 XML)</p>
<p>				in the SA remote database. Then the upload and download scripts for the test table could be defined below:</p>
<p>				1) All XML documents are less than or equal to 32KB long:</p>
<p>				The upload and download scripts can be written as</p>
<p>				a) upload_insert:</p>
<p>				declare v_pk integer; v_c1 clob; x_c1 xmltype; </p>
<p>				begin </p>
<p>				v_pk := {ml r.pk}; </p>
<p>				v_c1 := {ml r.c1};</p>
<p>				x_c1 := XMLTYPE.createXML( v_c1 ); </p>
<p>				insert into test values( v_pk, x_c1 ); </p>
<p>				end;</p>
<p>				b) download_cursor:</p>
<p>				select pk, XMLSERIALIZE( content c1 ) from test</p>
<p>				This upload_insert script works well, when the XML data length is less than or equal to 32 KB. However, if the XML data length is greater than 32 KB, the Oracle server could complain with the following error:</p>
<p>				ORA-01460: unimplemented or unreasonable conversion requested</p>
<p>				when the MobiLink server was trying to execute the upload_insert script with the upload data.</p>
<p>				2) Some of the XML documents are greater than 32KB long:</p>
<p>				If there are any XML documents greater than 32 KB long, we are not able to use Oracle PL/SQL to upload data into the Oracle XMLTYPE columns. To work-around this problem, the upload XML data needs to be uploaded in a global temporary table:</p>
<p>				a) upload_insert:</p>
<p>				The upload_insert script will upload the XML documents into a global temporary table in the Oracle consolidated database and the global temporary table is defined as</p>
<p>				create global temporary table tmp_test (pk int, c1 CLOB)</p>
<p>				then the upload_insert script can written as</p>
<p>				insert into tmp_test values( {ml r.pk}, {ml r.c1} )</p>
<p>				Please note, the c1 column in the temporary table must have the CLOB data type.</p>
<p>				b) end_uoload_rows:</p>
<p>				The end_upload_rows script first retrieves the XML documents from the global temporary table, converts it to XML documents, and then stores the XML data into the test table. Here is the end_upload_rows script:</p>
<p>				insert into test (pk, c1) (select pk, XMLTYPE.createXML(c1) from tmp_test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700287">700287</a></td>
<td>A security issue with Remote Data Access has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700309">700309</a></td>
<td>If there was an apostrophe in a user name or table name, a verbose unload (dbunload -v or an unload in Sybase Central) would have failed, and would have reported a syntax error similar to the following:</p>
<p>				***** SQL error: Syntax error near &#39;xxx&#39; on line 1</p>
<p>				Also, during reload, extra apostrophes would be displayed in progress messages containing table, index, view, procedure or trigger names. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700315">700315</a></td>
<td>The MobiLink Replay utility could have crashed if the GetNumRecordedInserts, GetNumRecordedUpdates, or GetNumRecordedDeletes callbacks were called from the replay DLL with values not explicitly given by MLReplay when calling the GetUploadTransaction callback. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700426">700426</a></td>
<td>If files were opened concurrently by two threads of the same process on Windows Mobile / Windows CE devices, the two threads could have been assigned the same POSIX file handle number and IO could then have been directed to the wrong file. This problem, given the nature of Windows Mobile devices, was very unlikely to occur and has been fixed.</p>
<p>				Also, a structure used to query the OS version on Windows Mobile / Windows CE devices was not initialized correctly; however, it is not believed ever to have caused a problem. This problem has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700458">700458</a></td>
<td>Support has now been added to the SQL Anywhere ADO.NET provider for latest release of Microsoft Entity Framework - EF 4.3. The major new feature of EF 4.3 is migration tools which enable the user to keep track of the data model changes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700715">700715</a></td>
<td>Downloads of small requests while the Relay Server Outbound Enabler down channel was under low load situation, may have suffered 200ms TCP Nagling latency. This has been fixed by inserting a pad of Ethernet MTU size in order to defeat the Nagling latency at the end of foreseeable download data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700759">700759</a></td>
<td>Some wording in the Relay Server quick setup script has been corrected. The software is not affected by this change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700788">700788</a></td>
<td>Affinity cookies assigned by the Relay Server could have become invalid to the Outbound Enabler over time when the Relay Server was being removed from a Relay Server farm. An Outbound Enabler receiving such a request will trigger an unnecessary internal restart that drops other innocent requests. This has been fixed so that the Outbound Enabler will report an OE_SESSION_ERROR to the Relay Server without affecting other ongoing requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700803">700803</a></td>
<td>Client software is expected to have full control of Relay Server affinity using standard HTTP cookie reflection, or proprietary Relay Server affinity header reflection. However, as the Relay Serve usage evolved to cover many kinds of clients, some client software behaves unreasonable in the sense that it was stubbornly reusing the same invalid cookie repeatedly after an error. The expected behavior was either the client software would have discarded the cookie after error, or add an IAS-RS-AF=new URL query parameter to restart a new application session with a new cookie. The Relay Server cookie can become invalid for various reasons including application timeout, Relay Server farm member removal, communication error between OE and the backend server, and others. If the client software doesn&#39;t conform to the expectation, the application could have been stuck with an invalid cookie until it was deleted manually. This fix is to have the Relay Server explicitly instruct the client software to expire the cookie immediately when the Relay Server knows the affinity has became invalid. Again, not all stubborn client software can benefit from this, but those that support expires cookie attribute (pre-RFC Netscape draft spec for cookies) should.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700882">700882</a></td>
<td>If a high availability mirror, or read-only scale-out copy node, needed to restart its database, it could in rare timing dependent cases caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700903">700903</a></td>
<td>In a read-only scale-out setup, it was possible for adding a copy node using &quot;CREATE/ALTER MIRROR SERVER ... USING AUTO PARENT&quot; to fail with the error &quot;Cannot assign automatic mirror server parent&quot;, if there were no connected servers that had available spaces in its fan-out. For example, if the root server had ten children and had a fan out of ten, all of which were disconnected, adding another server would fail. This has been fixed. Under these circumstances, the new server will be added as a child of the auto add server. </p>
<p>				Auto-parenting uses sa_mirror_server_status() to determine what servers are connected. In a read-only scale-out setup, it was possible for sa_mirror_server_status() to report a copy node as connected when it was actually shut down. This would have happened when the copy node and its parent were shut down in quick succession. This has been fixed. Now, the copy node will appear as connected for up to two minutes, at which point the server will be marked as disconnected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700928">700928</a></td>
<td>The Entity Framework migration tools could have thrown an exception if the schema name of an entity set was not specified.</p>
<p>				For example:</p>
<p>				public class BlogContext : DbContext</p>
<p>				{</p>
<p>				public DbSet&lt;Blog&gt; Blogs { get; set; }</p>
<p>				}</p>
<p>				[Table( &quot;Blogs&quot; )] // [Table( &quot;Blogs&quot;, Schema = &quot;GROUPO&quot; )]</p>
<p>				public class Blog</p>
<p>				{</p>
<p>				public int BlogId { get; set; }</p>
<p>				public string Name { get; set; }</p>
<p>				public string Url { get; set; }</p>
<p>				public int Rating { get; set; }</p>
<p>				}</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR700997">700997</a></td>
<td>On Windows systems, the error &quot;R6025 - pure virtual function call&quot; would have caused a dialog box to be opened, even if the executable should not interact with the desktop. This has been fixed so that no dialog box is now opened.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701061">701061</a></td>
<td>Uploading small requests while the Relay Server Outbound Enabler up-channel was under a low load situation may suffered 200ms TCP Nagling latency. This has been fixed by inserting a pad of Ethernet MTU size in order to defeat the Nagling latency at the end of foreseeable upload data. This change introduced a new up_pad_size property in the [option] section of the Relay Server config file. The default value is 1460 which is suitable for Ethernet. This change can be turned off by setting up_pad_size to 0. Online pad size adjustment is supported but it will take effect only after the Outbound Enabler reconnects the up-channel.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701151">701151</a></td>
<td>Read-only connections on an OEM server were not able to drop local temporary database objects. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701170">701170</a></td>
<td>In rare timing dependant cases, dropping the mirror server definition for an arbiter in a mirroring configuration could have caused the primary server to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701212">701212</a></td>
<td>The Relay Server responded with an HTTP 401 status code when the client accessing the backend farm didn&#39;t fulfill the client security requirement specified by the client_security property in the backend_farm section in the Relay Server configuration. The message had a typo that has now been corrected to:</p>
<p>				&quot;The backend farm rejected this client security&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701327">701327</a></td>
<td>If an application attempted to fetch data from an ADS proxy table using a 64-bit server, then there was a very good chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701339">701339</a></td>
<td>The server may have crashed when using a cached query plan if the plan useed a row column variable in a Distinct Hash strategy and the row column variable was of type string or numeric. Row column variables are column names that are used with a REFERENCING table alias name from the CREATE TRIGGER. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701342">701342</a></td>
<td>The following remote types were not supported by the MobiLink Java and .NET direct row APIs:</p>
<p>				NCHAR</p>
<p>				NVARCHAR</p>
<p>				LONG NVARCHAR</p>
<p>				VARBIT</p>
<p>				LONG VARBIT</p>
<p>				XML</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701343">701343</a></td>
<td>Unnecessary cast exceptions could have occurred when using the MobiLink .NET direct row API with SMALLINT and TINYINT columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701344">701344</a></td>
<td>A security issue with the MobiLink direct row API has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701347">701347</a></td>
<td>The varchar(max) and varbinary(max) types in Microsoft SQL Server did not work when using the MobiLink .NET-ODBC bridge. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701348">701348</a></td>
<td>Exceptions were not thrown when strings containing invalid timestamps were assigned to TIMESTAMP WITH TIME ZONE columns in the MobiLink Java and .NET direct row APIs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701349">701349</a></td>
<td>It was possible to call PreparedStatement.setTime for columns that were not times or dates in the MobiLink direct row API. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701364">701364</a></td>
<td>Queries with derived tables or views using UNION, EXCEPT, INTERSECT orRECURSIVE constructs may have returned incorrect results. For this problem to have occurred at least one child of the derived table or view would have had a LIMIT, window function, or DISTINCT clause, and there was a predicate referring only to the columns of the derived table or the view in the main query block. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701382">701382</a></td>
<td>The Relay Server and the Outbound Enabled log files contained an error in the UTC time zone offset log line. This has been fixed. The correct log line now reads: &quot;Time zone offset from UTC in minutes:&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_96.htm#CR701470">701470</a></td>
<td>The Certificate Viewer utility (viewcert) now accepts the -q parameter, which will suppress all output from the command, including error messages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701477">701477</a></td>
<td>A SQL Anywhere server may have hang on shutdown with 100 percent CPU usage if HTTP requests were concurrently in process. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701635">701635</a></td>
<td>Creation of a SAMonitor resource to monitor Relay Server farms via HTTPS may have failed, while HTTP worked. This would have happened when the Relay Server address specified in the Relay Server configuration file was missing the domain suffix. Even when the load balancer address given to the SAMonitor was a FQDN, the resource creation may have failed. This has now been fixed by making the monitor attempt its best effort to apply the domain suffix of the load balancer to the Relay Server address when it is missing while HTTPS is in use. If any of the Relay Server addresses, or the load balancer address, are specified in IPv6 or IPv4 numeric notation, then this fix will not kicks in and authentication will continue to fail. Use of FQDNs is required by the SAMonitor when HTTPS is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701648">701648</a></td>
<td>Procedure profiling results would have shown an invalid execution time if the total execution time of the request exceeded 4,294,967,295 microseconds. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701651">701651</a></td>
<td>Relay Server Outbound Enabler up channel packet header logging is enabled by setting the verbosity level (-v) to 3 or higher. The logs are useful for the analysis of certain issues. Two of the packet headers were carrying incomplete information:</p>
<p>				&lt;UpChannel-0000&gt; 499 RS_CLI_SESSION_BEGIN(snum=0000 sfp=995770b6 ridx=0)</p>
<p>				&lt;UpChannel-0000&gt; 557 RS_CLI_REQUEST_BEGIN(oidx=0 snum=0000 sfp=995770b6 ridx=0 sidx=0)</p>
<p>				This has been fixed to complete the logging like the following:</p>
<p>				&lt;UpChannel-0000&gt; 499 RS_CLI_SESSION_BEGIN(snum=0000 sfp=7329322a ridx=0 appt=2 per=1)</p>
<p>				&lt;UpChannel-0000&gt; 557 RS_CLI_REQUEST_BEGIN(oidx=0 snum=0000 sfp=7329322a ridx=0 sidx=0 appt=2 per=0)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701652">701652</a></td>
<td>When shutting down a database server on a Windows machine with a SQL Anywhere Volume Shadow Service (VSS) writer service active, the database server could have logged the message &quot;Registered with the SQL Anywhere Volume Shadow Copy Service writer.&quot; many times to the console log. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701654">701654</a></td>
<td>With UltraLiteJ for Android, the validateDatabase method has been added to the Connection class:</p>
<p>				public void validateDatabase(</p>
<p>				int flags,</p>
<p>				ValidateDatabaseProgressListener listener,</p>
<p>				String tableName )</p>
<p>				The interfaces ValidateDatabaseProgressData, and ValidateDatabaseProgressListener have also been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701661">701661</a></td>
<td>Using the Certificate Creation utility with the -c option (&quot;Read the signer&#39;s certificate from the specified file&quot;) could have caused it to crash. This has been fixed.</p>
<p>				A workaround is to use the interactive prompt instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701776">701776</a></td>
<td>Support has now been added for Visual Studio 2012. The utility SetupVSPackage will now create the proper registry keys for Visual Studio 2012.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701779">701779</a></td>
<td>For the UltraLite C++ API, methods using wide characters (UTF-16/UCS-2) are generally only supported for Win32. This change adds wide character support for the character data streaming methods, on iOS. The affected methods are:</p>
<p>				ULPreparedStatement::AppendParameterStringChunk</p>
<p>				ULResultSet::GetStringChunk</p>
<p>				ULResultSet::AppendStringChunk</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR701922">701922</a></td>
<td>Use of some of the HTTP samples verbatim in a production system could have caused exposure to Cross Site Scripting (XSS) issues. This has been fixed.</p>
<p>				Note that it is highly recommended that application developers and DBAs always review their web application code for possible security vulnerabilities before they are put into production. The Open Web Application Security Project (https://www.owasp.org) contains more information on how to secure your web application.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702006">702006</a></td>
<td>Indexes in UltraLiteJ now support index hashing using the &quot;WITH MAX HASH SIZE x &quot; SQL clause. Index hashing improves inserts, updates, deletes and searches when the columns being indexed have a good distribution of values (for example strings that do not have a common prefix) at the cost of bigger index structures. Hashed indexes locate rows first using the hash, then direct row comparison to differentiate rows with the same hash value. If the hash size is sufficiently big, the hash will uniquely identify a row without needing to read and compare the row. However, if the hash size is too big and the page size small, the index may need too many database pages whose maintenance costs offset the benefits of hashing. Columns of type REAL, DOUBLE, GEOMETRY, LONG BINARY and LONG VARCHAR are not hashed (LONG columns cannot be indexed in UltraLiteJ). If the SQL statement creating an index does not specify a hash size, the value of the Connection.OPTION_MAX_HASH_SIZE option is used as the default. </p>
<p>				In addition to hashing support, performance improvements were made to indexing to reduce the number of pages written when committing inserts, updates and deletes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702086">702086</a></td>
<td>If a new IP address was added to a machine running a SQL Anywhere server, the server may have failed to recognize the new IP address. This would only have occurred when the server was running on a portable device (eg. laptop), or if the -xm switch was specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702184">702184</a></td>
<td>If an application had a Java stored procedure defined with SQL SECURITY INVOKER, and the application subsequently called the stored procedure with two different effective userids from the same database connection, then the server would have incorrectly given a &quot;table ExtEnvMethodArgs not found&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702214">702214</a></td>
<td>If an application called an external environment procedure that was defined with SQL SECURITY INVOKER and then subsequently made a stored procedure call using the server side connection, then there was a chance the call would have incorrectly fail with a permission denied error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702274">702274</a></td>
<td>A potential security problem with the server has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702296">702296</a></td>
<td>When generating a reload.sql script, the server did not double-up single quotes and backslash characters in constant strings for dbspace file names in the CREATE DBSPACE statement, directory server paths in the CREATE SERVER statement, or AT location clauses of the CREATE EXISTING TABLE statement. As a result running the reload script would have failed and the generated objects would not have worked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702423">702423</a></td>
<td>While a copy node server was shutting down or restarting a mirrored database, the database may have made connections to the copy node&#39;s parent. This has been fixed. The copy node will no longer make connections to its parent while the database is shutting down or restarting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702506">702506</a></td>
<td>The LOCATE function may have returned an incorrect result if the search string contained multi-byte characters. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702528">702528</a></td>
<td>The SQL Anywhere Monitor for Relay Server was the only means to observe the breakdown of time costs in different phases of a request, response processing. There were two issues with this:</p>
<p>				1. The numbers rendered through the browser were aggregated and averaged across all requests going to the same backend server. So individual request tracing was not viewable.</p>
<p>				2. The Monitor was not included in any rebundling of the Relay Server.</p>
<p>				The verbose logging (-v 4) of the Relay Server Outbound Enabler (RSOE) of the DoneReceive event has now been enhanced to include a Since Last Sent (sls) number. The sls measures number of millisecond elapsed since the completion time of the last send that occurred on the same socket that had just completed a receive operation. This can be used as a measure of the backend server processing time, which includes the communication cost of sending the last packet (as the OS can declare completion before the packet is actually flushed) between the RSOE and the backend server (which normally should be minimal when they are local to each other). Here is a sample log line:</p>
<p>				&lt;Backend-0000&gt; DoneReceive: sidx=0 ridx=0 socket=01227b58 sfp=f6c1ee75 len=65514 usage=8192 (12%) sls=0</p>
<p>				If the backend server also reports a value for the overall request-response processing time, the associated sls value can be used to verify the qualify of the measurement without need to insert third party sniffing tools, which may, in some cases, change the network topology and invalidate the study.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702731">702731</a></td>
<td>In rare, timing dependent cases when using High Availability or Read-Only Scale Out, it may have been possible for the server to crash, hang, behave in unexpected ways, or have an incorrect state. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702732">702732</a></td>
<td>Starting the engine with many databases and not stopping each of them after validating, could cause memory exhausted error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702733">702733</a></td>
<td>This change extends the fix for Engineering case 693560. In this case, the parallel hash filter could deadlock if a runtime error occurred while it was fetching. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702738">702738</a></td>
<td>The server could have become deadlocked when updating blobs in a table with articles or triggers. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702761">702761</a></td>
<td>Synchronizations would have failed if the length of the parameter string for a sync profile was larger than 64K. The error reported could have varied, but SQLE_SYNC_INFO_INVALID would have been most likely. This error could have occurred with the .NET API if the application set sync authentication parameters whose total length approached or exceeded 64K. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702774">702774</a></td>
<td>When connected to a database which was mirrored, the server name displayed in the Interactive SQL title bar and the server name printed by the DESCRIBE CONNECTION statement, was inadvertently the alternate server name, rather than the main server name. The alternate server names tend to be long and end in a long sequence of letters and numbers. This has been corrected so that the main server name is now always used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702818">702818</a></td>
<td>If a client with an old cookie accessed a blacked out backend service, the subsequent requests when the backend server comes back up will suffer load latency under low load situations. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR702931">702931</a></td>
<td>In very race cases, the server would have consumed 100% CPU usage while attempting to stop a database. For this to have occurred, the database being stopped needed to make heavy use of scheduled events. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703079">703079</a></td>
<td>If there were connections on the mirror database, or a copy node for a mirror database, that were modifying a temporary table at the same time as the transaction log was renamed, then the copy node or mirror could have failed in timing depending cases. In particular, the mirror server or copy node could have crashed or the transaction log on the mirror server or copy node could have been corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703083">703083</a></td>
<td>If the number of databases on the command line was near to or greater than the server concurrency setting (-gn), then the server could have crashed, or reported any of various assertion failures, during startup. The Personal Server was particularly susceptible since its default concurrency is only 20. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703100">703100</a></td>
<td>When querying the TcpipAddresses, HttpAddresses, or HttpsAddresses properties from a server running on a Unix platform, any IPv6 addresses may have included a zone indicator (eg. the &quot;%2&quot; in &quot;(fd77:55d:...:6a1f%2):2638&quot;. This was not useful outside the server&#39;s machine and should not have been included in the value of this property. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703102">703102</a></td>
<td>When comparing two databases, running the generated script in Interactive SQL would have caused syntax errors to be reported if the script contained Transact-SQL statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703104">703104</a></td>
<td>When translating a transaction log with certain types of corruption, the Log Translation utility could have terminated silently, without reporting a problem. To the user, it would have appeared as if the translation completed successfully. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703225">703225</a></td>
<td>If a database had been created with a server from a version prior to 11.0.0, and it contained a proxy table with an index, then unloads of this database using a server from version 11.0.0 or later&#39; would have generated an incorrect CREATE INDEX statement containing the IN &quot;SYSTEM&quot; clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703229">703229</a></td>
<td>Performance improvements have been made when adding rows sequentially into an index. For example, a table whose primary key consists of an autoincrement column, or an initial download with a download cursor that sorts the download by primary key. When doing single inserts, UltraLiteJ now does less page reads and writes. When doing a block of inserts, the page read and writes may remain the same but CPU work has been greatly reduced.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703234">703234</a></td>
<td>If a parallel backup with backup option WITH CHECKPOINT LOG RECOVER had finished its write pass but had disk I/O errors during its completion pass, then, in exceptionally rare circumstances, the backup may have incorrectly been marked as valid and no SQL error was returned. Also, if a parallel backup of the database file was cancelled after its read pass then the server may have crashed. Both problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703288">703288</a></td>
<td>When using a &quot;managed resource only&quot; deployment (such as Microsoft&#39;s ClickOnce) for .NET applications, delivering SQL Anywhere native dlls through this mechanism may have been a problem. A demonstration project DeploymentUtility (with source code) has been added to help with this. It adds SQL Anywhere native dlls as embedded resources, and copies them to a local drive when a .NET application is deployed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703450">703450</a></td>
<td>Columns containing TIME values were not properly hashed in indexes. Although values were correctly ordered, they were not as efficient. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703452">703452</a></td>
<td>If a SQL Anywhere client application exited abnormally, System V semaphores that were allocated by the SA libraries were not cleaned up. This problem affected all Unix platforms except Solaris, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703642">703642</a></td>
<td>If a database had a user defined type based on nchar, nvarchar or long nvarchar, then attempting to fetch a value defined with that user defined type would have incorrectly returned a binary value when the connection was via jConnect or Open Client. This problem has now been fixed.</p>
<p>				Note that fetching nchar values defined with the nchar, nvarchar or long nvarchar base datatypes is not affected by this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703780">703780</a></td>
<td>If a download for a particular table contained two rows with the same primary key value, UltraLiteJ would have thrown an exception with the warning SQLE_DUPLICATE_ROW_FOUND_IN_DOWNLOAD. This may have confused users into believing the download continued, when in fact the download had been rolled back. This has been fixed. UltraLiteJ now throws SQLE_PRIMARY_KEY_NOT_UNIQUE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703785">703785</a></td>
<td>With UltraLiteJ for Android, DatabaseManager.release() had undesirable effects - it may have caused erratic behaviour when the application was relaunched after it was used when the application closes after initial launch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703801">703801</a></td>
<td>HTTPS synchronizations using iOS 5 to a Windows (or Linux) Mobilink server, could have failed with secure handshake errors. The synchronization would have worked to a Mac OS X Mobilink server. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703805">703805</a></td>
<td>The MobiLink server on Windows would have failed to load an identity created by the Certificate Creation utility (createcert) run on Mac OSX with internal error: &quot;ssl_CreateCertList(1) returned 12394&quot;. This has been fixed.</p>
<p>				Note, this failure could also have occurred for MobiLink clients loading a client identity. This has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703812">703812</a></td>
<td>This is a test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703815">703815</a></td>
<td>This is a test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703816">703816</a></td>
<td>This is a test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703817">703817</a></td>
<td>This is a test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703819">703819</a></td>
<td>Rows with null values in BINARY(x) or UNIQUEIDENTIFIER columns, or small binary values in BINARY(x) columns (for example a 2 byte binary value stored in a column declared BINARY(512)), would have used more memory than necessary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR703837">703837</a></td>
<td>On Solaris 11 systems, the syntax highlighting editor component used in the Interactive SQL utility and Sybase Central displayed characters incorrectly. A blank was displayed after every character, even though the blank was not part of the SQL statements being edited. Because of the blanks, the caret (insertion point) was displayed in the wrong place, and the row/column indicators were incorrect, and in general, it was very difficult to enter and edit text in the editors. </p>
<p>				The solution to this problem is to update the Java Runtime Environment to version 1.6.0_31 or later. Instructions for doing this are contained in a white paper called &quot;Updating the SQL Anywhere Java Runtime Environment&quot;, available from the Sybase web site here: </p>
<p>				http://www.sybase.com/detail?id=1058536 </p>
<p>				There are no code changes for this issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704016">704016</a></td>
<td>The server could have crashed if it was serving as a mirror server and became the primary, and a stored procedure referencing a catalog table was executed both before and after the transition. There is no known workaround. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704057">704057</a></td>
<td>If a database was created with 9.0.2.4029 or earlier, with any version of 10.0.0, or with 10.0.1.4072 or earlier, then upgraded (using the Upgrade utility or ALTER DATABASE UPGRADE) to a newer build of SQL Anywhere, the Unload utility could have erroneously generate SQL to re-create the jConnect-related objects &quot;jdbc_functioncolumns&quot; and &quot;sp_jdbc_getfunctioncolumns&quot; which are, after the builds indicated, included automatically in newly created databases.</p>
<p>				Similarly, if a database was created with any version of 10.0.0, and then upgraded to any version of 10.0.1 or later, the Unload utility could erroneously have generate SQL to re-create the SQL Anywhere internal function &quot;sa_ansi_standard_packages&quot;.</p>
<p>				During a reload, these problems would have generated a message such as the following:</p>
<p>				***** SQL error: Item &#39;jdbc_functioncolumns&#39; already exists</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704191">704191</a></td>
<td>Changes have been made to Sybase Central to allow it to run with the Java 1.7 runtime.</p>
<p>				Note, this change also relates to the Interactive SQL utility as well. Sybase Central and the Interactive SQL utility were not reviewed for compatibility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704202">704202</a></td>
<td>In the Sybase Central window, the following menu items may be checked or unchecked: </p>
<p>				view\status bar </p>
<p>				view\Toolbars\Standard Toolbars </p>
<p>				view\Toolbars\Context Bar </p>
<p>				view\Toolbars\Context Title </p>
<p>				When these items were checked a blue box appeared beside the item instead of a check mark. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704205">704205</a></td>
<td>Opening the query editor in the Interactive SQL utility (dbisql), and from the Tables tab, select certain pairs of tables would have caused an an error to have been reported indicating that dbisql has encountered a problem and must close. One pair of tables that caused the problem was SysTable and SysColumn. This has not been fixed.</p>
<p>				Note, this problem would also have occurred with the SQL Anywhere plugin for Sybase Central, which is fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704453">704453</a></td>
<td>Execution of the system function USER_NAME() in a login check stored procedure (which is set through the login_procedure database option) could have caused a server crash. This would have occurred when using server-side connection pooling, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704464">704464</a></td>
<td>HTTP headers returned by the NetworkData Java and .NET classes were silently truncated. This has been fixed.</p>
<p>				Also, a bound has been placed on the total amount of header data that can be sent in an HTTP request. If a request exceeds the bound, the server will return an HTTP error code and abort the request. This bound is controllable with the header_limit HTTP option. For example, &quot;-x http(header_limit=200000)&quot; will raise the limit to 200000 bytes. The default value is 64000 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704468">704468</a></td>
<td>If deadlocks arose between connections using parallel execution plans, the deadlock may not have been detected. Additionally, another connection later contending for the same locks could have caused the server to crash. This has been fixed.</p>
<p>				A workaround is to set the option MAX_QUERY_TASKS to 1 for transactions that are known to participate in deadlocks.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704600">704600</a></td>
<td>In some circumstances, an index may have become corrupted after a DELETE. An index must have had Index Hashing turned on to be affected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704609">704609</a></td>
<td>If a TLS library could not be found, or an error occurred when loading it, the resulting error message would have contained the system charset name rather than the name of the library. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704611">704611</a></td>
<td>An index on a binary column could have become corrupt if it contained binary values shorter than the hash size for the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704622">704622</a></td>
<td>The opcode parameter in the Relay Server error RSE4007 was not logged properly. This has been fixed.</p>
<p>				Note: this change is fixed the English resource only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704649">704649</a></td>
<td>In a mirroring system, it is possible for a server to be unable to start mirroring because its log does not match the one on its parent. Previously, a message would have been printeded to the console indicating that a log mismatch had occurred, with no further information. This has been corrected so that now there is more information printed to the console of its parent that gives further details.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704654">704654</a></td>
<td>Creation of SQL Anywhere web services is not permitted on the utility_db. An HTTP request attempting to access the utility_db may have caused the server to crash, rather than being rejected with a &quot;404 &#39;Not Found&#39;&quot; status. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704775">704775</a></td>
<td>When multiple TLS connections were made from a single client application, a small amount of memory would have been leaked for each connection beyond the first. This could also have occurred in the database server, but only when the server made outgoing TLS connections (i.e. for mirroring or to remote servers). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704801">704801</a></td>
<td>Cursors over SELECT statements referencing proxy tables could have returned errors in the presence of publications for some of the tables. The error depends of how complex the publications are. A typical error would be &quot;assertion failed: 102604 - Error building sub-select&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704963">704963</a></td>
<td>If a predicate selectivity estimate was computed using a column histogram and the lookup value was out of bound in the histogram, an index probe was not then used for selectivity estimate. This has been fixed. This also improves the selectivity estimates for a column for which the histogram is out of date or contains incomplete data if an index on that column exists.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704967">704967</a></td>
<td>With UltraLiteJ for Android, calling Connection.prepareStatement with a null statement parameter would have crashed the application. This has been fixed so that a ULjException with code SQLE_INVALID_PARAMETER is now thrown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR704978">704978</a></td>
<td>Updating an entity could have returned incorrect values for computed columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705368">705368</a></td>
<td>If a JDBC application using the SQL Anywhere JDBC Driver called the &quot;autoGeneratedKeys&quot; overload of Connection.prepareStatement(), Statement.execute() or Statement.executeUpdate() with Statement.NO_GENERATED_KEYS, then the JDBC driver would incorrectly throw a &quot;generated keys not supported&quot; exception. This problem has now been fixed and calling these overloads with Statement.NO_GENERATED_KEYS now simply calls the &quot;non-autoGeneatedKeys&quot; overload.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705529">705529</a></td>
<td>In some cases, 64-bit servers could have crashes when executing queries using TIMESTAMP WITH TIME ZONE values. The 32-bit server was not affected. This has been fixed.</p>
<p>				A workaround is either to use regular TIMESTAMP types, or use a 32-bit server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705543">705543</a></td>
<td>In a mirroring system, it may have been possible for a copy node to connect to its parent and report that it was connected, but not receive log pages. This has been fixed.</p>
<p>				If a copy node lost its host name because of a network problem at any point, the copy node&#39;s parent would have been unable to connect to the copy node. This would have appeared in the logs like the copy node connected to the parent without any problems, but the parent would have been unable to connect back. The parent would then drop the connections and the copy node would have made the connection again, causing an infinite cycle that caused the copy node to be unable to stay connected or receive log pages. This has been fixed.</p>
<p>				If a copy node tried to connect to its parent, but was unable to resolve the parent&#39;s host name during connection due to network problems, the copy node would have connected to the primary and never tried to connect to its parent again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705557">705557</a></td>
<td>In rare timing dependent cases, it was possible for a server that was the parent of a scale out copy node, or the primary in a scale out system, to incorrectly fail requests with a thread deadlock error. It was also possible (but less likely) for the parent or primary to hang. The thread deadlock and hang were more likely when the scale out copy node could connect to the parent or primary, but the parent or primary could not connect back, perhaps due to an incorrect connection string for the copy node server mirror, or due to a firewall issue. This has been fixed so that the server no longer hangs and thread deadlock is much less likely.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705696">705696</a></td>
<td>With UltraLiteJ for Android, a binary column value with a length greater than or equal to 64 KB would have been truncated when using PreparedStatement.set(int, byte[]) to set the value for an INSERT or UPDATE statement. This has been fixed.</p>
<p>				A workaround is to use PreparedStatement.getBlobOutputStream(int) to get an OutputStream object, and use that to write the parameter value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705697">705697</a></td>
<td>Set-Cookie HTTP headers, and sync parameters that set a cookie value to the empty string, will now cause the cookie to be removed, preventing it from being sent to the server in subsequent HTTP requests. Previously, the client would report an error in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705847">705847</a></td>
<td>UltraLiteJ for Android now supports restartable downloads as documented for C UltraLite.</p>
<p>				The following APIs have been added:</p>
<p>				Connection.rollbackPartialDownload()</p>
<p>				SyncParms.setAdditionalParms( String v )</p>
<p>				SyncParms.getAdditionalParms()</p>
<p>				SyncParms.setKeepPartialDownload( boolean c )</p>
<p>				SyncParms.getKeepPartialDownload()</p>
<p>				SyncParms.setResumePartialDownload( boolean c )</p>
<p>				SyncParms.getResumePartialDownload()</p>
<p>				SyncResult.getPartialDownloadRetained()</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705854">705854</a></td>
<td>With UltraLiteJ for Android, calling the PreparedStatement.set() method when the PreparedStatement had already been closed would have crashed the application. This has been fixed. Now, a ULjException with code SQLE_ULTRALITE_OBJ_CLOSED is thrown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705863">705863</a></td>
<td>Connections from Linux clients may not have included the EXE value in connection_property( &#39;AppInfo&#39; ). In particular, this affected applications where the effective user for the application was changed. This has been fixed so that the EXE value is now included in connection_property( &#39;AppInfo&#39; ) on Linux, even if the effective user is changed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR705997">705997</a></td>
<td>The Relay Server could have deadlocked after an I/O error with a client while receiving a large http response. The Outbound Enabler would have tried to recover, but would have failed with an RSE3003 error (displayed in the Relay Server log) until the original up-channel failed with error RSE3009. After that, the Outbound Enabler up-channel retry would have resulted in the error RSF13002 being displayed in the Relay Server log over and over until the Relay Server was restarted. New sessions accessing the same backend farm would have resulted in the error RSF14001. This has been fixed by allowing the Relay Server to recover from this deadlock state without causing any Relay Server fatal errors, and the backend service should recover successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706150">706150</a></td>
<td>In rare cases, a server may have received an odd ClassNotFoundException when making a Java external environment call, even though the class had previously been successfully loaded. This problem has now been fixed.</p>
<p>				Note that this change also greatly improves the performance of loading classes from the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706158">706158</a></td>
<td>A High Availability mirror server could have crashed when starting up or restarting when it was in the &quot;determining mirror role&quot; phase. The primary server must also have had a read-only scale-out copy node connected to it, and a transaction log rename was being performed on the primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706168">706168</a></td>
<td>The MobiLink Server could have crashed when the http network protocol option &quot;collect_network_data&quot; was set to 1 (i.e. -x http(collect_network_data=1) ). This has been fixed.</p>
<p>				Note, this option was added by Engineering case 696647.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706174">706174</a></td>
<td>If a High Availability partner server encountered a disk full condition, is was possible for both partners to hang. This has been fixed so that the partner that encounters the disk full condition stops immediately. The other server should be able to continue as the primary or take over as the primary. Taking over requires that the primary and mirror were synchronized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706179">706179</a></td>
<td>When a server in a mirroring system tried to start up a database as a mirror or copy node, it was possible for the server to receive a transaction log mismatch if there was a problem connecting to the primary or the copy node&#39;s parent server. This would have caused the database to shut down, and subsequently the server, if no other databases were running on the server. In this particular case, there was not actually a log mismatch, and so the database would have restarted successfully without replacing database files. The error message printed in the console was: &quot;Transaction log does not match log on mirror partner&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706183">706183</a></td>
<td>If a DBRowReader from the MobiLink Server .NET API was used to gather binary data from a fixed length binary column in the consolidated database, then the binary data that was fetched would have had zeroes appended to the result up to the maximum size of the fixed length column. This has been corrected so that zeroes are no longer added to the result.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706371">706371</a></td>
<td>The SQL Anywhere HTTP server may have crashed if a request was timed-out. The crash would have occurred when a request had timed-out on a host under very high CPU load (the server itself need not have been especially busy). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706387">706387</a></td>
<td>Three new flow control elements have been introduced, allowing the Relay Server to detect potential dangers proactively, and urgently signal the Outbound Enabler to throttle back on pushing data down to the Relay Server in an isolated per client manner. These new elements are:</p>
<p>				Per client shared memory consumption</p>
<p>				Per client virtual memory consumption</p>
<p>				Global shared memory level</p>
<p>				This change also introduces a new user control in the Relay Server configuration:</p>
<p>				[backend_farm]</p>
<p>				max_client_buffer = &lt;memory size&gt;</p>
<p>				When the Relay Server consumes more than the &quot;max_client_buffer&quot; amount of virtual memory to buffer server response for a slow reading client, an urgent flow control signal will be sent to the Outbound Enabler to pause reading further server responses for this client. The Relay Server will signal the Outbound Enabler to resume the reading responses for the client when the client has consumed enough of the responses until only half of &quot;max_client_buffer&quot; worth of server responses for the client is left in the Relay Server. The default value of &quot;max_client_buffer&quot; is 1M. The &quot;max_client_buffer&quot; property can be adjusted online and the change takes effect immediately without restarting the Relay Server.</p>
<p>				Similarly, per client shared memory is also being monitored, and isolated per client throttling was added. There is no user control for this element of the flow control system, as this element doesn&#39;t directly prevent shared memory exhaustion but it prevents deadlocking of the down-channel.</p>
<p>				Monitoring of the global shared memory level has also been added, so that flow control can be triggered on any client even if their personal quota has not yet been reached. No new user control has been introduced for this element of the flow control system, but the behavior of the existing &quot;shared_mem&quot; control in the Relay configuration has changed. Previously, this value was used only for specifying the extra amount of shared memory for buffering traffic and state tracking, in addition to the amount implied by the configuration. The property had an effect of an amount equal to its size on the startup allocation. Online adjustment to the value had no effect on the total allocation until the Relay Server is restarted. Now, this property has an effect of an amount three times its value on the startup allocation of shared memory, and is broken down as follows:</p>
<p>				- one third for buffering traffic and state tracking where user thought is enough at startup time.</p>
<p>				- one third for future online growth of the number of tenants, and backend farm size of the tenants.</p>
<p>				- one third as an extra blanket inside the auto calculated shared memory low water mark for triggering flow control. </p>
<p>				The sum of these values are pooled together for all functional needs without usage partitioning. The factoring is for calculating the gross startup amount and also users to understand the new implications of online adjustment of this value. Online adjustment to this value still has no effect on the total allocation, but it does change the global shared memory low water mark for triggering flow control. Because of one third factor as a blanket inside the low water mark, users can make adjustments to the flow control behavior without restarting the Relay Server.</p>
<p>				Here are some new usages of the shared_mem property in terms of online adjustments:</p>
<p>				The administrator doesn&#39;t foresee growth in number of tenants and/or their size and so wants to reduce the shared memory low watermark in order to reduce triggering of unnecessary flow control. The shared_mem property can be reduced online. The change doesn&#39;t decrease allocation until restart, but it does reduce the blanket amount immediately by an amount equal to the change.</p>
<p>				The administrator has seen some of the following after their Relay Server had been running for some time:</p>
<p>				Substantial growth in number of tenants</p>
<p>				Substantial growth in size of the backend farm</p>
<p>				Substantial growth in number of clients</p>
<p>				Growth in http response size</p>
<p>				Addition of slower clients or slower network to the clients</p>
<p>				Upgraded to faster network between RS and OE</p>
<p>				and wants to increase the global shared memory low water mark so that flow control kicks sooner to protect against global shared memory exhaustion. This can be done by increasing &quot;shared_mem&quot; online without restarting the Relay Server. The change doesn&#39;t increase allocation until restart but it increase the blanket amount immediately by an amount equal to the change.</p>
<p>				The &quot;shared_mem&quot; value to now allowed to be bigger than 4G.</p>
<p>				This change has extended the existing protocol between the Relay Server and the Outbound Enabler so that upgrading to a new Outbound Enabler is required for this feature. The new Relay Servers and Outbound Enablers are backward compatible with older versions, but flow control cannot take place and so the Relay Server is not protected against memory exhaustion.</p>
<p>				Before these changes, the Relay Server can run out of resource due to reaching the hard limit of shared memory or reaching the limit on virtual memory. This could have had different causes, including, but not limited to, an increase in the number of clients or backend farms/servers, http response size, and sustained slow reads from clients. Some exhaustion may have lead to deadlocks and the symptom may not have been fatal as current Relay Servers will resolve the deadlock, but the requests could still have been failed and shared resources were blacked-out during the deadlock period.</p>
<p>				sers might experience</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706510">706510</a></td>
<td>A server would have leaked memory, and may eventually have run out of memory, if a very large number of Open Client or jConnect secure password connection requests were made. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706541">706541</a></td>
<td>In a mirroring system, if the mirror or a copy node was stopped around the time the primary performed a transaction log operation that required more than one page, the next time the mirror or copy node was started it could have asserted or crashed. The most likely assertion failure error numbers were 100902, 100903 or 100904. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706554">706554</a></td>
<td>The QAnywhere Agent could have failed to start if it could not automatically upgrade the message store in some cases. This problem was introduced by the changes for Engineering case 696917. For 11.0.1.2781 until 2804, the qaagent would have failed to start with message stores created with a qaagent from 11.0.1.2780 and before. For 12.0.1.3711 until 3725, the qaagent would have failed to start with message stores created with a qaagent from 11.0.1.2781 until 2804, or with a qaagent from 12.0.1.3711 and before, or with a qaagent from 12.0.0. This has been fixed.</p>
<p>				A workaround for this problem is to recreate the message store using qaagent -si, if that is possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706558">706558</a></td>
<td>When executing a bulk update with SQLExecute, there was a chance that not all rows would have been updated. If the UPDATE statement contained a WHERE clause that did not match any rows, any subsequent rows in the batch would have been ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706724">706724</a></td>
<td>The server was failing to redirect an HTTP request made to a secure web-service (requiring HTTPS protocol) when the request specified an ipv6 address. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706774">706774</a></td>
<td>If a client application that had a TLS or HTTPS connection to a server hang, the server itself could also have hung indefinitely. This has been fixed, such connections will now be closed after five minutes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706812">706812</a></td>
<td>The Relay Server Outbound Enabler may have crashed when it was running with a Relay Server farm, and the backend server was under heavy load or busy, then went down or became unresponsive. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706817">706817</a></td>
<td>The Certificate Creation and Certificate Viewer utilities (createcert and viewcert) will now encode unencrypted RSA private keys using PKCS #1 instead of PKCS #8, if provided a new &#39;-p1&#39; option. This is useful when creating certificates for use with Apache since it expects unencrypted RSA private keys to be encoded using PKCS #1 (SQL Anywhere software always expects private keys to be encoded with PKCS #8). Encrypted keys and ECC keys will continue to be encoded using PKCS #8 regardless of whether the &#39;-p1&#39; option is specified.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706828">706828</a></td>
<td>The MobiLink server now supports bulk upload for sync tables that contain LOBs when the consolidated database is running on an Oracle server. The bulk upload feature would have previously been disabled when a sync table contained LOBs. The number of rows uploaded by each batch is controlled by -s command line option.</p>
<p>				Note, the iAS ODBC driver for Oracle must be upgraded to the same EBF level as the MobiLink server when the consolidated database is running on an Oracle server and the synchronization tables contain CLOBs or BLOBs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706846">706846</a></td>
<td>The Relay Server would have had the client expire the affinity cookie for the case where the Outbound Enabler detected a request specific error and reported the error back to the Relay Server. This didn&#39;t cover other error cases where the Relay Server had enough information to also have the client to give up the Relay Server affinity cookie. This fix is to add cookie expiry for those uncovered cases as well. The Relay Server will also response to the client with cookie expiry if the backend server responds to the client with HTTP 400 or higher.</p>
<p>				This fix also strengthens validation of the cookie format, improves HTTP status codes, and provides finer HTTP status messages for easier diagnosis.</p>
<p>				The responses being changed are summarized in the following table:</p>
<p>				New response New response expires cookie? Old response as a record of behavior change</p>
<p>				500 Relay server failed creating client traffic record n 500 Relay server error</p>
<p>				500 Relay server failed initializing server access n 500 Relay server error</p>
<p>				500 Relay server failed writing locking request list n 500 Relay server error</p>
<p>				500 Relay server failed creating request n 500 Relay server error</p>
<p>				500 Relay server failed initializing request n 500 Relay server error</p>
<p>				500 Relay server failed adding initialized request n 500 Relay server error</p>
<p>				401 The backend farm client_security property in the </p>
<p>				Relay Server configuration disallow this type of client transport y 401 The backend farm rejected this client security</p>
<p>				500 Relay server failed initializing backend farm access n 500 Relay server error</p>
<p>				400 Bad affinity query y 401 Bad affinity query</p>
<p>				400 Bad session id y 401 Bad session id</p>
<p>				404 Backend farm is missing from URL y 404 Not found</p>
<p>				404 Backend farm not found y 404 Not found</p>
<p>				503 The backend farm is currently disabled n 404 The backend farm is currently disabled</p>
<p>				400 Backend server encoded in cookie not found y --No change --</p>
<p>				400 Bad request with no response from backend server y --No change--</p>
<p>				Note, the HTTP status messages will remain generic for the Relay Server for Apache, which may not follow the new status codes. This Relay Server for Apache issue will be addressed as a separate platform dependent issue which is independent to this one.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706876">706876</a></td>
<td>A Microsoft Data Link Error could have occurred with newer versions of Microsoft software when using the SQL Anywhere OLE DB provider. When the Test Connection button was clicked, the following message would have been displayed when the error occurred:</p>
<p>				Test connection failed because not all properties can be set.</p>
<p>				Window Handle (BAD VALUE)</p>
<p>				Continue with test connection? </p>
<p>				[Yes] [No]</p>
<p>				The message was informational only and Yes can be clicked. If the credentials and other connection information were correct, the connection succeeded. This problem has been fixed. Instead of returning a NULL window handle to the Microsoft software, the OLE DB Window Handle property is now marked as unsupported, which removes the warning message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706878">706878</a></td>
<td>The MobiLink server could have crashed when a TIMESTAMP column was fetched from Oracle using the .NET-ODBC bridge. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR706892">706892</a></td>
<td>There are many reasons for a database, that is a partner in a High Availability system or a copy node, to be restarted. In several cases, no reason for a restart was logged to the console. This has been fixed so that a message indicating the reason for a restart is now logged to the console.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_97.htm#CR707002">707002</a></td>
<td>The request for the graphical plan of a statement would have caused the server to crash if the statement contained an IN predicate and the list consisted of only host variables and an In List algorithm was chosen for it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707006">707006</a></td>
<td>-</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707009">707009</a></td>
<td>-</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707010">707010</a></td>
<td>In the table of query results, cell values, entire rows, and entire columns, can be copied to the clipboard. When copying a column or multiple cells, the values were always separated by a comma rather than the ISQL field separator string. This has been corrected so that the field separator is now used.</p>
<p>				Note that the field separator was already being used when copying entire rows of values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707019">707019</a></td>
<td>When the database server was running a database whose page size was smaller than the cache&#39;s page size, dynamic cache sizing could have chosen a cache size that was too small, which could have resulted in a performance penalty. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707033">707033</a></td>
<td>When a property was repeated in a section of the Relay Server configuration file, or when a section header separating two sections of the same type of object was missing, the Relay Server would have started without complaints, silently overriding repeated properties. This behaviour has now been corrected to abort the startup with an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707037">707037</a></td>
<td>In rare timing dependent cases, a high availability partner or copy node server could have crashed. Additionally, in rare cases, the arbiter could have reported the following message to the console: &quot;arbiter already has two connections&quot;. These problems could have occurred when a partner detected loss of quorum, when a copy node was attempting to connect back to its original parent after being connection to an alternate parent or the root server, or if a connection between mirror servers failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707039">707039</a></td>
<td>Synchronizations could have hung when using HTTP if an error occurred on the server side. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707061">707061</a></td>
<td>The MobiLink server could have crashed if it had an HTTPS listening port. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707064">707064</a></td>
<td>When starting the Network Server on Windows, or calculating the &#39;IsPortableDevice&#39; server property, the server may have taken longer than necessary to obtain information about the computer. This has been fixed, althought the difference in the delay is not likely to be noticeable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707078">707078</a></td>
<td>When a Relay Server received a request with cookie pointing to a backend that was no longer connected, the Relay Server would have done unnecessary processing and reported twice the request to be aborted with verbosity level 2 or higher. This extra processing has now been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707124">707124</a></td>
<td>Mixing different versions of Relay Server components together on a single server is not supported and may have lead to crashes in some combinations. Now, the SQL Anywhere version and build number are used to detect conflicts. Any conflicts are reported via the following HTTP response status: </p>
<p>				500 Abort due to version of this Relay Server extension conflicts with the version of the running rshost</p>
<p>				Note, this change also fixes some error responses that didn&#39;t terminate the header list with \r\n.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707201">707201</a></td>
<td>In rare low-memory situations, a client application could have crashed on startup if TCP/IP was being used. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707362">707362</a></td>
<td>On BlackBerry devices, and the simulator, when using HTTPS UltraLiteJ would have done an extra HTTPS POST request at the beginning of a synchronization to verify the contents of a certificate. This extra POST was not needed when the StreamHTTPSParms used in the synchronization had null CertificateCompany, CertificateName and CertificateUnit (all three null). This has been fixed. UltraLiteJ now will only do the extra POST if one or more of CertificateCompany, CertificateName and/or CertificateUnit are not null.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707529">707529</a></td>
<td>If the primary server failed in some timing dependent cases, the mirror server could have failed to take over as primary. When this problem occurred, the mirror database would have restarted and be attempting to determine its role until the primary was restarted, or the ALTER DATABASE ... FORCE START statement was executed on the mirror server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707534">707534</a></td>
<td>The Relay Server is designed to overload the up-channel liveness for notifing the Outbound Enabler in the case the down-channel is not connected. This gives the Outbound Enabler a chance to increase down-channel puncture data, as the web server can be be set up to buffer the request to a certain amount before passing to the extension for handling and takeover the rest of the reading of the request. This issue was introduced in 12.0.1 when HTTP authentication support was added to the Outbound Enabler, where the test request will fool the Relay Server into thinking the down-channel connection was successful. This fix is to change the Relay Server to deal with the Outbound Enabler behavior change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707541">707541</a></td>
<td>Unnecessary HTTP headers were being sent in HTTP CONNECT requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707553">707553</a></td>
<td>In rare cases, the first time a mirror server or copy node connected to a high availability primary or a read-only scale-out parent, the primary or parent could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707554">707554</a></td>
<td>The following improvements have been made to the interactive quick setup feature for the Relay Server running on an Apache web server:</p>
<p>				- Improved script interaction, especially questions with (Y/n) choices. Defaults have been added to speed up progress.</p>
<p>				- Output log is now flushed timely to give complete log if script is stopped at any time.</p>
<p>				- Removed the option of keeping test services running to overcome a hanging problem.</p>
<p>				- Wording has been improved in several places.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707729">707729</a></td>
<td>The Relay Server may have exhibited undefined response behavior in some error cases. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707781">707781</a></td>
<td>The iAS ODBC driver for Oracle could have crashed in the OCI library when a query contained results from a proxy server if the size of the result set was greater than the &quot;Array size&quot; given by the DSN. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707904">707904</a></td>
<td>If the root database restarted soon after a copy node connected to it, the copy node could have, in rare timing dependent cases, crashed or failed assertions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707910">707910</a></td>
<td>A query with many nested UNION query blocks may have taken a very long time before query execution began. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707918">707918</a></td>
<td>In rare cases, a query using a parallel NestedLloopsJoin could have caused the server to crash. This has been fixed.</p>
<p>				A workaround is to disable intra-query parallelism for the affected query.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707922">707922</a></td>
<td>UPDATE statements generated by the Entity Framework could have failed with a syntax error if the table being updated had a uniqueidentifier key column. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707952">707952</a></td>
<td>When using a version 10.0, 11.0 or 12.0 of ADO.NET provider with a version 9.0 server, the .NET string parameters are incorrect mapped to nvarchar. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR707971">707971</a></td>
<td>The Compare Databases window would have reported ALTER LOGIN POLICY as an unrecognized statement. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708057">708057</a></td>
<td>When fetching from a directory access table with a query of the form:</p>
<p>				select ... from directory_access_table where ... file_name like &#39;abc%&#39; ...</p>
<p>				the server would have returned a syntax error. This problem only existed if the comparison value (i.e. &#39;abc%&#39;) had no directory separators. For example, a query of the form:</p>
<p>				select ... from directory_access_table where ... file_name like &#39;abc\def%&#39; ...</p>
<p>				would have worked just fine. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708087">708087</a></td>
<td>When using the VALIDATE TABLE or VALIDATE INDEX statements, the server could have reported that there was an &#39;orphaned blob&#39; (ie. a blob that is in the database but not referenced by any row) when there were, in fact, no orphaned blobs. To encounter this problem, there must have been deleted rows in the database that contained unique blobs (not shared by any other row) and either the deletes were uncommitted, or they had been left for the database cleaner to remove at a later time. Rows not cleaned by the cleaner were more likely to be seen on a read-only database, as the database cleaner is disabled for read-only databases. This problem has been fixed.</p>
<p>				Also when using the VALIDATE TABLE or VALIDATE INDEX statements, the server could fail to report orphaned blobs when they did, in fact, exist. Whether or not this problem occurred depended on random contents of memory as well as the number of DML operations applied to the table prior to validation. This problem has been fixed.</p>
<p>				When reporting a validation problem, the server returns an error to the client but also displays additional information in the server console. For orphaned blobs, a blank message was erroneously displayed in the console. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708177">708177</a></td>
<td>If an invalid operation was specified for an SQL sequence, then the server would have incorrectly returned the error SQLSTATE_CORRELATION_NAME_NOT_FOUND, instead of SQLSTATE_INVALID_SEQUENCE_OPERATION. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708199">708199</a></td>
<td>The server would have returned a syntax error when trying to specify &quot;client&quot; as a secure feature to be enabled or disabled (-sf command line option). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708252">708252</a></td>
<td>The LOAD TABLE statement may insert invalid data values into columns of type NUMERIC. For type NUMERIC the server may insert values that exceeded the precision and scale </p>
<p>				of the column type definition. This has been fixed. Now values for NUMERIC columns will be cast to the column data type if needed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708422">708422</a></td>
<td>If a user owned one or more tables, views, procedures or sequence generators, and permissions on these objects were assigned to another user, then deleting the first user could have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708426">708426</a></td>
<td>In rare timing dependent cases, a mirror server or copy node could have crashed while it, or the mirrored database, was shutting down. In order for the crash to have occurred, a copy node child must have begun to request log pages from the stopping server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708518">708518</a></td>
<td>Mirroring copy nodes could have hung on shutdown with one core at 100% utilization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708547">708547</a></td>
<td>The following behaviors In the &quot;Change Server Version&quot; wizard have been fixed: </p>
<p>				1. The wizard would have installed the cloud software on all hosts which did not already have it, even if the hosts were not running the servers selected. Now, software is installed only on the servers selected. </p>
<p>				2. The wizard would have reported that it was installing software even if it was only checking whether software needed to be installed. Now, the wizard reportss it is installing only if it really is installing software. </p>
<p>				3. When cloud software was downloaded for both Windows and Linux, the wizard did not prevent attempting to use the software on a server which was running the wrong operating system. Now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708565">708565</a></td>
<td>When logged in as a user who did not have the privileges needed to extract a database, attempting to extract a database from the cloud&#39;s &quot;Databases&quot; panel would have caused the Cloud Console to report an internal error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708575">708575</a></td>
<td>UltraLitej for BlackBerry and J2SE now support custom HTTP headers. New methods have been added to StreamHTTPParms:</p>
<p>				/** Adds a message header to each HTTP request. If addCustomHTTPHeader is called</p>
<p>				* more than once with the same name parameter, the values are concatenated together</p>
<p>				* into a comma-seperated list.</p>
<p>				* &lt;p&gt;</p>
<p>				* The following standard headers are set by ULj and cannot be changed using </p>
<p>				* addCustomHTTPHeader: Connection, Content-Length, User-Agent, Content-Type, and</p>
<p>				* Content-Length. Other headers may also be modified by the Java VM.</p>
<p>				* &lt;p&gt;</p>
<p>				* Not available on Android. On Android, specify a custom_header parameter using</p>
<p>				* setExtraParameters</p>
<p>				*</p>
<p>				* @param name The name of the header</p>
<p>				* @param value The value of the header </p>
<p>				*/</p>
<p>				public void addCustomHTTPHeader( String name, String value );</p>
<p>				/** Returns a Hashtable containing the HTTP headers specified using addCustomHTTPHeader</p>
<p>				*</p>
<p>				* @return Returns a Hashtable containing the HTTP </p>
<p>				* headers specified using addCustomHTTPHeader</p>
<p>				*/</p>
<p>				public java.util.Hashtable getCustomHTTPHeaders();</p>
<p>				Custom cookies can be specified by calling addCustomHTTPHeader with &quot;Cookie&quot; as the header name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708576">708576</a></td>
<td>UltraLitej for BlackBerry and J2SE now support basic HTTP authentication. New methods have been added to StreamHTTPParms:</p>
<p>				/**</p>
<p>				* Sets the userid and password used for Basic HTTP authentication as </p>
<p>				* described in RFC 2617.</p>
<p>				* &lt;p&gt;</p>
<p>				* With Basic authentication, passwords are included in HTTP headers in </p>
<p>				* clear text; however, you can use HTTPS to encrypt the headers and </p>
<p>				* protect this password. </p>
<p>				*</p>
<p>				* @param userid The userid to use</p>
<p>				* @param password The password to use</p>
<p>				*/</p>
<p>				public void setHTTPUserIDAndPassword( String userid, String password );</p>
<p>				/**</p>
<p>				* Returns the userid previously set by setHTTPUserIDAndPassword.</p>
<p>				*</p>
<p>				* @returns The userid previously set by setHTTPUserIDAndPassword</p>
<p>				*/</p>
<p>				public String getHTTPUserID();</p>
<p>				/**</p>
<p>				* Returns the password previously set by setHTTPUserIDAndPassword.</p>
<p>				*</p>
<p>				* @returns The password previously set by setHTTPUserIDAndPassword</p>
<p>				*/</p>
<p>				public String getHTTPPassword();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708578">708578</a></td>
<td>UltrLitej for BlackBerry and J2SE now support zlib stream compression. Some methods that were previously Android-only are now available for other platforms:</p>
<p>				/** Enables or disables ZLIB compression.</p>
<p>				* &lt;p&gt;</p>
<p>				* By default, ZLIB compression is disabled</p>
<p>				* &lt;p&gt;</p>
<p>				* Only available for Android and BlackBerry</p>
<p>				* &lt;p&gt; </p>
<p>				* Corresponds to MobiLink client network protocol option &quot;compression=zlib&quot;.</p>
<p>				*</p>
<p>				* @param enable Set to true to enable ZLIB compression, or false to disable</p>
<p>				* ZLIB compression.</p>
<p>				*/</p>
<p>				public void setZlibCompression( boolean enable );</p>
<p>				/** Sets the download window size for ZLIB compression.</p>
<p>				* &lt;p&gt;</p>
<p>				* Only available for Android and BlackBerry</p>
<p>				* &lt;p&gt;</p>
<p>				* Corresponds to MobiLink client network protocol option &quot;zlib_download_window_size&quot;.</p>
<p>				*</p>
<p>				* @param size The compression window size specification, inclusively </p>
<p>				* ranging from 9 to 15. This parameter is the base two</p>
<p>				* logarithm of the window size. (the size of the history</p>
<p>				* buffer)</p>
<p>				*/</p>
<p>				public void setZlibDownloadWindowSize( int size );</p>
<p>				/** Sets the upload window size for ZLIB compression.</p>
<p>				* &lt;p&gt;</p>
<p>				* Only available for Android and BlackBerry</p>
<p>				* &lt;p&gt;</p>
<p>				* Corresponds to MobiLink client network protocol option &quot;zlib_upload_window_size&quot;.</p>
<p>				*</p>
<p>				* @param size The compression window size specification, inclusively </p>
<p>				* ranging from 9 to 15 for Android and 10 to 15 for BlackBerry. </p>
<p>				* This parameter is the base two</p>
<p>				* logarithm of the window size. (the size of the history</p>
<p>				* buffer)</p>
<p>				*/</p>
<p>				public void setZlibUploadWindowSize( int size );</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708638">708638</a></td>
<td>UltraLitej for BlackBerry now supports end-to-end stream encryption. Some methods that were previously Android-only are now available for other platforms:</p>
<p>				/** Sets the name of the file containing the end-to-end public key.</p>
<p>				* &lt;p&gt;</p>
<p>				* By default, this value is null, indicating that end-to-end encryption is</p>
<p>				* not used.</p>
<p>				* &lt;p&gt;</p>
<p>				* Corresponds to MobiLink client network protocol option &quot;e2ee_public_key&quot;.</p>
<p>				*</p>
<p>				* @param public_key The name of RSA public key file used in the encryption.</p>
<p>				*/</p>
<p>				public void setE2eePublicKey( String public_key );</p>
<p>				/** Get the name of the file containing the end-to-end public key.</p>
<p>				*</p>
<p>				* @return the name of the file containing the end-to-end public key.</p>
<p>				*/</p>
<p>				public String getE2eePublicKey();</p>
<p>				And there are also BlackBerry-specific methods to change the encryption type. ECC end-to-end encryption is available only for BlackBerry.</p>
<p>				/**</p>
<p>				* Pass this to setE2eeType to use RSA-based end-to-end encryption</p>
<p>				*/</p>
<p>				public final short E2EE_RSA = 0;</p>
<p>				/**</p>
<p>				* Pass this to setE2eeType to use ECC-based end-to-end encryption</p>
<p>				*/</p>
<p>				public final short E2EE_ECC = 1;</p>
<p>				/**</p>
<p>				* Set the type of end-to-end encryption to use. Pass one of StreamHTTPParms.E2EE_RSA or </p>
<p>				* StreamHTTPParms.E2EE_ECC. The default is StreamHTTPParms.E2EE_RSA.</p>
<p>				* &lt;p&gt;</p>
<p>				* Only available on BlackBerry. ECC encryption is not supported on other platforms.</p>
<p>				*</p>
<p>				* @see StreamHTTPParms.E2EE_RSA</p>
<p>				* @see StreamHTTPParms.E2EE_ECC</p>
<p>				* @param type One of E2EE_RSA or E2EE_ECC</p>
<p>				*/</p>
<p>				public void setE2eeType( short type );</p>
<p>				/** </p>
<p>				* Returns the end-to-end encryption type being used.</p>
<p>				* &lt;p&gt;</p>
<p>				* Only available on BlackBerry. ECC encryption is not supported on other platforms.</p>
<p>				* @return the end-to-end encryption type being used </p>
<p>				*/</p>
<p>				public short getE2eeType();</p>
<p>				The public key used must be DER encoded. </p>
<p>				The public key needed for end-to-end encryption can either be stored on an SD card or the device object store. When using an SD card, the parameter to setPublicKey should have the form &quot;sdcard://&lt;path&gt;&quot; where &quot;&lt;path&gt;&quot; is the absolute path to the file on the card. e.g. &quot;file:///SDCard/ulj/public_key.der&quot;. When using the object store, use the file transfer utility built into ULj to download the file from the MobiLink server. To use file transfer to transfer a key it must have an extension of &quot;.der&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708644">708644</a></td>
<td>The Schedule tab in the Properties dialog for a scheduled task in a German cloud had an unneeded horizontal scroll-bar. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708660">708660</a></td>
<td>If a URL suffix had a leading &#39;/&#39;, the URL formed would have been [http|https]://host-name:port-number//url-suffix. This could result in an synchronization error. This differs from UltraLite which ensures that the &#39;/&#39; is not added when there is an leading &#39;.&#39; in the URL suffix. This has been fixed, the leading character of the url_suffix is checked and a &#39;/&#39; is appended only if needed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708672">708672</a></td>
<td>Selecting annotated cloud software in the Create Server wizard would not have resulted in the server using annotated software. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708777">708777</a></td>
<td>The UltraLiteJ method DatabaseInfo.getNumberRowsToUpload() could have returned a value that exceeded the actual number of rows that would have been actually uploaded during the next sync. For example, a sequence of operations such as an INSERT, UPDATE, and DELETE of a row should return 0, but would have returned a value that was larger. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708790">708790</a></td>
<td>Attempting to set the server version to use a non-annotated cloud software version using the server&#39;s property sheet did not work if the annotated software and the new software had the same version number. This has been fixed. </p>
<p>				In a related problem, if a server was using an annotated build, and the host also had an unannotated version of the software installed (with the same version number), the initial &quot;Version&quot; value in the property sheet was incorrect. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708812">708812</a></td>
<td>When setting up mirroring for a tenant database, the &quot;Add Database Mirror&quot; wizard would have incorrectly recommended the server that had been selected for the mirror when browsing for the arbiter. Similarly, the list of recommended servers for the mirror could have included the server that had been selected for the arbiter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR708826">708826</a></td>
<td>In rare, timing dependant cases a copy node in a mirroring read-only-scale-out setup may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709024">709024</a></td>
<td>When the Schedule Task wizard was canceled after clicking its Finish button, it was possible for the Console to report an internal error if the task had already been scheduled by the time the Cancel button was clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709189">709189</a></td>
<td>The approximate CPU time for a tenant database could have initially shown &#39;NaN seconds&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709203">709203</a></td>
<td>If a jConnect or Open Client connection prepared a statement and called a stored procedure with a set of host variables, then the server could have crashed, or returned an odd &quot;variable already exists&quot; error, if the stored procedure had a parameter or variable named @p0. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709208">709208</a></td>
<td>If an INI file was used with the Windows launchers for the Interactive SQL utility, Sybase Central, MobiLink Monitor, the Console utility, or SQL Anywhere Monitor, and the VM arguments exceeded 260 chars, the launcher would have fail. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709219">709219</a></td>
<td>When starting the Outbound Enabler, if the machine where the Relay Server was installed was running, but the Relay Server was not available, the Outbound Enabler would have started, failed to gather a Relay Server peer list, and then done nothing until it was manually shut down. This has been corrected so that the Outbound Enabler will now loop and continue to try and gather the Relay Server peer list until it is successful, or it is told to shut down.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709351">709351</a></td>
<td>Previously, if you tried to restore multiple databases where at least one database name contained a &#39;.&#39;, the restore backup wizard failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709375">709375</a></td>
<td>In rare circumstances, mirror server definitions for a database copy could have been deleted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709497">709497</a></td>
<td>The following dialogs contained scrollbars due to long text for the German and/or French locales: </p>
<p>				Server Properties </p>
<p>				Create Rule </p>
<p>				Edit Event Subscription </p>
<p>				Fixed by minor sizing adjustments to these dialogs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709506">709506</a></td>
<td>The IIS Quick Setup script has had the following enhancements:</p>
<p>				1) When the Relay Server is loaded with a high volume of requests and payload, transfer rate per client may thin out to a point that it cannot satisfy a preset requirement of IIS. The result is a dropping of connections and a Timer_MinBytesPerSecond event in the HTTPERR log. A change has been made in section 5b of the setup script to disable this minimum transfer rate requirement. </p>
<p>				2) The Relay Server uses a default application timeout of 8 minutes. A change has been made in section 5b of the setup script to configure the connection timeout value of the web server to be 1 minute higher than the default application timeout. The client application can lower the timeout on a per request basis. The purpose of this change is to remove timeout issue due to mismatch timeout settings along the chain.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709509">709509</a></td>
<td>The Cloud Initialization utility (dbcloudinit) may be used to re-initialize a cloud on a computer where a cloud was previously running. To re-initialize a cloud, all hosts must be deleted, except for the last cloud partner, and the cloud stopped. When re-initializing a cloud, dbcloudinit will attempt to re-use settings from the previous cloud. In this case on Linux, if running the cloud from the root user account had previously been chosen, and when re-initializing a different account was used, the default port presented for the HTTPS port setting may have been outside the normal default range, for example 40843. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709513">709513</a></td>
<td>The Rules panel would not have aligned the checkboxes vertically to the top of the grid row. These have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709633">709633</a></td>
<td>W@hen clicking the column heading of the Current, Average or Maximum columns on the Performance Monitor tab, the corresponding values would have been sorted as strings, not as numeric values. Now the values are sorted numerically. In addition, the values are now right-aligned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709639">709639</a></td>
<td>On Solaris 11 systems, the default quitting time suggested by the Console utility is one hour later than the current time if daylight savings time is in effect. The solution to this problem is to update the Java Runtime Environment to version 1.6.0_31 or later. Instructions for doing this are contained in a white paper called &quot;Updating the SQL Anywhere Java Runtime Environment&quot;, available from the Sybase web site: </p>
<p>				http://www.sybase.com/detail?id=1058536 </p>
<p>				There are no code changes for this issue. Note, that this problem does not occur with Solaris 10.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709640">709640</a></td>
<td>The Relay Server Outbound Enabler uses GET requests to monitor backend server status when the -cs command line option is used. The GET request was using an incorrect host header that always pointed to localhost:80. This has been fixed to respect the host and port implied by the -cs option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709644">709644</a></td>
<td>The Unload Database wizard did not prohibit reloading a subset of a database&#39;s tables into a new database when one or more of the selected tables contained a column with a domain data type, even though attempting to do so would always fail. Now, the wizard prohibits this and provides a list of alternatives.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709648">709648</a></td>
<td>When selecting a procedure or function and then selecting File-&gt;Execute in the Interactive SQL utility, the parameter editor table would have included &quot;(Default)&quot; entries for all parameters. Now &quot;(Default)&quot; is included only if the parameter has a default value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709761">709761</a></td>
<td>When attempting to open a log file using the MobiLink Server Log File Viewer, if the file could not be opened for any reason, an error message saying that the file cannot be opened was displayed and then Sybase Central would have reported an internal error. The problem which caused the internal error has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709898">709898</a></td>
<td>UltraLiteJ for Android now supports changing the database encryption key as documented for UltraLite.</p>
<p>				The following API was added:</p>
<p>				Connection.changeEncryptionKey( String newKey )</p>
<p>				For consistency the following APIs were added, which are equivalent to setDatabaseKey and getDatabaseKey respectively:</p>
<p>				ConfigPersistent.setEncryptionKey( String key )</p>
<p>				String ConfigPersistent.getEncryptionKey()</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709909">709909</a></td>
<td>In rare, timing depending cases, the server could have crashed. This was more likely to have occurred when multiple database events could start and stop concurrently on multi-core computers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR709935">709935</a></td>
<td>When the MobiLink client cache was large, there could have been a long pause after the last synchronization before MobiLink client shut down. This has been fixed. </p>
<p>				Following are examples of situations that cause the cache to grow large: </p>
<p>				- a large upload </p>
<p>				- an upload with with many blob values </p>
<p>				- using the -cl option to force the cache to be large </p>
<p>				- running on a machine with a large amount of memory</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710072">710072</a></td>
<td>Under certain rare circumstances, calling the system procedure sa_locks() could have caused the server to fail a fatal assertion. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710078">710078</a></td>
<td>When a cookie used by the Relay Server is not encoded properly, it should result in a RSE1003 error, but sometime the error RSE2003 was raised instead. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710111">710111</a></td>
<td>The Relay Server Outbound Enabler report would have reported session errors without parameters to Relay Server, but subsequent errors may have caused a crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710112">710112</a></td>
<td>The Relay Server may have crashed when it received a session error with parameters from the Outbound Enabler. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710285">710285</a></td>
<td>Under rare circumstances, a server may have crashed while opening the result set cursor of a batch or stored procedure when the cursor&#39;s query was a cached simple SELECT. This has been fixed. A workaround is to turn plan caching off (option Max_plans_cached = 0).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710432">710432</a></td>
<td>The MobiLink server could have crashed if a failed download using HTTP was restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR710978">710978</a></td>
<td>If there were fewer SQLFreeHandle( SQL_HANDLE_ENV,... ) than SQLAllocHandle( SQL_HANDLE_ENV,... ) calls, and at least one TCP/IP connection had been made, unloading the ODBC driver dll, usually when the application exits, could have taken much longer than it should have. This could also have occurred if there were fewer SQLDisconnect calls than successful SQLConnect calls. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711000">711000</a></td>
<td>If an invalid value was given for a network protocol option on the Interactive SQL command line, the program could have reported an internal error. This would have happened only for those options which take a set of specific values. For example, running the following command would have crashed as &quot;bogus&quot; is not an allowable value for the &quot;DoBroadcast&quot; option. </p>
<p>				dbisql -c &quot;links=tcpip(DoBroadcast=bogus)&quot; </p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711034">711034</a></td>
<td>The START DATABASE statement includes the following optional clause: </p>
<p>				CHECKSUM { ON | OFF } </p>
<p>				Attempting to execute a START DATABASE statement in the Interactive SQL utility with this clause would have resulted in an inappropriate error message which complained of an unexpected keyword. This has been fixed. </p>
<p>				Engineering Description: </p>
<p>				The CHECKSUM clause was added in 12.0.0. I&#39;m not sure how this got missed. I noticed the omission when I started to look at adding support for the new MIRROR ON clause of START DATABASE. </p>
<p>				Behaviour Changes: </p>
<p>				n/a </p>
<p>				Admin Tools, Installers and Other Affected Software: </p>
<p>				n/a </p>
<p>				Documentation Changes: </p>
<p>				n/a </p>
<p>				Testing Requirements: </p>
<p>				A test was added to the ISQL grammar test suite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711129">711129</a></td>
<td>In rare timing dependent cases, the server could have crashed if one or more connections were using the blocking_others_timeout temporary option. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711139">711139</a></td>
<td>Under exceptionally rare conditions, the server may have crashed while accepting a new shared memory connection, if the client application exited during connect request processing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711141">711141</a></td>
<td>The ODBC driver could have crashed when executing a block insert statement using data-at-execution time parameters. The problem would only have occurred when mixing data-at-execution time parameters with regular parameters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711146">711146</a></td>
<td>The Interactive SQL utility has an option to control which result sets from a query to display; just the first one, or all of them. If &quot;Show all result sets&quot; was selected, the widths of columns in the table on the &quot;Results&quot; panels were not automatically sized to show the data. If &quot;Show only the first result set&quot; was selected (which is the default), the columns were automatically sized correctly. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711219">711219</a></td>
<td>Some occurances of Relay Server error messages had the backend farm and server names in the wrong order. Errors affected were: RSF13000, RSF13001, RSF13007, RSF14000, RSF14001, RSF14002, RSF14003. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711258">711258</a></td>
<td>Some shared memory sizes and other memory usage were logged using a format that cannot display value greater than 4 Gbytes. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711260">711260</a></td>
<td>In a mirrored database configuration on Windows, when the SQL Anywhere service encountered a fatal error, it may have failed to stop and the only way to stop it was to kill the dbsrv1x.exe process. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711375">711375</a></td>
<td>If the Remote Server name was longer than 64 characters, the system procedure sp_servercaps() would have returned a &quot;right truncation of string data&quot; error.</p>
<p>				Example:</p>
<p>				CREATE SERVER ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ</p>
<p>				CLASS &#39;SAODBC&#39;</p>
<p>				USING &#39;SQL Anywhere 12 CustDB&#39;;</p>
<p>				CALL sp_remote_tables(&#39;ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ&#39;);</p>
<p>				CALL sp_remote_columns (&#39;ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ&#39;, &#39;ULCustomer&#39;);</p>
<p>				CALL sp_servercaps (&#39;ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ&#39;);</p>
<p>				The first two calls succeed. The sp_servercaps() call would have failed as the argument was limited to 64 characters, which is too short.</p>
<p>				This problem has been fixed. The sp_servercaps() now accepts up to 128 characters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711377">711377</a></td>
<td>The text completer for the UltraLite function ML_GET_SERVER_NOTIFICATION would have completed the text as ML_GET_SERVIER_NOTIFICATION (note the extra &quot;I&quot; in &quot;SERVER&quot;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711380">711380</a></td>
<td>In the SQL Anywhere Monitor, the sparkline for a metric was usually drawn empty. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711393">711393</a></td>
<td>When a non-sticky load balancer was used in front of a Relay Server farm, concurrently requesting larger responses could have resulted in an RSE4003 error. This has been fixed. The workaround is to turn HTTP stickiness on for the load balancer, or to disable Relay Servers until only one remains enabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711401">711401</a></td>
<td>Under rare circumstances, snapshot transactions could have caused the server to fail assertions 200505, 200610, 201501, or 201503. This was more likely to have occurred when other connections had rollbacks of large transactions underway. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711499">711499</a></td>
<td>If Sybase Central encountered an internal error, and the user elected to send a report to Sybase, they would get a message saying that the report could not be sent, even if it was. This problem also occurred with the Interactive SQL utility, the Console utility, or the MobiLink Monitor, and has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711656">711656</a></td>
<td>When fetching an unsigned int value from an sajdbc, iqjdbc or asejdbc remote server, the returned value would always have been NULL. This problem has now been fixed.</p>
<p>				Note that this problem does not affect ODBC based remote servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711685">711685</a></td>
<td>The Relay Server was buffering the entire HTTP chunk in server response for validation before relaying to the client at once. Some backend servers produce large chunks, as big as many megabytes. The buffering was consuming memory, and so reducing scalability. The large write also affected timeliness of the flow control evaluation done interleaving on the same line of execution. This has now been fixed by replacing the handling with streaming packets of size no bigger than 64k regardless of chunk boundary. The validation is still performed but now done with state tracking on the go.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711705">711705</a></td>
<td>After creating a directory access server that used the new for 12.0.1 &quot;{varname}&quot; syntax in the USING clause, Sybase Central could have crashed when attempting to open the Directory Access Servers folder. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711791">711791</a></td>
<td>Recursive queries can not contain aggregate functions. When written using a window (OVER clause), aggregates were improperly allowed. In some cases this could have lead to the server crashing under certain system conditions. This has been fixed, queries with windowed aggregate functions now correctly give an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711803">711803</a></td>
<td>If the encrypt() or decrypt() functions were called with a non-null string but a null encryption key, the functions returned null. This has been fixed. An encryption key is required, so these functions will now raise an error if the encryption key is null.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR711977">711977</a></td>
<td>The help screen for several SQL Anywhere utilities (viewcert, createcert, dbcloudadd, dbcloudextract, and dbcloudcmd) tried to format the output for terminal display by splitting at 80 characters. When multi-byte characters were used, the splitting could have happened in the middle of a character, causing that character to display incorrectly. This also affected general output from the dbcloudcmd. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR712087">712087</a></td>
<td>While using blocking timeout options in the presence of other connections accessing referenced tables, ALTER TABLE ... DROP FOREIGN KEY statements could have caused the server to fail assertion 102813. This has been fixed. Now the alter table statement fails, properly displaying a locking error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR712095">712095</a></td>
<td>The Log Translation utility (dbtran) could have crashed if the transaction log ended in an incomplete checkpoint. This problem has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR712099">712099</a></td>
<td>Errors included in connection string parameters to the cloud command </p>
<p>				line utilities were not reported to the user. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR712102">712102</a></td>
<td>If an application called CallableStatement/PreparedStatement/Statement.executeQuery() and then subsequently called CallableStatement/PreparedStatement/Statement.getResultSet() to retrieve the same result set that was generated by calling executeQuery(), then the JDBC driver would have leaked the memory. This problem has now been fixed.</p>
<p>				Note, there are two workarounds for this problem, both of which are considered better JDBC programming practices. The first is to use the ResultSet returned by calling executeQuery() directly and thereby avoid the second unnecessary call to getResultSet(). The other approach is to call execute() instead of executeQuery(), followed by a call to getResultSet().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_98.htm#CR712115">712115</a></td>
<td>When providing named parameters to tasks through the Cloud Command utility (dbcloudcmd), the parameter name was only recognized if the case matched exactly. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712128">712128</a></td>
<td>In rare cases, the server could have hung while trying to shut down a database if there were open connections that subsequently had open Remote Data Access connections. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712421">712421</a></td>
<td>When sorting backups for a host by clicking on the Database column, it did not sort properly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712446">712446</a></td>
<td>Under rare circumstances, the ConvertServerToCloudPartner task could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712453">712453</a></td>
<td>A link from a copy database in the Databases panel for a Host would have failed when the database contained accented characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712456">712456</a></td>
<td>When using the DBRowReader class, it was possible for all the values in a long column to be erroneously returned as NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712457">712457</a></td>
<td>On Linux systems, the RepairServer task was not able to kill a server process during the repair steps. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712459">712459</a></td>
<td>In very rare timing dependent cases, a copy node that was both a parent and a child could have crashed, or failed with an assertion, while the transaction log was being renamed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712618">712618</a></td>
<td>Setting the isql_allow_read_client_file or isql_allow_write_client_file options in the Interactive SQL utility to &#39;on&#39; or &#39;off&#39; had no effect. Interactive SQL would always behave as if the option was &#39;prompt&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712710">712710</a></td>
<td>If a hostname was specified in a maintenance plan, full backups created through that maintenance plan may not have been stored on the specified host. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712720">712720</a></td>
<td>If an incremental backup succeeded but validation failed, and another incremental backup was executed on the same database, the resulting incremental backup could have been unusable for recovery. This has been fixed, if an incremental backup is startedn and the most recent full backup (or any backup since) is not marked as &quot;successful&quot;, a full backup is done instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712721">712721</a></td>
<td>If an incremental backup succeeded, but validation failed, attempting to validate that backup would have validated the associated full backup plus all incremental backups up to but not including the one specified. If the validation succeeded, the backup would then have been marked as valid, even if the files created by the backup were corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712722">712722</a></td>
<td>Under rare circumstances, rollback of a DML statement that affected a table with at least one immediate text index defined could have caused production assertion failure 200112. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712851">712851</a></td>
<td>A cloud partner could have hung upon losing quorum. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712884">712884</a></td>
<td>In very rare timing dependent cases, if a mirroring primary failed over and then failed back, one partner could have received a log mismatch error and shutdown, and transactions that had been submitted could have been lost. Specifically, in order for this to have occurred with partners S1 and S2: </p>
<p>				- S1 must initially have been the primary, failed or otherwise have shutdown, causing a failover to S2 </p>
<p>				- S2 took over as primary </p>
<p>				- while S1 was restarting, S2 must have lost quorum and have been shutting down </p>
<p>				In which case it was possible for S1 to have become primary again, even though it was missing the transactions from when S2 was primary. </p>
<p>				This has been fixed to ensure that S1 will not be primary in this case, and S2 will continue to be primary once it restarts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR712964">712964</a></td>
<td>The server could have crashed in very rare cases while attempting to close a connection that had previously made an external environment call if the external environment call subsequently made a server side request that obtained table locks which were still being held when the connection was closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713024">713024</a></td>
<td>The Apache setup script now generates &lt;LocationMatch&gt; tags instead of &lt;Location&gt; tags when setting up Apache for RelayServer use. The use of &lt;LocationMatch&gt; allows for a wider range of regular expressions for URL matching, hence, reducing errors resulting from URL-mismatching. This fix also includes changes to the location of generated rs.config and oe.config files (used by the simple test app). The rs.config file is now generated in the RelayServer binaries directory (containing Apache modules and rshost), and the oe.config file is now generated in the same setup scripts directory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713098">713098</a></td>
<td>When the Relay Server was restarted, new persistent HTTP requests from persisting client cookies from a previous instance of the Relay Server could have caused truncated responses on new requests from new sessions by the time the backend server could have timed out the persistent connection of the old session. This has been fixed. A workaround is to have clients clear their cookie cache. The Relay Server affinity cookie is implemented as a non-persistent cookie, standard http client implementation shouldn&#39;t persist the RS affinity cookie across restart of the http client agent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713113">713113</a></td>
<td>In rare timing dependent cases, a mirror or copy node could have crashed or failed assertions (the most likely assertion was 100927). This could have occurred when very frequent transactions were committed on the primary and the mirror or copy node was not applying the operations as fast as it was writing them (i.e. db_property( &#39;LastWrittenRedoPos&#39; ) is significantly more than db_property( &#39;CurrentRedoPos&#39; )). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713129">713129</a></td>
<td>The Change Server Version wizard would have complained about an invalid search after clicking on &#39;Next&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713374">713374</a></td>
<td>If a maintenance plan contained a host ID, incremental backups done through that maintenance plan would not have considered that host and would do the incremental backup to the host of the most recent full backup for each database. This has been fixed, if an incremental backup would be done to a host other than the one in the maintenance plan, a full backup to to the maintenance plan&#39;s host is done instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713388">713388</a></td>
<td>Support for the latest release of .NET Framework, .NET 4.5, has now been added. The following features are new in the .NET Framework 4.5 RC:</p>
<p>				1. Asynchronous Programming</p>
<p>				The new asynchronous programming feature provides a simple technique to make code asynchronous.</p>
<p>				Asynchronous code can make the user interface of client applications more responsive, it can also make server applications more scalable. Writing asynchronous code has traditionally involved installing a callback (also called continuation) to express the logic that occurs after the asynchronous operation finishes. This complicates the structure of asynchronous code as compared with synchronous code.</p>
<p>				.NET 4.5 allows call into asynchronous methods without using callbacks, and without splitting code across multiple methods or lambda expressions.</p>
<p>				The &#39;async&#39; modifier specifies that a method is asynchronous. When calling an async method, a task is returned. When calling an &#39;await&#39; statement against the task, the current method exits immediately. When the task finishes, execution resumes in the same method.</p>
<p>				Calling an async method does not allocate any additional threads. It may use the existing I/O completion thread briefly at the end.</p>
<p>				The following methods were added in SQL Anywhere ADO.NET provider to support asynchronous programming:</p>
<p>				SAConnection.OpenAsync</p>
<p>				SACommand.ExecuteDbDataReaderAsync</p>
<p>				SACommand.ExecuteNonQueryAsync</p>
<p>				SACommand.ExecuteReaderAsync</p>
<p>				SACommand.ExecuteScalarAsync</p>
<p>				SADataReader.GetFieldValueAsync</p>
<p>				SADataReader.IsDBNullAsync</p>
<p>				SADataReader.NextResultAsync</p>
<p>				SADataReader.ReadAsync</p>
<p>				SABulkCopy.WriteToServerAsync</p>
<p>				Here are some examples:</p>
<p>				internal async Task Execute()</p>
<p>				{</p>
<p>				using (SAConnection conn = new SAConnection(&quot;DSN=SQL Anywhere 16 Demo&quot;))</p>
<p>				{</p>
<p>				SACommand command = new SACommand(&quot;select 1&quot;, conn);</p>
<p>				int result = MethodAsync(conn, command).Result;</p>
<p>				command = new SACommand(&quot;select top 10 * from SalesOrders&quot;, conn);</p>
<p>				using (DbDataReader reader = await command.ExecuteReaderAsync())</p>
<p>				{</p>
<p>				while (await reader.ReadAsync())</p>
<p>				Console.WriteLine(String.Format(&quot;{0}&quot;, reader[0]));</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				private async Task&lt;int&gt; MethodAsync(SAConnection conn, SACommand cmd)</p>
<p>				{</p>
<p>				await conn.OpenAsync();</p>
<p>				await cmd.ExecuteNonQueryAsync();</p>
<p>				return 1;</p>
<p>				}</p>
<p>				private async Task ExecuteSqlTransaction()</p>
<p>				{</p>
<p>				using (SAConnection connection = new SAConnection(&quot;DSN=SQL Anywhere 16 Demo&quot;))</p>
<p>				{</p>
<p>				await connection.OpenAsync();</p>
<p>				SACommand command = connection.CreateCommand();</p>
<p>				SATransaction transaction = await Task.Run&lt;SATransaction&gt;(() =&gt; connection.BeginTransaction());</p>
<p>				command.Connection = connection;</p>
<p>				command.Transaction = transaction;</p>
<p>				command.CommandText = &quot;Delete From Departments Where (DepartmentID = 777 OR DepartmentID = 888)&quot;;</p>
<p>				await command.ExecuteNonQueryAsync();</p>
<p>				command.CommandText = &quot;Insert into Departments(DepartmentID, DepartmentName) VALUES (777, &#39;HR&#39;)&quot;;</p>
<p>				await command.ExecuteNonQueryAsync();</p>
<p>				command.CommandText = &quot;Insert into Departments(DepartmentID, DepartmentName) VALUES (888, &#39;Supporting&#39;)&quot;;</p>
<p>				await command.ExecuteNonQueryAsync();</p>
<p>				await Task.Run(() =&gt; transaction.Commit());</p>
<p>				Console.WriteLine(&quot;Both records are written to database.&quot;);</p>
<p>				}</p>
<p>				}</p>
<p>				private async Task AsyncSqlBulkCopy()</p>
<p>				{</p>
<p>				using (SAConnection conn = new SAConnection(&quot;DSN=SQL Anywhere 16 Demo&quot;))</p>
<p>				{</p>
<p>				await conn.OpenAsync();</p>
<p>				DataTable dt = new DataTable();</p>
<p>				using (SACommand cmd = new SACommand(selStmt, conn))</p>
<p>				{</p>
<p>				SADataAdapter adapter = new SADataAdapter(cmd);</p>
<p>				adapter.Fill(dt);</p>
<p>				using (SABulkCopy bcp = new SABulkCopy(conn))</p>
<p>				{</p>
<p>				bcp.DestinationTableName = destTable; </p>
<p>				await bcp.WriteToServerAsync(dt);</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				2. SACredential class.</p>
<p>				A new class SACredential has been added for setting the credentials outside of the connection string via the new Credential property of SAConnection. Now the developer can create a SACredential object with a UserId and a SecureString Password to hold the credential values of a connection. This helps mitigate the memory dump vulnerability of keeping the User Name and Password in the connection string.</p>
<p>				Here&#39;s an example:</p>
<p>				private void OpenConnection()</p>
<p>				{</p>
<p>				SecureString password = new SecureString(); // txtPassword.SecurePassword;</p>
<p>				password.MakeReadOnly();</p>
<p>				SACredential credential = new SACredential( &quot;dba&quot;, password );</p>
<p>				using ( SAConnection conn = new SAConnection( &quot;DSN=SQL Anywhere 16 Demo&quot;, credential ) )</p>
<p>				{</p>
<p>				conn.Open();</p>
<p>				}</p>
<p>				}</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713390">713390</a></td>
<td>In some circumstances, such as a transient connection error to the database server, the MobiLink Client process (dbmlsync) that was launched by the QAnywhere agent could have terminated prematurely. When this occurred, the QAnywhere agent could not perform any message transmission, and the only remedy was to restart the QAnywhere agent. This has been fixed by adding the capability to the QAnywhere agent to restart dbmlsync if it detects that the dbmlsync process has terminated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713455">713455</a></td>
<td>Support has been added to the MobiLink Server for consolidated databases running on Microsoft SQL Server 2012 servers with the Microsoft native ODBC driver named SQL Server Native Client 11.0, version 2011.110.xxx.xx. This support is limited to Microsoft Windows only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713458">713458</a></td>
<td>The Outbound Enabler was not logging requests at verbosity 1, but the Relay Server does. This has been corrected by lowering the minimum log verbosity level of RS_CLI_SESSION_BEGIN and RS_CLI_REQUEST_BEGIN packets in order to have them logged at verbosity level 1 instead of 3 in the Outbound Enabler. There will now be one log event per HTTP request at log level 1 like the Relay Server does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713499">713499</a></td>
<td>If a connection had multiple uncommitted operations (INSERT, UPDATE, DELETE), and another connection executed a COMMIT, an ArrayIndexOutOfBounds or a cast exception may have occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713542">713542</a></td>
<td>The internal procedure dbcloud_compute_unload_key() was testing for the secure feature READFILE twice instead of READFILE and WRITEFILE. This has been corrected. It did not pose any security risk, as the procedure itself does not write any files and the check of the WRITEFILE secure feature is performed again later in the cloud unload/reload code that calls the procedure dbcloud_compute_unload_key().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713557">713557</a></td>
<td>Some events and tasks took longer than expected to execute. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713565">713565</a></td>
<td>Sorting a column in any of the details panels did not preserve the setting the next time the panel was visited. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713566">713566</a></td>
<td>The cloud software panel may not have always refreshed the installed cloud software list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713568">713568</a></td>
<td>Mini-dump files generated by SQL Anywhere software on Linux system could have been unusable. This problem was most likely to occur if the process being dumped was using a large number of threads (&gt; 480). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713671">713671</a></td>
<td>Attempting to applying a maintenance plan to multiple databases where one or more had accented characters in the name would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713681">713681</a></td>
<td>If the server was displaying the usage window, or was very early in the start-up process, and the Windows machine the server was running on was suspended, the server could have crashed when the machine was restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713695">713695</a></td>
<td>The fault tolerant HTTP processing in UltraLiteJ for Java 2 Platform Standard Edition (J2SE) did not work correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713785">713785</a></td>
<td>In some cases, errors relating to deadlocks or failures due to concurrent operations could have ocurred more often than necessary. These appeared in the diagnostics log, and would have been associated with a slight performance degradation. This has been fixed, Although these errors do continue to appear in properly functioning clouds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713897">713897</a></td>
<td>For tenant databases that were very active, validating a backup could have been cancelled before it was complete. If the validation was done as part of a backup, the backup could have been marked as &quot;validation failed&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713899">713899</a></td>
<td>A query with a reverse index scan on the left hand side of a join may have resulted in a null pointer exception. </p>
<p>				For example: </p>
<p>				CREATE TABLE t1( a1 INT PRIMARY KEY ) </p>
<p>				CREATE TABLE t2( a2 INT PRIMARY KEY ) </p>
<p>				SELECT t1.a1, t2.a2 FROM t1, t2 ORDER BY t1.a1 DESC </p>
<p>				Also, a query with a reverse index scan on the right hand side of a cross join may not have returned any rows. </p>
<p>				For example:</p>
<p>				SELECT t1.a1, dt.a FROM t1, (SELECT a2 FROM t2 ORDER BY a2 DESC) AS dt( a ) ORDER BY t1.a1 ASC </p>
<p>				Both these issues have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713914">713914</a></td>
<td>For a pooled CmdSeq connection or HTTP connection, connection_property( &#39;ApproximateCPUTime&#39; ) incorrectly included CPU time from before the connection was reused, and connection_property( &#39;LoginTime&#39; ) was not reset when a pooled connection was reused. This has been fixed, so that &#39;ApproximateCPUTime&#39; now only includes time from when the application connected, and &#39;LoginTime&#39; is set to the time when the application connected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR713922">713922</a></td>
<td>If a query contained two predicates on the same column T.A, of the form &#39;T.A &gt; constant&#39; and &#39;T.A = R.A&#39; , and an index on the column T.A exists, the cardinality of the index scan </p>
<p>				with the predicate &#39;T.A = R.A&#39; was incorrectly computed always using the predicate &#39;T.A &gt; constant&#39;. This may have affected the quality of the best plans for such queries. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714093">714093</a></td>
<td>The Event Trace Data File Management utility (dbmanageetd) would have shown an incorrect start time and/or end time when the show summary switch (-s) was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714440">714440</a></td>
<td>In a high availability system, a forced or preferred server fail-over could have failed to restart the database on the primary server if all of the following conditions held: </p>
<p>				- the database character set was different from the operating system character set </p>
<p>				- the database name (or alias) contained characters other than 7-bit ASCII characters </p>
<p>				- an &quot;ALTER DATABASE SET PARTNER FAILOVER&quot; statement was executed, or a preferred partner was defined and the current primary was the non-preferred partner. </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714525">714525</a></td>
<td>A mirrored tenant database may have been left in an invalid state if the arbiter of the tenant database was dropped by the task DropServer or DropHost. Checking for the arbiter should have been done prior to dropping the arbiter so that the arbiter can be dropped under the proper condition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714642">714642</a></td>
<td>If SQL Remote had failed to find a publisher for the database it was connected to, it would have continued to run and could have generated a large number of duplicate messages for a single remote user. This has been corrected so that SQL Remote will now shut down when it determines there is no publisher.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714654">714654</a></td>
<td>If a cloud database became unavailable, and it was being monitored by the SQL Anywhere Monitor, the alert details would have claimed the server name to be &#39;null&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714656">714656</a></td>
<td>The server could have crashed when starting a database. If the server was in the process of shrinking the cache, references to memory that were no longer available were possible. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714752">714752</a></td>
<td>Queries using text indexes with constructs of the form CONTAINS( ... &#39;xxx*&#39; ... ) may have had poor performance. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714776">714776</a></td>
<td>In rare timing dependent cases, a high availability mirror or copy node could have incorrectly failed with the assertion 100927. The assertion could have occurred just after the mirror or copy node had connected to its partner or parent and had just started synchronizing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714777">714777</a></td>
<td>In rare cases, a mirroring server could have crashed if it received an invalid request from another mirror server. This has been fixed to no longer crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714809">714809</a></td>
<td>A result set could have been returned with both the pre-image and the post-image of a row that was updated while the cursor was sitting on it. This has been fixed. Result sets will now return only one copy of the row, the pre-image or the post-image, but not both, depending on the isolation level and when the update is committed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714896">714896</a></td>
<td>Issues with the IIS 6 and IIS&amp; QuickSetup scripts have been corrected:</p>
<p>				- the IIS7 auto install could not be invoked if the appcmd.exe utility was missing. This issue has been fixed so that appcmd.exe utility is not needed before triggering IIS7 [re]installation.</p>
<p>				- the IIS7 Relay Server setup script could not handle a machine not having a domain suffix.</p>
<p>				- the IIS6 &amp; IIS7 Relay Server setup scripts were referencing sleep.exe which is not a standard utility on Windows. The reference has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR714899">714899</a></td>
<td>The server would have returned error code 503 when attempting a connection to an ESMTP server using xp_startsmtp. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715025">715025</a></td>
<td>A Relay Server, which doesn&#39;t produce urgent flow control packets according to protocol, could have crashed the Outbound Enabler. No Relay Server has been released with this problem, but a fix has been made so that the Outbound Enabler will give an error and not crash in such situations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715033">715033</a></td>
<td>The following changes have been made to the Relay Server level 4 debug log:</p>
<p>				- The &quot;Replaying 0 bytes ...&quot; message was confusing and has been suppressed.</p>
<p>				- Added &quot;Response headers submitted for sending&quot; message.</p>
<p>				- Logging Content-length expectation up front.</p>
<p>				- Enhance Content-length replay status with remaining length.</p>
<p>				- Added user friendly response status and header logging so that users don&#39;t need to suffer level 5 payload logging which is heavier and less readable.</p>
<p>				- Moved user friendly request header logging from log level 5 to log level 4 so that user don&#39;t need to suffer level 5 payload logging which is heavier an less readable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715069">715069</a></td>
<td>Sybase Central would have crashed on shutdown if the Services folder was in the process of polling, that is, if the &quot;Enable polling&quot; check box on the Polling tab of a service property sheet was checked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715167">715167</a></td>
<td>The Relay Server affinity cookies were sometime not used properly by third party client software in cases where the same cookie was used concurrently on different HTTP requests. In such situation, the Relay Server behaviour was to let the latest request to take over the connection associated with the affinity cookie. An optional backend farm property called renew_overlapped_cookie has now been introduced. It has a default value of &#39;No&#39;, which maps to the existing behavior. When renew_overlapped_cookie is set to &#39;Yes&#39;, the Relay Server will detect overlap for the farm that has this property explicitly turned on and renew the overlapping cookie by creating a brand new affinity binding. The request with the renewal will still be routed to the same backend server but not the same backend connection as the on going request that it overlapped with. A new backend connection will be created instead.</p>
<p>				Relay Server configuration example:</p>
<p>				[backend_farm]</p>
<p>				description = a backend server farm</p>
<p>				id = RSTEST02.F0</p>
<p>				renew_overlapped_cookie= yes</p>
<p>				Online update of the of the renew_overlapped_cookie property is supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715218">715218</a></td>
<td>In rare cases, SQL Remote would have started applying a multi-part message before receiving the last piece the message, and then would have ignored all the operations in the last piece of the message when it was received. This has been fixed, SQL Remote will make sure it has received all the pieces of a multi-part message before applying them.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715309">715309</a></td>
<td>The server was incorrectly accepting the special values NaN, INF, and INFINITY for double and float data types when receiving host variable values. This has been fixed. Now the server will set the SQL error &quot;Value NaN/INF out of range for destination&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715310">715310</a></td>
<td>If a mirror or copy node was shutdown, and it was actively applying log operations from the primary or its parent, the server could have failed assertion 100904 - &quot;Statement interrupted by user&quot;. This has been fixed by not failing this assertion when the server is in the process of shutting down.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715469">715469</a></td>
<td>The interactive response of the Lookup Table Name and Lookup Procedure Name windows in the Interactive SQL utility has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715473">715473</a></td>
<td>In extremely rare cases, the server may have crashed on shutdown on multi-CPU machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715480">715480</a></td>
<td>When using the Unload utility to rebuild a pre-version 10 database, if the connection string contained the server name or the source database name, then the warning &#39;Rebuild of database with older file format ignoring connection parameter &quot;???&quot;&#39; was printed with question marks for the parameter. This has been fixed so that the parameter name is now displayed in the message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715583">715583</a></td>
<td>It was possible to create duplicate indexes for a table in a case-sensitive database if the only difference between the index names was case or accent. For example, both foo and Foo could have been created with same or different definitions. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715597">715597</a></td>
<td>Performance of statements that select from a stored procedure call is slightly improved when the call results in a SQLError.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715615">715615</a></td>
<td>Under rare circumstances, database recovery could have held locks on a new text index. This has been fixed.</p>
<p>				Also, text index validation could have returned an error later than necessary. This has been fixed in version 12.0.1 and later.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715672">715672</a></td>
<td>Attempting to connect Sybase Central to a database running on a version 11.0.0 or earlier server would have caused Sybase Central to crash. This has been</p>
<p>				fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715687">715687</a></td>
<td>When the server collects information about database pages to be used for cache warming in the next database start, it also incorrectly collected information about pages that the database cleaner task reads. This has been fixed so that page recording no longer includes pages read by the cleaner since these pages are different each time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715799">715799</a></td>
<td>Two foreign key or unique constraints on the same table could have been created with names that represent the same identifier, but differ only in case. For example &#39;myFK&#39; and &#39;myfk&#39;.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715843">715843</a></td>
<td>In rare cases, attempting to use nested procedures with nested transactions and internally generated temporary tables would have failed assertion 201501, 101412, 200505 or others. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715904">715904</a></td>
<td>Installing SQL Anywhere in silent mode on Solaris systems may have resulted in an error like:</p>
<p>				&quot;The following option names are invalid or are not exposed by the registration key provided&quot;.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715906">715906</a></td>
<td>The Support utility (dbsupport) may have crashed while attempting to receive a response from the error reporting site, if the error reporting site was not available. This has not been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR715909">715909</a></td>
<td>The output from the system procedure sa_locks() could have been incorrect, in that it may have missed reporting some row locks. This has now been corrected. This was a reporting problem only, and did not affect actual locking behaviour.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716036">716036</a></td>
<td>The changes for Engineering case 702214 may have made an external environment call take significantly longer when connected to a case sensitive database. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716037">716037</a></td>
<td>If the Down Channel between the Relay Server and the Outbound Enabler was healthy, the Outbound Enabler would not have checked for liveness on the Up Channel. In very rare circumstances, the Down Channel could be healthy, but an intermediary between the Relay Server and Outbound Enabler has closed the socket for the Up Channel at the Relay Server, while leaving the corresponding socket on the Outbound Enabler open. In this scenario, the Outbound Enabler would never have attempted to re-connect the Up Channel, and no communication with the backend server was possible. When the Down Channel is healthy, the Outbound Enabler now increases the time for the liveness by a factor of four instead of disabling the liveness.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716317">716317</a></td>
<td>Under some circumstances, especially if a cached plan was used, a select from a DML statement (INSERT, DELETE, UPDATE, or MERGE) may have returned an incorrect result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716390">716390</a></td>
<td>N ADO .Net client application could have received a NullReferenceException when updating entities using Fixed concurrency mode. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716529">716529</a></td>
<td>Installing cloud software on multiple hosts with a particular name format may have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716537">716537</a></td>
<td>In a multi-level read-only scale-out configuration, executing the &quot;ALTER MIRROR SERVER ... ALTER PARENT FROM ...&quot; statement could have resulted in read-only scale-out servers not being able to connect to their parent, even if their parent was running. This has been fixed. </p>
<p>				Note, a work around is to stop and restart copy node servers that cannot connect to their running parent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716538">716538</a></td>
<td>An addition fix was required for Engineering case 714656, where the server could have crashed when auto-starting a database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716544">716544</a></td>
<td>Explicitly passing in NULL as the 3rd parameter (algorithm) to the encrypt or decrypt function would have resulted in the error: &quot;The string is too long (Parameter 3)&quot; SQLCODE -973, rather than having the encryption/decryption default to AES128. This has been fixed. Not specifying the third parameter at all would have worked properly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716549">716549</a></td>
<td>Generating a diagnostic log from a host &#39;Events &amp; Tasks&#39; panel may have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716625">716625</a></td>
<td>In rare timing dependent cases, a transaction which was successfully committed on a primary server could have been lost. In order for there to have been a chance of this occurring, all of the following needed to be true: </p>
<p>				- the application was connected to a primary server that lost quorum (the server lost the connection to both the mirror and arbiter servers) </p>
<p>				- the application stayed connected to this server (the old primary server) even though the network connection to other servers dropped </p>
<p>				- the application was in the middle of committing a transaction between the time that the old primary server lost its connection to the mirror and arbiter server, and when the old primary server restarted as the new mirror server because it lost quorum </p>
<p>				- the old mirror server took over as the new primary (the mirror server must have been able to connect to the arbiter server for this to occur) </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716746">716746</a></td>
<td>On the Backups panel for a host, clicking a column to sort it would not have worked properly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716907">716907</a></td>
<td>Sometimes, connections to a cloud would not show its HA information properly on the Console&#39;s Cloud Overview panel. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716908">716908</a></td>
<td>Attempting to upgrade a database initialized with software prior to version 10, to version 10 or higher, on a computer running Linux that uses a 3.x kernel may have failed. This was most likely on systems with more than 4 GB of RAM, or with 32-bit software. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716916">716916</a></td>
<td>The UpgradeCloudInfrastructure task could have failed during stage 1 if cloud software or hosts were recently dropped. This has been fixed. </p>
<p>				A work around is to manually run the CleanCloud task and then run the UpgradeCloudInfrastructure task again. </p>
<p>				Engineering Description:</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR716984">716984</a></td>
<td>When viewing backups for a host in the Cloud Console and changing to a new page, selecting a new host to show its backups would remain on that page still showing the first hosts backups. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717011">717011</a></td>
<td>In the &#39;Backups&#39; or &#39;Back Up &amp; Restore&#39; tabs of the Cloud Console, the backup validation result would have shown the result from the previous row if the backup had failed. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717014">717014</a></td>
<td>Under rare circumstances, incremental backups could have incorrectly been assigned to full backups, and/or created on the wrong host. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717024">717024</a></td>
<td>Attempting the execute a CREATE EXISTING TABLE that referenced a remote server using IBM&#39;s NotesSQL ODBC driver version 8.5.1 would have resulted in mangled column names. The statement would likely have failed with a Syntax error (SQLCODE=-131, ODBC 3 State=42000). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717096">717096</a></td>
<td>The Export Wizard in the Interactive SQL utility had the &quot;Include column names&quot; check box incorrectly disabled when the user elected not to escape text data. These two options are, in fact, independent. Now, the &quot;Include column names&quot; check box is always enabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717100">717100</a></td>
<td>Unchecking the &quot;Escape text data&quot; box in the Export Wizard did not turn off escaping of text data. This has been corrected so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717187">717187</a></td>
<td>The Interactive SQL utility&#39;s OUTPUT statement can write data to a text file. Special characters in the data can be escaped, or not, as specified by the ESCAPES clause. If ESCAPES OFF was specified, special characters were not escaped, but the quote character (an apostophe, by default) was not being doubled up as it should have been. As a result, the generated text file could not be subsequently processed by the INPUT statement because the quotes were not matched. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717313">717313</a></td>
<td>Archive backups would have suspended checkpoints until the next COMMIT or ROLLBACK. This would have prevent checkpoints, and commands that implicitly issued checkpoints, from running until that point. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717316">717316</a></td>
<td>In some circumstances, the server could have crashed, failed assertions, or rarely, could have returned incorrect data, when working with tables that contained more than eight thousand columns. This has been fixed.</p>
<p>				Note, a database with more than eight thousand columns that is run with a server that contains this fix cannot be run on an older server. Doing so will result in startup error -1007 &quot;Unable to start specified database: &#39;%1&#39; is an invalid transaction log&quot; on the older, unfixed server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717363">717363</a></td>
<td>The ADO.NET provider was generating inefficient queries, using CHARINDEX, for some Entity Framework functions, such as StartsWith, EndsWith, and Contains. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717377">717377</a></td>
<td>A query involving CASE or IF, with references to a sub-query, could have crashed UltraLite when the query was executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717388">717388</a></td>
<td>If there were several system servers on a host, all of which were not running, the cloud agent may not have run an agent action on that host within the timeout period of the action. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717390">717390</a></td>
<td>The Support utility (dbsupport) could have crashed if Error Reporting server was down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717474">717474</a></td>
<td>If an owner was given on a CREATE TABLE or CREATE VIEW statement within a CREATE SCHEMA statement, and the owner did not match the current user, the object was created anyway if the current user had DBA authority. This has been fixed so that objects cannot be created using CREATE SCHEMA for a user other than the current user.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717497">717497</a></td>
<td>A DESCRIBE of certain types of queries (eg. recursive) from an embedded SQL application could have resulted in the error -700: &quot;SQLDA fields inconsistent for a multi-row SQLDA&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_99.htm#CR717545">717545</a></td>
<td>On Solaris systems, the setup script run by the install would have failed with the message &quot;Bad string&quot; when run on systems with a multi-byte charset locale. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717571">717571</a></td>
<td>If the username given in the AUTHORIZATION clause of the CREATE SCHEMA statement did not match the current user, the statement succeeded anyway and the objects created were owned by the current user. This has been fixed so as to behave as documented, the userid must match the userid of the current user, an error will occur if it does not.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717582">717582</a></td>
<td>When running on Mac OS X and iOS systems, it is possible that writes to an UltraLite database file could have been reordered by the underlying hardware/storage device under certain circumstances, possibly resulting in a corrupt database file. This has been corrected by having UltraLite make extra calls to request the hardware complete writes in order when required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717689">717689</a></td>
<td>If an 11.x or 12.x database was upgraded using either the Upgrade utility, or ALTER DATABASE UPGRADE, then external environments would no longer have started. This problem has now been fixed.</p>
<p>				Note that in order to apply this fix, the database will need to be upgraded again once this fix has been properly deployed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717690">717690</a></td>
<td>Certain applications often make decisions based on the set of data types returned when making a SQLGetTypeInfo() ODBC call or a DatabaseMetaData.getTypeInfo() JDBC call. An example of such an application is the &quot;Export to ODBC Database&quot; functionality in MS Access where the application will use the data type information returned by the SQLGetTypeInfo() call to decide what column types should be included in the subsequent CREATE TABLE statement. In some rare cases, the choices the application makes due to the existence of certain data types may not be the most appropriate and it is sometimes useful to hide the fact that the ODBC or JDBC driver supports certain data types. The new SuppressInfoForDataTypes connection option can be used for both the SQL Anywhere ODBC Driver and the SQL Anywhere JDBC Driver to instruct to the driver to not return data type information for certain data types. The set of data types to suppress should be specified as a comma separated list. For example, the application could have the following on the ODBC or JDBC connection string:</p>
<p>				SuppressInfoForDataTypes=nvarchar,long nvarchar;varbit</p>
<p>				The above would then instruct the driver that data type information for the nvarchar, long nvarchar and varbit data types should not be returned for this specific connection when the application makes a SQLGetTypeInfo() or DatabaseMetaData.getTypeInfo() call. It should be noted that the suppression only applies to returning data type information from the driver. The application is still free to use the data type in column declarations and when retrieving result sets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717694">717694</a></td>
<td>Execution times of prefetches increased when compared with previous releases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717784">717784</a></td>
<td>On Windows 8 and Windows 2012 systems, the platform-related properties would have indicated an &quot;unrecognized Windows version&quot;. Support for these two platforms has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717881">717881</a></td>
<td>When viewing backups for a host or a database, a sorted column would still have shown a sort arrow when switching to a new host or database, but the column would not be sorted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717944">717944</a></td>
<td>In rare cases, calling the system procedure sa_transactions(), may have lead to a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717965">717965</a></td>
<td>The &quot;Backups&quot; and &quot;Back Up &amp; Restore&quot; panels did not show a column indicating the backup result. If a backup failed, a file size of 0 was the only indication. Unfortunately, a pending backup also shows a file size of 0. A &#39;Backup Result&#39; column has now been added, which will show and the file size is blank unless the backup succeeds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR717966">717966</a></td>
<td>The time to process an HTTP or HTTPS request that contained a large number of input variables may have been longer than expected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718046">718046</a></td>
<td>When creating an ADO.NET Entity Data Model using an existing stored procedure, some of the SQL Anywhere data types were not mapped correctly. This would have been seen when clicking the &quot;Get Column Information&quot; button in the &quot;Add Function Import...&quot; dialog. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718122">718122</a></td>
<td>If a connection updated a table and subsequently left a cursor open past a COMMIT or ROLLBACK, other connections would not have been able to lock the entire table in share mode (i.e. LOCK TABLE t IN SHARE MODE) until the updating connection closed the cursors and did a COMMIT or ROLLBACK. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718127">718127</a></td>
<td>When importing or exporting to an UltraLite database using the Interactive SQL utility, LONG BINARY and LONG VARCHAR datatypes could have been truncated or an error reported. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718130">718130</a></td>
<td>When using a Web browser to ping the MobiLink server, the &quot;404 Not Found&quot; response could have contained extra bytes at the end. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718270">718270</a></td>
<td>In the Create User wizard, attempting to create a user without a password and setting the login policy to something other than &quot;root&quot; would have caused the login policy setting to be ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718317">718317</a></td>
<td>A query using sub-queries with a UNION may have returned incorrect results.</p>
<p>				For example:</p>
<p>				select (select 1) union select 2&quot;</p>
<p>				the sub-query (select 1) was not evaluated properly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718369">718369</a></td>
<td>Attempting to insert a string literal containing multi-byte characters into an nchar based proxy column may have actually inserted mangled data into the remote column, if the local database character set was not UTF8. This problem has now been fixed.</p>
<p>				Note that inserting multi-byte character data using an nchar based variable or column as the source works fine. As a result, using an nchar based variable instead of a string literal is a possible work around for this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718375">718375</a></td>
<td>In rare cases, a copy node whose parent was not the primary or root could have failed assertion 100927 immediately after a log rename. </p>
<p>				In very rare cases, a mirror or copy node that was automatically restarted immediately after a log rename could have incorrectly restarted as a non-mirrored read-write </p>
<p>				database. The automatic restart could have occurred for a number of reasons, including rare cases of a lost connection to the parent server. </p>
<p>				Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718489">718489</a></td>
<td>Calling a stored procedure from any driver that uses the SQL Anywhere C API runtime library (eg. python, perl, ruby) would have returned incorrect values for the second and subsequent string (binary, varchar, long binary, or long varchar) OUT parameters. All string prameters would have been given the value of the first string parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718497">718497</a></td>
<td>Creating a REMOTE SERVER definition with a USING clause that contained both &quot;DRIVER=SQL Anywhere Native&quot; and &quot;DSN=...&quot; would have resulted in the connection string used to connect to the remote SA server not containing the items in the DSN entry. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718525">718525</a></td>
<td>In very rare situations, the server could crash when using the OPENSTRING clause, string concatenation, substring operation, or attempting to execute a LOAD TABLE statement. The problem was most likely to have occurred when cache pressure was very high. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718761">718761</a></td>
<td>SABulkCopy would have failed with an OutOfMemoryException when copying large tables using a DataReader. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718762">718762</a></td>
<td>The 揊unction Import� construct within the Entity Framework would have failed with a NullReferenceException for return types of &quot;None&quot;. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718875">718875</a></td>
<td>In a mirroring setup, if a copynode or the mirror was still connected to its parent or partner, and was busy receiving a lot of pages from its parent, and needed to restart for some reason, the server could have waited until it wasn抰 as busy before restarting. A mirrored database may need to restart in many situations. For example, a restart is required when a copynode抯 parent has changed, or when a mirror is converted to a copy node. This has been fixed, so the server will restart much sooner after deciding it needs to restart, and will not wait until there is a break in receiving information from its parent or partner.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR718970">718970</a></td>
<td>Creating an incremental backup could have failed if the machine hosting the corresponding full backup was not currently running a server capable of running the database being backed up. This has been fixed. Now a full backup (to a different host) will be done. However, if the incremental backup is being done through a maintenance plan with a specific host name, no backup will be done.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719080">719080</a></td>
<td>If the MibiLink client executable (dbmlsync) had been located in a directory that was specified in the PATH environment variable that contained two consecutive backslashes (for example, c:\\sa12\bin64), the Dbmlsync .NET API could have failed to start the dbmlsync process. This problem has now been fixed.</p>
<p>				A workaround to this problem is to set the &quot;server path&quot; property using the SetProperty method to specify the location of the dbmlsync executable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719089">719089</a></td>
<td>A JDBC application that connected using the SQL Anywhere JDBC driver, and then subsequently exited with a large number of connections still open, could in rare cases crash or hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719105">719105</a></td>
<td>In some circumstances, the primary server in a mirroring setup may not have allowed the mirror to take over as primary when an ALTER DATABASE SET PARTNER FAILOVER occurred. The server would have waited until all active transactions were committed. This has been fixed. Now, the failover will occur as soon as the servers are synchronized, and the mirror has all the committed transactions from the primary. Any transactions that have not been committed will be lost when the failover occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719107">719107</a></td>
<td>In the cloud, the FailoverToCloudPartner task could have been reported as cancelled, even if it ran successfully. This has been fixed so that the status of the FailoverToCloudPartner task should now be accurately reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719111">719111</a></td>
<td>User-defined counters are implemented as UNSIGNED INTEGER, but their values could not be set or adjusted using values that were greater than 2147483647. This has been corrected so that values can now range up to 4294967295.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719112">719112</a></td>
<td>Data conversion errors could have occurred when passing DateTimeOffset parameters to a stored procedure using the Entity Framework function import. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719220">719220</a></td>
<td>In rare timing dependent cases, the changes for Engineering case 713113 mau have caused a mirror or copy node to fail assertion 100927 when starting the database. The assertion text was &quot;Transaction log page number 0x&lt;first-hex-number&gt; from parent or partner is not expected page number 0x&lt;second-hex-number&gt;&quot;, where the first-hex-number was one lower then second-hex-number. If this assertion failure occurred, restarting the mirror or copy node should succeed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719292">719292</a></td>
<td>Attempting to connect to a database by specifying an IPv6 address would most likely have failed. This has been fixed.</p>
<p>				Note, in the Connect window, a new IPv6 address can be entered in the Host field. If the address ends in a colon and a port number, the host portion of the address must be enclosed in square brackets. This is as documented. An IPv6 address can also be entered without a port number and without square brackets in the Host field. When entering a port number in the Port field, the square brackets will be added automatically.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719334">719334</a></td>
<td>The cardinality estimation for an index with descending (DESC) columns may have been incorrect. This has been fixed.</p>
<p>				The conditions for this issue to happen, for a query Q, were:</p>
<p>				1 - The index on the table T was of the form &lt;X1, �, Xk, �&gt; with k &gt; 1</p>
<p>				2 - The first k-1 columns in the prefix of the index had predicates of the form T.Xi = constant in the query Q</p>
<p>				3 - The column k had the predicate of the form T.Xk \theta constantk (\theta n {&lt;, &lt;=, &gt;, &gt;=}), or T.Xk between constantk and constank+1 in the query Q</p>
<p>				4 - The column T.Xk was declared DESC in the index.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719385">719385</a></td>
<td>The SQL Anywhere ADO.NET provider now supports Entity Framework 5. EF 5 is the latest release of Entity Framework. It comes with Visual Studio 2012, or it can be downloaded as Visual Studio 2012 NuGet package.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719397">719397</a></td>
<td>Under rare conditions, the server or client library could have crashed when attempting an LDAP operation (eg. registering the server, searching LDAP for servers when connecting). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719402">719402</a></td>
<td>Messages generated by the iAS ODBC driver for Oracle could have contained unreadable characters at the end, if the message length was equal to or greater than 256 characters.</p>
<p>				This problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719422">719422</a></td>
<td>UltraLiteJ for Android now supports system events for:</p>
<p>				- Table modifications,</p>
<p>				- Commits,</p>
<p>				- Synchronization completion.</p>
<p>				An UltraLiteJ application registers and waits for system events on a Connection. However, events are system-wide so that a Connection can receive notifications of the above events that are triggered from Connections on other threads.</p>
<p>				An event is encapsulated by the following class:</p>
<p>				public interface ULjEvent</p>
<p>				{</p>
<p>				// event types</p>
<p>				final short TABLE_MODIFIED_EVENT = 1;</p>
<p>				final short COMMIT_EVENT = 2;</p>
<p>				final short SYNC_COMPLETE_EVENT = 3;</p>
<p>				/**</p>
<p>				* Returns the event type.</p>
<p>				*/</p>
<p>				short getType();</p>
<p>				/**</p>
<p>				* Returns a named parameter for the event.</p>
<p>				*/</p>
<p>				String getParameter( String name ) throws ULjException;</p>
<p>				};</p>
<p>				The following methods have been added to the Connection class:</p>
<p>				/** Waits for an event notification.</p>
<p>				* </p>
<p>				* This call blocks until a notification is received or until the given</p>
<p>				* wait period expires. To wait indefinitely, set the wait_ms parameter to </p>
<p>				* -1. To cancel a wait, use the cancelWaitForEvent method.</p>
<p>				* </p>
<p>				* @param waitms The time, in milliseconds to wait (block) before returning.</p>
<p>				* @return The event that occurred within the wait time, or null if no</p>
<p>				* notification was received within the wait time.</p>
<p>				*</p>
<p>				* @see ULjEvent</p>
<p>				* @see cancelWaitForEvent</p>
<p>				*/</p>
<p>				public ULjEvent waitForEvent( int wait_ms ) throws ULjException;</p>
<p>				/** Register to receive notifications of a system event.</p>
<p>				*</p>
<p>				* @param event_type The type of event to register for.</p>
<p>				* @param object_name The object to which the event applies. (for example,</p>
<p>				* a table name).</p>
<p>				*</p>
<p>				* @see ULjEvent</p>
<p>				*/</p>
<p>				public void registerForEvent( short event_type, String object_name )</p>
<p>				throws ULjException;</p>
<p>				/** Unregister to receive notifications of a system event.</p>
<p>				*</p>
<p>				* @param event_type The type of event to unregister for.</p>
<p>				* @param object_name The object to which the event applies. (for example,</p>
<p>				* a table name).</p>
<p>				*</p>
<p>				* @see ULjEvent</p>
<p>				*/</p>
<p>				public void unregisterForEvent( short event_type, String object_name )</p>
<p>				throws ULjException;</p>
<p>				/** Cancels any waitForEvent calls on this connection.</p>
<p>				*</p>
<p>				* @see waitForEvent</p>
<p>				*/</p>
<p>				public void cancelWaitForEvent() throws ULjException;</p>
<p>				Note that the object_name parameter of register/unregisterForEvent is only used for event type ULjEvent.TABLE_MODIFIED_EVENT. In that case the object_name is the table name for which to receive notifications of modifications, or &quot;*&quot; for all tables. Pass null for the object_name for the other event types.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719484">719484</a></td>
<td>A query having a theta (subquery) predicate may have crashed the server during query optimization. One of the conditions for this issue to have occurred was that the subquery抯 select items and groupby expressions were base table columns of the same index, and the subquery was a grouped query block.</p>
<p>				For example:</p>
<p>				Select * </p>
<p>				from T where T.X = (select R.X where �. Group by R.Y) </p>
<p>				and there existed an index on R on columns &lt;X,Y&gt;.</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719503">719503</a></td>
<td>The server would have failed assertion 107400 - Internal parse tree error, if a query used proxy tables and contained a common table expression in a derived table, and the derived table was flatted. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719505">719505</a></td>
<td>UltraLiteJ for Android has a new method, DatabaseInfo.getNumberRowsToUpload( String pubList, int threshold ), that provides the same functionality as the UltraLiteC API ULConnection::CountUploadRows( const char * pubList, ul_u_long threshold ).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719710">719710</a></td>
<td>Executing an ALTER TABLE statement on an empty table could have caused a server crash on a subsequent table scan of the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719719">719719</a></td>
<td>When using the SQL Anywhere C API, the information returned by sql_column_info would always have indicated that nulls were not allowed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719758">719758</a></td>
<td>The .Net Provider could have incorrectly thrown an &quot;Unknown PrimitiveTypeKind DateTimeOffset&quot; exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719834">719834</a></td>
<td>The Relay Server Outbound Enabler was logging response bytes at verbosity 9, but should have been logging them at verbosity 5 or higher. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR719932">719932</a></td>
<td>In a mirroring setup during a forced failover, it was possible for the new mirror to get stuck in a situation where the database would print the following error to the console log: 損rimary not available or mirror log longer than primary�, and proceed to restart. This could often be fixed by executing a transaction on the new primary after the failover was complete. This bug has been fixed, and the mirror server should now start up without difficulty.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720066">720066</a></td>
<td>If a connection could not be made to the root or primary server from a copy node that did not already have a mirror definition, the copy node could have crashed after about max_retry_connect_time from when the copy node was started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720219">720219</a></td>
<td>Executing a SET MIRROR OPTION option-name = NULL statement would not have correctly changed the behavior of currently running databases for the auto_failover and synchronization_mode options. Once the database was restarted on a partner server, the option value would then have been correctly interpreted as the default value for the option. This has been fixed so that the default value for the option is effective immediately after the SET MIRROR OPTION option-name = NULL statement is executed or applied.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720280">720280</a></td>
<td>Trying to source the sa_config.csh script file (generated by the Unix installer) would have failed with the error &quot;Missing ]&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720288">720288</a></td>
<td>The SQL Preprocesor (sqlpp) would have incorrectly reported a warning or possibly an error if the file it was preprocessing had static SQL containing &quot;TIMESTAMP WITH TIME ZONE&quot;. The most likely sqlpp warning was &quot;Warning! W2661 near &#39;with&#39;: Unrecognized SQL syntax&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720298">720298</a></td>
<td>Under rare circumstances, calling the system procedure sa_index_statistics() could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720303">720303</a></td>
<td>In a client-only installation, the Services wizard would not have allowed the creation of a Windows service. This was incorrect, as it prohibited creating a MobiLink service, and has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720384">720384</a></td>
<td>Under very rare circumstances, the server may have crashed when running the procedure sp_forward_to_remote_server, or any of the Remote Data Access procedures (i.e sp_remote_columns, sp_remote_tables, etc). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720419">720419</a></td>
<td>LONG VARCHAR columns could have contained incorrect results for the second and subsequent queries using that datatype.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720462">720462</a></td>
<td>Under very rare circumstances, the server may have crashed when running the system procedures sa_char_terms or sa_nchar_terms, or some internal text index related procedures, with invalid arguments. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720473">720473</a></td>
<td>An application that connected using either the SQL Anywhere ODBC Driver or the SQL Anywhere JDBC Driver, with a userid that did not have SELECT ANY TABLE privilege, would have retrieved the wrong result set when calling either SQLTables or DatabaseMetaData.getTables() when the request was for base tables only. In particular, dbo owned system tables would have been incorrectly returned in the result set. This problem did not exist if the application connected with a userid that had SELECT ANY TABLE privilege. The problem has now been fixed and dbo owned system table information no longer gets returned if the request explicitly asks for base table information only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720488">720488</a></td>
<td>When creating a config (class ConfigPersistent), setting a row score flush size greater than 0 would have turned on both row limiting and lazy loading, however this was not immediately reflected by getLazyLoadIndexes(). Furthermore, a subsequent call to setLazyLoadIndexes( false ) would not have turned off lazy loading as the row score flush size was still set. This has been fixed. ConfigPersistent.setRowScorFlushSize() with a value greater than zero immediately marks lazy loading as on. ConfigPersistent.setLazyLoadIndexes() with false immediately sets the row score flush size to zero.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720489">720489</a></td>
<td>In very rare timing dependent cases, when a high availability mirror was taking over as primary, it could have hung or failed assertions 100924 or 100925. In order for this to have occurred, the mirror must have had active read-only connections using temporary tables and performing commits or rollbacks, as well as certain other conditions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720564">720564</a></td>
<td>If the MobiLink client (dbmlsync) was running on a schedule, the MobiLink Server could not be located, and dbmlsync did not know the status of the last synchronization, it was possible for dbmlsync to have shut down. The problem is now fixed, and dbmlsync will remain running on a schedule, even if the MobiLink Server cannot be located.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720592">720592</a></td>
<td>If the values &#39;SYSTEM TABLE&#39;, 慡YSTEM VIEW� or &#39;GLOBAL TEMPORARY&#39; were specified as the TABLE_TYPE restriction for either of the SQL Anywhere OLE DB DBSCHEMA_TABLES or DBSCHEMA_TABLES_INFO rowsets, an empty rowset was returned. If 慣ABLE�, 慥IEW�, or 慣EXT� was specified as the TABLE_TYPE restriction, there was no problem. This problem has been corrected. To correct the problem in an existing database, the Upgrade utility must be used once the problem resolution fix (EBF) has been installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720607">720607</a></td>
<td>When the SQL Preprocessor was run with the &quot;-e u&quot; command line option (Flag syntax that is not supported by UltraLite) it would have incorrectly reported the TIMESTAMP WITH TIME ZONE syntax as a language extension. This has been fixed so that it is no longer reported as a language extension.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720643">720643</a></td>
<td>-</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720725">720725</a></td>
<td>If a subquery using a LIKE predicate, scaned an index in reverse order but another earlier index scan used the index in forward order, or vice versa, the LIKE scan would have accessed the table in the wrong order.</p>
<p>				For example:</p>
<p>				SELECT c.name, d.b FROM fwd c,</p>
<p>				(SELECT TOP 2 name FROM fwd2 WHERE name LIKE 慳%� ORDER BY name ASC) AS d( b )</p>
<p>				WHERE c.name LIKE 慾%�</p>
<p>				ORDER BY c.name DESC</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720804">720804</a></td>
<td>If a backwards index scan blocked on a locked row, it would have continued onto the next row after it resumed, rather than retrying the current row. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR720811">720811</a></td>
<td>A high availability mirror or a copy node server running on Windows could have failed assertion 112002 during a transaction log rename. This has been fixed.</p>
<p>				If the high availability mirror was busy applying log pages, failing over due to the other partner being preferred, or due to the ALTER DATABASE SET PARTNER FAILOVER statement, could have been delayed for a minute or more. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721039">721039</a></td>
<td>Dropping a connection that had previously made an external environment call to a connection scoped external environment, could, in very rare cases, have caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721068">721068</a></td>
<td>Under rare circumstances, a 揝tatement interrupted by user� error could have been returned from parallel query executionm, instead of the correct runtime error. Other possible behaviours under the same circumstances were returning an 揢nexpected error� error, or a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721070">721070</a></td>
<td>The REGEXP search condition and the REGEXP_SUBSTR function could have incorrectly matched or failed to match regular expressions with ^ or $ followed immediately by a character that had special meaning in a regular expression if it was escaped. For example, REGEXP_SUBSTR( &#39;A&#39;, &#39;^A&#39; ) was incorrectly returning NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721288">721288</a></td>
<td>In rare cases, if a copy node was renaming the transaction log while a child copy node was requesting log pages, the parent copy node could have failed with &quot;Fatal Error: Internal database error&quot;. Note that a child copy node only requests pages until the child has all the log pages that the parent has (after that the parent sends the updated log pages as they are written).</p>
<p>				Also, in very rare cases, if a copy node or mirror was renaming the transaction log while the connection to the parent or partner dropped, the could node or mirror could have crashed.</p>
<p>				These issues have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721300">721300</a></td>
<td>Copy nodes which used a partner server name as a parent (as opposed to the primary or mirror), could have failed to connect to this parent. In this case, the initial connection to the parent could have succeeded, but if the parent database or server was restarted, the copy node was unable to connect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721318">721318</a></td>
<td>The changes for Engineering case 674232 broke JAX-WS support for multiple databases on a server. The generated WSDL document omitted the database name in the targetNamespace. For example, targetNamespace=&quot;http://localhost:8082/WS&quot; instead of targetNamespace=&quot;http://localhost:8082/demo/WS&quot;.</p>
<p>				As a result, all the URL references to web services could have gone to the wrong database. It would have gone to the database that was started first. This problem can not be worked around using the DBN option, as follows:</p>
<p>				dbsrv12 -xs http(port=8082;dbn=test) &quot;%SQLANYSAMP12%\demo.db&quot; test.db</p>
<p>				as the targetNamespace is correct but the wsdlLocation is wrong. The correct workaround is to edit the source files generated by wsimport and make the corrections. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721394">721394</a></td>
<td>The server may have failed assertions 111706, 111707, or 201200, if a procedure call was used in a SELECT statement, one of the specified arguments exceeded its declared parameter size, and the procedure used the argument in a DML statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721396">721396</a></td>
<td>Two new methods have now been added to UltraLiteJ for Android: PreparedStatement.getParameterCount() and PreparedStatement.getParameterType( int ).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721398">721398</a></td>
<td>A new method, Connection.getState(), has been added to UltraLiteJ for Android for consistency with UltraLiteJ for BlackBerry.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721401">721401</a></td>
<td>UltraLiteJ for Android now has the capability to get error parameters from ULjException objects. The methods ULjException.getParameterCount(), ULjException.getParameter( int ), SQLInfo.getParameterCount(), and SQLInfo.getParameter( int ) have been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721437">721437</a></td>
<td>The &quot;Check for Updates&quot; menu item in the Interactive SQL utility, Sybase Central, and DBConsole would have always reported that the update server was unavailable if a network proxy was used to access the internet. This has been corrected so that now if an HTTP proxy is configured for the computer, the proxy will be used and the check for updates will succeed.</p>
<p>				Note that if the computer is set to automatically configure its proxy, the HTTP proxy must also be set explicitly for the update checker work function properly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721534">721534</a></td>
<td>If an application made a remote procedure call to an Oracle server, then the server would have incorrectly forced a commit operation to occur on the Oracle server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721582">721582</a></td>
<td>The usage description of the -sv switch for the MobiLink Listener utility for Windows devices (dblsn), was missing the placeholder of the script version. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721637">721637</a></td>
<td>An ADO .Net application could have failed to fetch from a proxy table with blob columns. The error returned would have been: 揅ursor is restricted to FETCH NEXT operations�. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721757">721757</a></td>
<td>The Password field in the connection string (file App.config) could have been inadvertently removed during execution when running the Entity Framework application. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721778">721778</a></td>
<td>When a connection was pooled and reused by SQL Anywhere&#39;s connection pooling, in some cases there were some behavior differences compared to getting a new (unpooled) connection. Note that the type of connection pooling affected is controlled by the ConnectionPool connection parameter and enabled by default, but this connection pooling is not used by the ADO.Net driver. The specific behaviors that differed between reusing a pooled connection and getting a new unpooled connection were:</p>
<p>				1) a &quot;SET rowcount &lt;value&gt;&quot; statement done on a connection that was then cached and reused could have incorrectly continued using this setting.</p>
<p>				2) a &quot;SET TEMPORARY OPTION secure_feature_key = &lt;value&gt;&quot; statement done on a connection that was then cached and reused could have incorrectly persisted using this option.</p>
<p>				3) the @@identity value could have incorrectly returned an identify value from before the connection was cached and reused.</p>
<p>				These problems have been fixed so that the cached and reused connections will have the same behavior as completely new connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721874">721874</a></td>
<td>Applications that associate themselves to edit .js or .vbs files, like UltraEdit, could have caused the quick setup script to fail. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721933">721933</a></td>
<td>Unique keys could have been created incorrectly in the following situations:</p>
<p>				1) If a CREATE TABLE defined a column as nullable then placed that column in an unique constraint, the column would have remained nullable. For example:</p>
<p>				CREATE MyTable(</p>
<p>				pkey INT PRIMARY KEY,</p>
<p>				num INT NULL,</p>
<p>				CONSTRAINT un_num UNIQUE( num )</p>
<p>				)</p>
<p>				2) A GEOMETRY column could have been placed in a unique constraint.</p>
<p>				3) An ALTER TABLE which added a UNIQUE constraint could have included a nullable column.</p>
<p>				This has been fixed. When a table is now created, columns in unique constraints are forced to be not null and GEOMETRY columns are not allowed in unique constraints (as previously documented). When adding a unique constraint on a nullable column, an error will now occur. The correct procedure is to first alter the column to be not null, then alter the table to add a unique constraint.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721950">721950</a></td>
<td>Under rare circumstances, execution of a query using a MergeJoin operator could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721976">721976</a></td>
<td>In some cases, when a CHECK constraint was defined on a table, errors in the constraint were not detected when the constraint was created, even if they could have been detected at creation time. These errors were instead reported when the check constraint was evaluated. For example, the following CREATE TABLE would have succeeded but the subsequent INSERT would have failed with an error.</p>
<p>				create table T_ColumnCheck( x long varchar, check (x is distinct from COUNT( DISTINCT ( 1 ) )) );</p>
<p>				insert into T_ColumnCheck(x) values(1)</p>
<p>				This has been fixed. Some errors can not be detected when the constraint is created (for example, data exceptions).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721977">721977</a></td>
<td>Under very rare circumstances, the server may have crashed when encountering a thread deadlock during a login packet receive. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR721986">721986</a></td>
<td>Attempting to drop a table that was still referenced by a foreign key would not have returned an error, but would have lefte the database in an incorrect state. This has been fixed. DROP TABLE will now signal SQLE_TABLE_IN_USE in this case..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722071">722071</a></td>
<td>When attempting to execute a statement which contained an incomplete multi-line comment, the error message mentioned that there was an error at the end of the SQL statement, but did not indicate that the problem was an unterminated comment. Now, the error message makes that explicit.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722245">722245</a></td>
<td>Calling PreparedStatement.setNull() and passing in a SQL type of java.sql.Types.NULL, would have incorrectly returned a 揵ad datatype� error. This problem has now been fixed and java.sql.Types.NULL is now allowed in setNull() calls.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722314">722314</a></td>
<td>Searching a database that contained hundreds of users would have taken a very long time and would likely have caused Sybase Central to run out of memory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722429">722429</a></td>
<td>Calling the system procedure sa_iometrics() with invalid arguments may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722440">722440</a></td>
<td>In rare timing dependent cases, two partners attempting to determine roles could have restarted their databases unnecessarily a number of times until their role was finally determined. </p>
<p>				Also, in rare timing dependent cases, a running copy node that was able to reconnect to its parent server could unnecessarily have restarted its database. In order for this to have occurred, the parent server would needed to have been unavailable for long enough for the copy node to connect to the root or alternate parent.</p>
<p>				These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722466">722466</a></td>
<td>In rare circumstances, preforming bulk inserts and deletes of large amounts of data may have caused the server to fail assertion 200130. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722646">722646</a></td>
<td>When an application that was connected using Open Client or jConnect executed a query that involved parameters, and the query generated a syntax error, the server could have crashed. For the crash to occur at least one of these parameters had to have been a string or binary parameter that was greater than 250 bytes in length, and an additional tinyint, smallint, int or bigint parameters followed the string or binary parameter. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722739">722739</a></td>
<td>If a string of between half a page size and one page size in length was inserted into a compressed column, the string could have caused a full page to be allocated to hold the compressed data, which usually took up a very small percentage of the page. No other strings would be able to use the same page. This has been fixed.</p>
<p>				Note that it is not possible to gain back the 搘asted� space until the compressed string is completely rewritten, and 揂LTER TABLE t SET comp_col=comp_col� will not do it either. The easiest way is to 揂LTER TABLE t ALTER comp_col NOT COMPRESSED�, followed by 揂LTER TABLE t ALTER comp_col COMPRESSED�. This only needs to be done once. Depending on how much data is in the column, doing this may be slow and will likely increase the database file size. But once it抯 done, all the strings will be properly, and efficiently, compressed, and any 搘asted� pages will now exist in the database file as free pages that can be re-used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722800">722800</a></td>
<td>UltraLiteJ queries that used an index with a DESC column that contained NULLs, may have returned wrong results. The query must not have had a lower bound condition for the DESC column for this problem to have occurred. Depending on any ORDER BY clauses, the query may have returned no rows, or may have returned rows containing nulls when the query had a predicate on that column.</p>
<p>				For example:</p>
<p>				CREATE TABLE &quot;T&quot; ( &quot;pk&quot; bigint NOT NULL PRIMARY KEY, &quot;x&quot; integer NULL ) </p>
<p>				CREATE INDEX &quot;idx1&quot; on &quot;T&quot; ( &quot;x&quot; DESC ) WITH MAX HASH SIZE 0</p>
<p>				And the following data: </p>
<p>				insert into T(pk,x) values(1, -20) </p>
<p>				insert into T(pk,x) values(2, null) </p>
<p>				insert into T(pk,x) values(3, 10) </p>
<p>				And the following queries: </p>
<p>				SELECT pk FROM T WHERE x &gt;= 5 ORDER BY x DESC</p>
<p>				-&gt; UL will return the wrong results (no rows, when it should return the row with pk=3).</p>
<p>				SELECT pk FROM T WHERE x &lt;= 10 ORDER BY x ASC</p>
<p>				-&gt; UL will return no rows when it should return the rows with pk=1 and 3</p>
<p>				SELECT pk FROM T WHERE x &lt;= 10 ORDER BY x DESC</p>
<p>				-&gt; UL will return all rows (including the row pk=2,x=null when it should return the rows with pk=1 and 3</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722938">722938</a></td>
<td>PROBLEM: With UltraLiteJ for Android, when synchronizing a large number of tables with a SyncObserver the following JNI exception was likely to occur: &quot;E/dalvikvm(26683): JNI ERROR (app bug): local reference table overflow (max=512)&quot;. The native code to call the SyncObserver was not freeing local references to Java String objects containing the table name. </p>
<p>				SOLUTION: Fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722972">722972</a></td>
<td>Server may have run out of memory and crashed when executing the system procedure sa_get_request_times(), especially when running with databases that had large page sizes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR722976">722976</a></td>
<td>It was possible, in rare circumstances, for a database backup to fail, leaving the backup marked as 揚ending� in the console. If this backup was deleted, parts of the cloud data directory on the host containing the backup, could have been deleted, including other tenant databases, server certificates, log files, etc. This could have caused any number of problems with the cloud. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_100.htm#CR723007">723007</a></td>
<td>UltraLite queries that used an index with a DESC column that contains NULLs, may have returned wrong results. The query must not have had a lower bound condition for the DESC column for this problem to have occurred. Depending on any ORDER BY clauses, the query may have returned no rows, or may have returned rows containing nulls, when the query had a predicate on that column.</p>
<p>				For example:</p>
<p>				CREATE TABLE &quot;T&quot; ( &quot;pk&quot; bigint NOT NULL PRIMARY KEY, &quot;x&quot; integer NULL ) </p>
<p>				CREATE INDEX &quot;idx1&quot; on &quot;T&quot; ( &quot;x&quot; DESC ) WITH MAX HASH SIZE 0</p>
<p>				And the following data: </p>
<p>				insert into T(pk,x) values(1, -20) </p>
<p>				insert into T(pk,x) values(2, null) </p>
<p>				insert into T(pk,x) values(3, 10) </p>
<p>				And the following queries: </p>
<p>				SELECT pk FROM T WHERE x &gt;= 5 ORDER BY x DESC</p>
<p>				-&gt; UL will return the wrong results (no rows, when it should return the row with pk=3).</p>
<p>				SELECT pk FROM T WHERE x &lt;= 10 ORDER BY x ASC</p>
<p>				-&gt; UL will return no rows when it should return the rows with pk=1 and 3</p>
<p>				SELECT pk FROM T WHERE x &lt;= 10 ORDER BY x DESC</p>
<p>				-&gt; UL will return all rows (including the row pk=2,x=null when it should return the rows with pk=1 and 3</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723010">723010</a></td>
<td>Under rare circumstances, the server may have returned the error SQLSTATE_INVALID_RECURSION for a recursive select statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723017">723017</a></td>
<td>On Mac OS X 8 systems, the MobiLink Server may have failed to start, with startup error 揢nable to bind socket�. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723024">723024</a></td>
<td>An index with multiple columns, and any nullable column except the last one in the index, may have been incorrectly ordered.</p>
<p>				For example:</p>
<p>				CREATE TABLE Foo ( num INT PRIMARY KEY DEFAULT AUTOINCREMENT, b1 BINARY(1), b2 BINARY(1), b3 BINARY(1) ) </p>
<p>				CREATE INDEX I ON Foo( b1, b2, b3 ) WITH MAX HASH SIZE 3 </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( 0, 0, 7 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( 0, null, 8 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( null, 0, 9 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( null, null, 10 ) </p>
<p>				SELECT * FROM Foo ORDER BY b1, b2, b3 could result in an ordering like:</p>
<p>				row: 0, 0, 7</p>
<p>				row: 0, null, 8</p>
<p>				row: null, 0, 9</p>
<p>				row: null, null, 10</p>
<p>				DROP INDEX Foo.I</p>
<p>				CREATE INDEX I ON Foo( b1, b2, b3 ) WITH MAX HASH SIZE 3 </p>
<p>				SELECT * FROM Foo ORDER BY b1, b2, b3</p>
<p>				row: null, null, 10</p>
<p>				row: null, 0, 9</p>
<p>				row: 0, null, 8</p>
<p>				row: 0, 0, 7</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723092">723092</a></td>
<td>An index with multiple columns and any nullable column except the last one in the index may have been incorrectly ordered.</p>
<p>				For example:</p>
<p>				CREATE TABLE Foo ( num INT PRIMARY KEY DEFAULT AUTOINCREMENT, b1 BINARY(1), b2 BINARY(1), b3 BINARY(1) ) </p>
<p>				CREATE INDEX I ON Foo( b1, b2, b3 ) WITH MAX HASH SIZE 3 </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( 0, 0, 7 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( 0, null, 8 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( null, 0, 9 ) </p>
<p>				INSERT INTO Foo( b1, b2, b3 ) VALUES( null, null, 10 ) </p>
<p>				SELECT * FROM Foo ORDER BY b1, b2, b3 could result in an ordering like:</p>
<p>				row: 0, 0, 7</p>
<p>				row: 0, null, 8</p>
<p>				row: null, 0, 9</p>
<p>				row: null, null, 10</p>
<p>				DROP INDEX Foo.I</p>
<p>				CREATE INDEX I ON Foo( b1, b2, b3 ) WITH MAX HASH SIZE 3 </p>
<p>				SELECT * FROM Foo ORDER BY b1, b2, b3</p>
<p>				row: null, null, 10</p>
<p>				row: null, 0, 9</p>
<p>				row: 0, null, 8</p>
<p>				row: 0, 0, 7</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723096">723096</a></td>
<td>If the SQL Anywhere server was registered with an ActiveDirectory LDAP server and an LDAP error occurred at just the right time, the LDAP entry could have been corrupted. When the server then shutdown, no new server with the same server name would have been able to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723102">723102</a></td>
<td>UltraLite could have returned incorrect results when a subquery made reference to its own expressions.</p>
<p>				For example, in the following, c2 is not evaluated properly:</p>
<p>				select * from (select id + id as c1, c1 as c2 from T) as DT(c1,c2)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723135">723135</a></td>
<td>If a directory in quotes with a trailing backslash inside the quotes (i.e. 搈y directory name\�) was supplied to a utility requiring a directory name, the name of the directory used would have been incorrect (in this case my directory name� with a trailing quote). The affected tools were: dbbackup, dbunload, dbtran (-m switch), dbremote (-ml switch) and the server (-dt, -ad, and -ds switches). This has been fixed. The trailing quote will now be stripped from the directory name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723212">723212</a></td>
<td>If a MobiLink project in Sybase Central contained a SQL Anywhere consolidated database, and that database was being monitored by the SQL Anywhere Monitor, tables which were owned by the Monitor were being displayed in the user interface. They have now been removed, because they should never take part in a synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723333">723333</a></td>
<td>On Linux systems, executing &quot;samonitor stop&quot; could have failed to stop the SQL Anywhere Monitor. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723368">723368</a></td>
<td>When deploying a synchronization model with a SQL Anywhere remote database, an error could have occurred if the &quot;Save message log to the following file (using -ot option)&quot; option was unchecked on the &quot;Verbosity For SQL Anywhere Remote Synchronization Client&quot; page of the &quot;Deploy Synchronization Model Wizard&quot;. The error message would state:</p>
<p>				The synchronization model could not be deployed.</p>
<p>				Error for: Rendering macro APPEND_VAR</p>
<p>				This has been fixed. A workaround is to enable that option and redeploy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723443">723443</a></td>
<td>String concatenation expressions in UltraLite could have given incorrect results, in such a way that a substring was missing from the correct result. For example, the SQL query &quot;SELECT ISNULL(&#39;a&#39;,&#39;&#39;) + ISNULL(NULL, &#39;&#39;) + &#39;b&#39;&quot; would have given the result 慴� when the correct result was 慳b�. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723590">723590</a></td>
<td>If a database exceeded the limit of allowed database pages, the database would have become corrupted and the application may have encountered the SQLE_ERROR:</p>
<p>				UltraLiteJ Error[-300]: Run time SQL error -- recordRowID 5832712</p>
<p>				This has been fixed. When the maximum number of pages is reached, UltraLiteJ will now report SQLE_DBSPACE_FULL (UltraLiteJ Error[-604]: A dbspace has reached its maximum file size). </p>
<p>				Applications encountering this error may be using too small a value for the database page size.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723698">723698</a></td>
<td>A client application could recieved the exception OptimisticsConcurrencyException when updating tables with computed columns. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723706">723706</a></td>
<td>In very rare cases, it was possible for the server to have crashed when an HTTP connection is accepted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723710">723710</a></td>
<td>On Mac OS X systems, use of the server option -um allows the server to run with a GUI (through DBLauncher). It was not displayed though in the server&#39;s usage message. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723719">723719</a></td>
<td>A permissions error could be given when calling a procedure or functions that had been inlined. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723757">723757</a></td>
<td>The changes made for Engineering case 72143 broke the fast launchers for Interactive SQL and Sybase Central on computers that use a system-level network proxy. The symptom was that attempting to turn on the fast launcher would caused Interactive SQL or Sybase Centralto become unresponsive. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723835">723835</a></td>
<td>Under certain circumstances, the NOT NULL clause for a foreign key specification would have been ignored. When determining the nullability of an indexed column the fact that a foreign key could be specified as NOT NULL was not being taken into account. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723843">723843</a></td>
<td>The StartServer task could have started database copies on the server that were not stopped when the StopServer task was executed for the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723889">723889</a></td>
<td>When using a secured connection between the Relay Server Outbound Enabler and the local backend server, it was possible fior the Outbound Enabler to have crashed when disconnecting. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723960">723960</a></td>
<td>Under specific circumstances, the server could have crashed when applying updates via SQL Remote. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723969">723969</a></td>
<td>The Unix installer may have returned an error like 搒amples/sample_env32.sh: No such file or directory&quot;, when the selected components did not require the sample directory.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR723981">723981</a></td>
<td>In a synchronization model, if the Events editor was used to create a script using the .NET language and deployed the synchronization model, the MobiLink server could have given an error like the following:</p>
<p>				Cannot load DLL or shared object: &#39;ml.net12.dll&#39; for Script Language: &#39;.net&#39;</p>
<p>				For Java scripts, a similar error could have been displayed on operating systems with case-sensitive file names, or errors fetching Java scripts on Windows.</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724069">724069</a></td>
<td>The SQL Anywhere Unix installer may not have installed the Start Server (dbspawn) and Stop Server (dbstop) utilities when 揝QL Anywhere Monitor�(developer edition) was selected as a component to install. Running a command like samonitor.sh {start|stop} would have failed due to the missing dbspawn and dbstop executables. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724258">724258</a></td>
<td>A web procedure created using the PROXY clause may have returned the error: &#39;-981: 揢nable to connect to the remote host specified by �&lt;URL&gt;敂 &#39;, depending on the type and configuration of the proxy server being used. This would only have occurred for HTTP requests, HTTPS requests would have worked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724284">724284</a></td>
<td>In some network environments, a synchronization would have failed with a StringIndexOutOfBound exception due to Set-Cookie: response headers with multiple cookies. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724287">724287</a></td>
<td>If a cloud server required a proxy server to access the internet, it would have been unable to contact the SAODE usage server, and the cloud would have stopped functioning after 1000 hours. This has been fixed. There is now an option (through the AlterCloud task) to set the proxy server for the cloud.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724349">724349</a></td>
<td>If a variable was used as an OUTPUT parameter for a procedure, the value was not cast to the data type of that variable. This resulted in local or global variables that had values larger than its data type, or values with a different type than its variable declaration. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724355">724355</a></td>
<td>In very rare circumstances, the server may have crashed while performing a query sort operation if the sort key was very long and the query was low on cache space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724359">724359</a></td>
<td>If a database contained a Remote Server definition with a variable reference in its srvinfo column, then clicking the Overview panel would have caused a 搗ariable not found� error to be reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724507">724507</a></td>
<td>In rare circumstances, a server that was running diagnostic tracing to a remote server may have crashed if the diagnostic tracing server or database stopped, or if the diagnostic tracing server or database stopped and tracing was detached at the same time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724518">724518</a></td>
<td>When using the MobiLink autodial feature, it was possible for the connection attempt to fail initially. Later connection attempts would generally have worked. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724543">724543</a></td>
<td>In very rare cases, the server could have crashed while parsing a request-level log file using the system procedure sa_get_request_times(). This problem was introduced by the changes for Enginnering case 722122, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724550">724550</a></td>
<td>The CacheFree server statistic could have underflowed and presented extremely large values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724639">724639</a></td>
<td>A new library (iAnywhere.Data.SQLAnywhere.v4.5.dll) has been added for supporting .NET 4.5 and Entity Framework 5. Now 4 versions of SA ADO.NET provider are shipped:</p>
<p>				1 - iAnywhere.Data.SQLAnywhere.dll / policy.1x.0. iAnywhere.Data.SQLAnywhere.dll � for .NET 2</p>
<p>				2 - iAnywhere.Data.SQLAnywhere.v3.5.dll / policy.1x.0. iAnywhere.Data.SQLAnywhere.v3.5.dll � for .NET 3.x and 2</p>
<p>				3 - iAnywhere.Data.SQLAnywhere.v4.0.dll / policy.1x.0. iAnywhere.Data.SQLAnywhere.v4.0.dll � for .NET 4</p>
<p>				4 - iAnywhere.Data.SQLAnywhere.v4.5.dll / policy.1x.0. iAnywhere.Data.SQLAnywhere.v4.5.dll � for .NET 4.5</p>
<p>				SetupVSPackage.exe has also been updated. A new option 憊ersion� has been added. </p>
<p>				1 - If the version is �4�, SetupVSPackage.exe registers the v4 dll in machine.config file. </p>
<p>				2 - If the version is �4.5�, SetupVSPackage.exe registers the v4.5 dll in machine.config file. </p>
<p>				3 - When the version is not specified, SetupVSPackage.exe registers the v4.5 dll in machine.config file if .NET 4.5 is installed; otherwise, it registers the v4.0 dll in machine.config file.</p>
<p>				Examples:</p>
<p>				1 - SetupVSPackage.exe /i /v 4.5 � register the v4.5 dll</p>
<p>				2 - SetupVSPackage.exe /i /v 4 � register the v4.0 dll</p>
<p>				3 - SetupVSPackage.exe /i � register the v4.5 dll if .NET 4.5 is installed; otherwise, register the v4.0 dll.</p>
<p>				SetupVSPackage.exe should be run to register the v4.0 provider for .NET 4 applications and register the v4.5 provider for .NET 4.5 / Entity Framework 5 applications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724701">724701</a></td>
<td>When MobiLink clients starts up, it deletes temporary files left by any previous instance of the software that might have exited abnormally. This cleanup was not occurring when the SATMP environment variable was set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724847">724847</a></td>
<td>In certain circumstances, running the Information utility to get table usage and sizes (&quot;dbinfo -u&quot;), calling the system procedure sa_table_page_usage(), or executing &quot;VALIDATE DATABASE&quot;, could have caused assertion failure 109510 &quot;Memory allocation size is too large&quot;. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724850">724850</a></td>
<td>DataTable.Load() , ULTable.GetSchemaTable(), or use of ULIndexSchema object could have thrown the exceptions: &quot;Too many temporary tables in connection&quot; or &quot;Attempted to read or write protected memory. This is often an indication that other memory is corrupt� if used repeatedly. The method ULIndexSchema.Close() has been added, and should be called when an application has finished with an ULIndexSchema instance. This method is also now called internally by UL.Net objects that use ULIndexSchema.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724900">724900</a></td>
<td>Temporary tables, functions and variables were not dropped after a pooled connection was closed (returned to the connection pool). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR724960">724960</a></td>
<td>If the Relay Server had been acting as an intermediary for a backend server that required authentication (such as an IIS Server), it was possible that the authentication handshake between the client and backend server could have failed, despite the client having provided the proper username and password for authentication. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725019">725019</a></td>
<td>The syntactical construct &quot;numeric( precision, scale )&quot; would have returned the error &quot;Syntax error near &#39;)&#39;&quot; if the scale value was greater than the precision value. This has been fixed so that the syntax error message now contains the scale value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725104">725104</a></td>
<td>When the MobiLink Server was using an embedded Outbound Enabler, and connectivity issues occurred between the Relay Server and the MobiLink Server while the embedded OE was busy uploading requests, the service may not have recovered. A restart of the MobiLink Server was needed in this case. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725107">725107</a></td>
<td>A &#39;value out of range&#39; SQLException could have occurred in the data collector of the SQL Anywhere Monitor for Relay Server. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725110">725110</a></td>
<td>Under rare circumstances, the server may have crashed when the system procedure sa_locks() was trying to collect row locking information for global temporary tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725179">725179</a></td>
<td>Diagnostic tracing also collected information from Cleaner task connections. This has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725184">725184</a></td>
<td>SQL Anywhere permits the use of identical foreign key CONSTRAINT names on different tables. Some third-party software tools cannot handle duplicate constraint names. As a result, the sample database demo.db that is shipped with SQL Anywhere has been modified so that it now has unique foreign key constraint names. The constraint name FK_CustomerID_ID in the GROUPO.Contacts table has been renamed to FK_CustomerID_ID2. The constraint name FK_ProductID_ID2 in the GROUPO.MarketingInformation table has been renamed to FK_ProductID_ID2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725197">725197</a></td>
<td>Using the PHP external environment in an HTTP request, could have returned an HTTP status code of 500 even when it was successful. This was most likely to happen on Windows systems, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725201">725201</a></td>
<td>If an application loaded the SQL Anywhere JDBC Driver into a private ClassLoader, there was a small chance that the application would have crashed when the private ClassLoader was garbage collected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725206">725206</a></td>
<td>A FETCH RELATIVE {offset}, where the offset was greater than 1, could have failed with a &quot;Connection was terminated&quot; error if the fetch was not the first fetch on the cursor, and prefetch was enabled for the fetch. For this to have ocurred, the rows between the last fetch and the requested rows row had to have values that were greater than 250 bytes. This has been fixed.</p>
<p>				As a workaround, prefetch can be disabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725212">725212</a></td>
<td>The Relay Server IIS7 quick setup script was using %USERDNSDOMAIN% as the domain of the machine and that didn&#39;t always work. The script has now been changed to test if the FQDN can be resolved, and if not it will offer two options:</p>
<p>				a. Setup without a domain</p>
<p>				b. Let user enter the domain manually and test again.</p>
<p>				Also, the setup step has been clarified so that using the domain user account for Relay Server State Manager service is a valid option if local online maintenance feature is not needed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725215">725215</a></td>
<td>The following corrections have been made to the IIS6 and IIS7 quick setup:</p>
<p>				1 - The Relay Server State Manager could not start as the generated configuration contained removed properties (start and auto_stop). This has been fixed so that the invalid properties is no longer generated.</p>
<p>				2 - Many links in the generated quick reference documentation no longer worked, and have now been fixed.</p>
<p>				3 - The quick reference only demonstrated the use of the detailed status page, using the rs_admin extension only. Now a full set of pin-pointed status pages are added to the troubleshooting section.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725302">725302</a></td>
<td>When running on Windows systems, the database server could have hung for up to three minutes when running as a system service when the system was first booting up. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725391">725391</a></td>
<td>If an Open Client or jConnect application attempted to perform a positioned update on a table that had an NCHAR based column in the primary key, then there was a chance the application would have hung. This problem has now been fixed. Note that this problem did not affect non-TDS based clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725392">725392</a></td>
<td>When setting options using the system procedure sa_server_option(), the documentation states that &#39;YES/NO&#39; as well as &#39;ON/OFF&#39; can be used for any settings that accept Boolean values. There were two options that would accept &#39;ON/OFF&#39;, but not &#39;YES/NO&#39;, ProcedureProfiling and DeadlockLogging. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725451">725451</a></td>
<td>The execution of SELECT INTO statements in stored procedures may have been inefficient to compute. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725546">725546</a></td>
<td>UltraLite now supports the new armv7s architecture in Xcode 4.5 for A6 chip devices (iPhone 5 and iPad).</p>
<p>				The build script for the UltraLite library (SQLAnywhere/ultralite/iphone/build.sh) now selects which architectures to build based on the version of Xcode. Xcode 4.5 and later will build armv7 and the new armv7s. Older versions of Xcode will build armv6 and armv7 as before. An armv7s version of the obfuscated source is now included.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725553">725553</a></td>
<td>A client request which required a server to server request could have hang if the server to server connection was dropped while the client request was using it. For example, if a client request (such as a commit) resulted in writing to the transaction log on a primary high availability server, and the connection to the mirror (the server to server connection) dropped while the client request was attempting to send log pages to the mirror, the client request could have hung. Similarly, this could have occurred during a client request if a connection to a diagnostic server dropped during the client request. Note that only the single client request was hung and the server was still operating normally otherwise. This has been fixed so that the client request will not hang.</p>
<p>				As a workaround, the client connection that is hung can be dropped using DROP CONNECTION. This will cause the client connection to immediately report an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725583">725583</a></td>
<td>Execution of &quot;[not] exists(subquery)&quot; expressions in stored procedures may have been inefficient to compute. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725599">725599</a></td>
<td>In some cases, invalid DEFAULT values were allowed when executing a CREATE TABLE statement. In specific instances, these invalid default values could have caused a server crash. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725600">725600</a></td>
<td>Some queries with invalid ORDER BY clause specifications could have failed to give an error, given an inappropriate error, or caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725601">725601</a></td>
<td>An error could have been incorrectly returned when creating a procedure, trigger, view, or event if there was a constant literal for a number. For the problem to occur, the number must have been larger than can fit in a NUMERIC type, but in range for a DOUBLE value (alternatively, it could have been a number smaller than can fit in a NUMERIC type but non-zero when interpreted as a DOUBLE). When the problem occurred, an error such as the following might have been returned: </p>
<p>				SQLCODE=-836 &quot;Procedure &#39;P1&#39; is no longer valid&quot;</p>
<p>				Further, the database where the statement was executed could have failed to recover after a failure.</p>
<p>				For example:</p>
<p>				create or replace procedure dba.P1()</p>
<p>				begin</p>
<p>				select if 1=1 then 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 end if;</p>
<p>				end</p>
<p>				create or replace procedure dba.P2()</p>
<p>				begin</p>
<p>				select if 1=1 then 0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 end if;</p>
<p>				end</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725602">725602</a></td>
<td>If a grouped query contained a ROWID function in the SELECT list or the HAVING clause, where the primary key of the table of the ROWID was in the GROUP BY list but the ROWID function was not in the GROUP BY list, then an inappropriate error (揈xpression error�) was returned.</p>
<p>				For example:</p>
<p>				select ROWID(T)</p>
<p>				from sys.dummy T</p>
<p>				group by dummy_col</p>
<p>				This has been fixed. The following error is now returned:</p>
<p>				Function or column reference to &#39;ROWID&#39; must also appear in a GROUP BY</p>
<p>				SQLCODE=-149, ODBC 3 State=&quot;42000&quot;</p>
<p>				To avoid the error, include the ROWID function in the GROUP BY list.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725690">725690</a></td>
<td>Under rare circumstances, if recovery operations performed on a database included changes affecting immediate text indexes, there was a potential for triggering assertions failures or server crashes. There is also a potential for generating incorrect score values or incorrect results for subsequent queries using the text index. These problems have now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725692">725692</a></td>
<td>The connection widgets lists all connections to the SA resource (server). There can be more than one database on the server and the connections showed up with no indication of which database they were on. The database name for the connection is now shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725700">725700</a></td>
<td>The performance of the SAParameterCollection.AddParameters method has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725718">725718</a></td>
<td>When running the server on Linux systems with a recent glibc version, the server could have crashed. This was more likely when a system with many CPUs was being used. This has now been fixed.</p>
<p>				The only reliable workaround is to use an older version of glibc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725779">725779</a></td>
<td>When installing an EBF, the installer could have erroneously terminated and rolled back the install. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725820">725820</a></td>
<td>If a high availability partner was stopped while it was attempting to determine its role, the database may have been corrupted. If this corruption occurred, attempting to start the database would likely fail with the 100904 assertion &quot;Failed to redo a database operation.&quot; This has now been fixed.</p>
<p>				As a workaround, when stopping a mirror partner that is currently determining the role with an affected build, it is recommended that the server is terminated instead of stopped normally.</p>
<p>				If this database corruption occurs, the database is corrupted but the transaction log is not. The database can be fully recovered by applying the current transaction log file(s) to a backup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725821">725821</a></td>
<td>The Entity Framework reference in the ADO.NET v4 provider for the 12.0.1.3797 EBF incorrectly refered to the Entity Framework 5.x assemblies. This has been fixed.</p>
<p>				Also, version support for the ADO.NET v4 provider to the Entity Framework is now limited to Entity Framework versions 4.4.x and up.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725827">725827</a></td>
<td>With UltraLiteJ for Android, the network protocol options 搃dentity� and 搃dentity_password� for authentication of the client during MobiLink synchronization, are now supported. These network protocol options must be set as 揺xtra� parameters with the UltraLiteJ API StreamHTTPParms.setExtraParameters().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725849">725849</a></td>
<td>When converting .NET values of SAParameter to native types, the provider always allocated new unmanaged memory, which may have been slow. To improve performance, unmanaged memory is now cached and reused.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR725854">725854</a></td>
<td>The .NET values of SAParameter have been converted to native types to improve performance. The native values are now cached and reused if they are not changed since the last execution of the command. Also, several other changes have been made to reduce the time for accessing the properties and methods of SAParameter and SAParameterCollection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726235">726235</a></td>
<td>Under rare, timing and execution plan dependent circumstances, execution of a parallel query plan could have caused the server to hang. This has been fixed.</p>
<p>				A workaround is to disable intra-query parallelism for affected queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726268">726268</a></td>
<td>Under rare circumstances, using Sybase Central抯 search functionality may not have have been able to locate a search hit when it was double-clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726388">726388</a></td>
<td>Some XML documents could have caused the server to allocate excessive memory while processing OPENXML. This has been fixed. These types of documents now return the error:</p>
<p>				-890 &quot;Statement size or complexity exceeds server limits&quot;</p>
<p>				In some cases, a statement processing an XML document could not have been stopped by cancelling or dropping the connection. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726393">726393</a></td>
<td>The UltraLiteJ Database Transfer utility would not have transfered databases on 64bit only Windows systemss. An 揈rror transferring database� dialog would have been displayed immediately after clicking on the 揝tart� button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726396">726396</a></td>
<td>If a SQL batch contained multiple DECLARE statements for local variables with assignments of the default value or an initial value, then the assignments were only executed for the last DECLARE variable-name statement of the batch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726508">726508</a></td>
<td>If a query used the user_name() or suser_name() builtin function, then the described length of the column was LONG VARCHAR, even though the value would be at most 128 bytes. This has been corrected so that the described type is now VARCHAR(128). Any materialized views that use these builtins in the select list should be rebuilt after this change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726536">726536</a></td>
<td>When using the START EXTERNAL ENVIRONMENT statement to start a connection-scoped external environment, and then disconnecting later on without actually making any external environment calls to the connection-scoped external environment, then there was a small chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726546">726546</a></td>
<td>The LastReqTime connection property could have had an incorrect time stamp compared to current time. This would have only occurred if the server had been running for more than 24 hours. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726715">726715</a></td>
<td>The server could in some cases, have crashed while performing a BCP IN request if an error was generated while servicing the BCP request. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726720">726720</a></td>
<td>In very rare timing dependent cases, it was possible for a mirror server connection between two servers to have only been partially established. If this was the case, the mirror or copy node with the partially established connection would not have written or applied changes. In particular, a mirror would have stayed in the &#39;synchronizing&#39; state when it should have become &#39;synchronized&#39;. This has been fixed.</p>
<p>				A work around is to restart the server that is not writing or applying changes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726945">726945</a></td>
<td>Attempting to start external environments would have failed if an Version 10.0 database, with a large number of objects, was upgraded. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726951">726951</a></td>
<td>In rare timing dependent cases, if the primary server was stopped, the mirror server would have failed to take over as the new primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726952">726952</a></td>
<td>The MobiLink Client would not have reported error messages generated by the MobiLink server for a synchronization where progress offsets were checked against the server values at the beginning of the synchronization and found to be different from the server side values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR726959">726959</a></td>
<td>In a high availability mirroring setup, if the connection between the mirroring partners dropped, but the connections to the arbiter were stable, it was possible for the primary to have restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727045">727045</a></td>
<td>If the case of the procedure owner and/or name differed between the procedure抯 definition statement and its source statement in the reload script generated by dbunload, then attempting to compare the databases would have thrown an assertion.</p>
<p>				For example:</p>
<p>				create procedure usr.FullName( ...;</p>
<p>				COMMENT TO PRESERVE FORMAT ON PROCEDURE &quot;USR&quot;.&quot;FullName&quot; IS ...;</p>
<p>				The same problem would have occurred for functions, triggers, views, and events. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727087">727087</a></td>
<td>If a stored procedure statement contained an OPENXML statement with a variable used in an XPATH value, or a CONTAINS condition with a variable used in the query parameter, then the statement could have failed incorrectly with an error:</p>
<p>				-134 &quot;Feature &#39;OPENXML with non-constant query&#39; not implemented&quot;</p>
<p>				-1159 &quot;Non-constant or unknown text query string.&quot;</p>
<p>				In order for the error to be returned, the variable must have been used in a larger expression such as a cast or string concatenation. The failure would have occurresd intermittently, for example on the 11th execution of the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727093">727093</a></td>
<td>In extremely rare, timing dependent cases a database could have been corrupted if a server crashed or was terminated during a checkpoint, and then was terminated again during recovery. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727096">727096</a></td>
<td>Clicking the &quot;Single Step&quot; menu item executes the SQL statement containing the editing caret, then selects the next statement in the &quot;SQL Statements&quot; panel. If the SQL statements were separated by the word &quot;GO&quot;, the single stepping could have failed depending on the specific statement being executed, resulting in a syntax error that referred to a trailing letter &quot;G&quot; in the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727144">727144</a></td>
<td>When executing SQL statements and queries with many parameters, they could have taken a long time to complete in an UltraLite.Net application. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727192">727192</a></td>
<td>Comparing databases could have failed if extended characters were used in one or more of the connection parameters for either of the databases. For example, if a database name was specified that contained characters other than 7-bit ASCII. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727198">727198</a></td>
<td>Specific forms of the LIKE predicate could have caused the server to crash. As well, the wrong answer could have been returned for a LIKE predicate that compared non-string values. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727245">727245</a></td>
<td>UltraLite could have signaled -305 or -309 errors, and the crashed or possibly failed to upload all rows, after the following sequence:</p>
<p>				- synchronization including downloaded deletes</p>
<p>				- concurrent commit operation during the synchronization download cleanup phase</p>
<p>				- shutdown (or application termination) soon after the synchronization completes</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727315">727315</a></td>
<td>Under rare circumstances, the server may have crashed if RememberLastStatement was turned on and a statement being executed was too complex. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727357">727357</a></td>
<td>If a version 16 or later MobiLink client connected to a version 12 or earlier MobiLink server, the server would have printed a confusing error. It will now print an &#39;unrecognized version&#39; error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727360">727360</a></td>
<td>The MobiLink server may have crashed if the upload stream contained updates for tables with BLOB or spatial columns. Other requirements were that the updates caused conflict updates, and the script version contained conflict detection/resolution scripts. This problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727601">727601</a></td>
<td>If a statement contained an IN predicate on a column and one or more other sargable predicates on the column, then the statement might not have executed as efficiently as it could have. When optimizing predicates, the range of values within the IN list was not considered when finding tautologies, contradictions, or a narrower interval of validity. This has been fixed.</p>
<p>				For example, the following predicates are now optimized as follows (where, UDF is a user-defined function):</p>
<p>				x=3 and x in (1,2,3) --&gt; x=3</p>
<p>				x&gt;=3 and x in (1,2,3) --&gt; x=3</p>
<p>				x&gt;3 and x in (1,2,3) --&gt; FALSE</p>
<p>				x=2 and x in (1,2,UDF(3)) --&gt; x=2</p>
<p>				x=3 and x in (1,2,UDF(3)) --&gt; x=3 and x in (1,2,UDF(3))</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727658">727658</a></td>
<td>The Deploy wizard in the MobiLink Plug-in generates a summary file that shows all the choices made during the deploy process. Each line in this file was terminated with a \n character. Some Windows editors do not recognize this a line terminator, they expect \r\n. The wizard now terminates the lines of the summary file with the appropriate line terminator for the operating system on which it is running.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_101.htm#CR727669">727669</a></td>
<td>Under rare circumstances, a simple statement using variables or builtin functions could have returned incorrect results. This could only happen if the simple statement was processed by bypassing the query optimizer. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727676">727676</a></td>
<td>The MobiLink Log File Viewer in Sybase Central was unable to read log files that contained lines which were longer than 8192 bytes. Now, lines up to 65536 bytes are supported. </p>
<p>				Note, line length in log files can become very long when the MobiLink server &quot;-vr&quot; option (display column values) is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727729">727729</a></td>
<td>Executing a specific statement involving DateTimeOffset and an empty HashSet in LINQ against the Entity Framework would have resulted in an &quot;Unknown EdmType: DateTimeOffset&quot; error. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727737">727737</a></td>
<td>Some clauses of the CREATE SPATIAL REFERENCE SYSTEM statement were incorrectly recorded in the transaction log. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727756">727756</a></td>
<td>With UltraLiteJ for Android, data synchronization over HTTPS using default trusted certificates from the system store would have failed on Android 4.0 (Ice Cream Sandwich) or later. The location of the system trusted certificate store, and APIs to retrieve certificates, changed in Ice Cream Sandwich. Now the Android version is detected at runtime to determine how to retrieve the certificates.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727765">727765</a></td>
<td>If the SQLANY12 environment variable had a trailing slash, the path to the Driver= line in the DSN would have been constructed incorrectly by the Data Source utility (dbdsn). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727769">727769</a></td>
<td>When comparing databases, a CREATE TRIGGER statement would have been marked as an unrecognized statement if it included a trigger owner; for example, CREATE TRIGGER trigger-owner.trigger-name BEFORE INSERT ON table-owner.table-name... . This has been fixed.</p>
<p>				Note that while the trigger owner is syntactically valid, it is ignored by the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727777">727777</a></td>
<td>When comparing databases, applying the generated script to convert database 1 to database 2 would have failed if one database contained a table and the other database contained a view, such that the table and view shared the same owner and name. The same problem would also have occurred for procedures and functions. These problems have been fixed so that the generated script now contains the required statement to drop the object from database 1 before creating the object from database 2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR727860">727860</a></td>
<td>In extremely rare timing dependent cases, a database server could have crashed if a mirrored database or mirror server was stopped, or dropped from the mirroring setup. This has been fixed.</p>
<p>				Also in rare timing dependent cases, when dropping an arbiter server from a mirroring setup, it was possible for old state information to be left behind in the arbiter server抯 state file. This could have caused difficulties later on if the same server was started as a high availability server for the mirroring system. This has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728223">728223</a></td>
<td>If an HTTP request was incorrectly formatted in a particular way, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728245">728245</a></td>
<td>慏igital Signature� has been added to the default Key Usage for non-certificate authorities for the Certificate Creation utility (createcert). Some OpenSSL implementations return an error if the peer certificate does not have 慏igital Signature� in its key usage.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728260">728260</a></td>
<td>In order to support better software protection from potential SQL injection threats, the following restriction will be applied to databases created by SQL Anywhere 16.0.0.</p>
<p>				Identifiers:</p>
<p>				The following characters are currently not permitted in identifiers:</p>
<p>				Double quotes</p>
<p>				Control characters (any character less than 0x20)</p>
<p>				Backslashes</p>
<p>				In addition to the above, the following characters will now not be permitted in an identifier: </p>
<p>				Square brackets ([])</p>
<p>				Back quotes (`)</p>
<p>				Aliases:</p>
<p>				1. select-list : expression [ [ AS ] alias-name ]</p>
<p>				The new restrictions on identifiers now apply to the characters permitted in an alias-name.</p>
<p>				2.select-list : alias-name = expression (Transact-SQL dialect)</p>
<p>				The new restrictions on identifiers now apply to the characters permitted in a Transact-SQL dialect alias-name.</p>
<p>				Notes:</p>
<p>				New restrictions described above will only be applied if the database is created using SQL Anywhere 16.0.0 software.</p>
<p>				Databases upgraded to version 16.0.0 as well as all databases created and/or upgraded to older versions will continue to apply the current restrictions and continue to allow newly prohibited characters inside identifiers and aliases.</p>
<p>				If pre-version 16.0.0 database has any square brackets or back quotes in an identifier, they must be removed before performing a reload; otherwise the reload will fail.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728261">728261</a></td>
<td>The MobiLink Replay utility (mlreplay) was not sending liveness commands to the MobiLink server correctly when using HTTP. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728335">728335</a></td>
<td>When setting SAParameter.DbType to DbType.DateTime2, an IndexOutOfRangeException could have been thrown. The data type conversion was missing for DbType.DateTime2. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728436">728436</a></td>
<td>Importing TINYINT data using the INPUT statement would have caused the Interactive SQL utility to report an internal exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728446">728446</a></td>
<td>When the error message 揝QL statement failed: (-782) Cannot register &#39;sybase.asa.dbmlsync&#39; since another exclusive instance is running� was generated and the database character set of the remote database was different from the OS character set, the message would be displayed in the wrong character set and may have been unreadable. This problem affected only this error message, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728449">728449</a></td>
<td>When using communication compression on HP-UX, or on Linux with a recent glibc version, a communication error could have occurred on the compressed connection. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728458">728458</a></td>
<td>The server may have behaved badly, including crashes or corruptions, when using a recent version of Linux with glibc 2.11 or higher. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728460">728460</a></td>
<td>The UpgradeCloudInfrastructure event may have been logged as an error in the Cloud Console&#39;s Events &amp; Tasks page even though the upgrade succeeded. If this was the case, the UpgradeCloudInfrastructure will have the red X icon indicating an error, even though all Subevents and related tasks were successful. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728589">728589</a></td>
<td>Calling Entity Framework SaveChanges could have caused a NullReferenceException if the entity model had properties with 揻ixed� concurrency mode. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728597">728597</a></td>
<td>Crashes and data corruption were possible due to silent I/O failures on Red Hat Linux 6, as well as other Linux distributions with kernel versions greater than 2.6.38. The most likely manifestation of this bug was assertion 200505 (&quot;checksum failure on page x&quot;).</p>
<p>				This problem is related to a possible bug in the transparent huge pages (THP) feature introduced in these operating system versions. Red Hat bug 891857 has been created to track this issue.</p>
<p>				The problem can be triggered by calling an external environment, xp_cmdshell, or other procedure that causes a fork while other I/O is occurring. A known limitation with the Linux kernel limits the use of fork while doing O_DIRECT I/O operations. Essentially what can happen is that the data can come from or go to the wrong process� memory after the fork. SQL Anywhere performs O_DIRECT I/O operations according to the documented safe usage. However, THP appears to cause further problems and the O_DIRECT I/O data comprising database page reads/writes appears to get lost.</p>
<p>				This has been fixed by disabling THP on the SQL Anywhere cache memory where possible. We are working with Red Hat to identify a solution within the operating system.</p>
<p>				There are two possible workarounds:</p>
<p>				1. disable THP on a system-wide basis with one of the following methods:</p>
<p>				echo never &gt; /sys/kernel/mm/transparent_hugepage/enabled</p>
<p>				echo never &gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled</p>
<p>				boot with transparent_hugepage=never</p>
<p>				2. disable O_DIRECT I/O for database file reads/writes with one of the following methods:</p>
<p>				use the -u flag on the server command line</p>
<p>				set SA_DISABLE_DIRECTIO=1 in the environment before starting the server</p>
<p>				Transparent huge pages cannot be disabled just for the SQL Anywhere cache memory on Red Hat Enterprise Linux 6. SQL Anywhere now disables direct I/O if transparent huge pages are enabled and cannot be disabled on a per-allocation basis. A warning will be printed as the database file is being opened to indicate that direct I/O is disabled due to this bug. This is similar to how SQL Anywhere handles file systems that do not support direct I/O.</p>
<p>				Customers using RHEL 6 who wish to continue using direct I/O should use the previously-stated command to disable THP at the system level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728720">728720</a></td>
<td>A long delay may have been observed when right-clicking in the SQL Statements panel, especially if the internet connection was slow, or if there was no internet connected at all. This has been fixed. Note, the problem does not occur if the documentation has been installed locally.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728734">728734</a></td>
<td>Crashes and data corruption are possible due to silent I/O failures on Red Hat Linux 6, as well as other Linux distributions with kernel versions greater than 2.6.38. The most likely manifestation of this bug is assertion 200505 (checksum failure on page X).</p>
<p>				This problem is related to a possible bug in the transparent huge pages (THP) feature introduced in these operating system versions. Red Hat bug 891857 has been created to track this issue.</p>
<p>				The problem can be triggered by calling an external environment, xp_cmdshell, or other procedure that causes a fork while other I/O is occurring. A known limitation with the Linux kernel limits the use of fork while doing O_DIRECT I/O operations. Essentially what can happen is that the data can come from or go to the wrong process� memory after the fork. SQL Anywhere performs O_DIRECT I/O operations according to the documented safe usage. However, THP appears to cause further problems and the O_DIRECT I/O data comprising database page reads/writes appears to get lost.</p>
<p>				Until this is fixed, there are two possible workarounds:</p>
<p>				1. disable THP on a system-wide basis with one of the following methods:</p>
<p>				echo never &gt; /sys/kernel/mm/transparent_hugepage/enabled</p>
<p>				echo never &gt; /sys/kernel/mm/redhat_transparent_hugepage/enabled</p>
<p>				boot with transparent_hugepage=never</p>
<p>				2. disable O_DIRECT I/O for database file reads/writes with one of the following methods:</p>
<p>				use the -u flag on the server command line</p>
<p>				set SA_DISABLE_DIRECTIO=1 in the environment before starting the server</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728742">728742</a></td>
<td>If a database contained a materialized view that used key joins, then unloading and subsequently reloading the database would have failed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728776">728776</a></td>
<td>Attempting to import data into a table for which the user did not have permission to select rows, they would have failed with the incorrect error message &quot;The table you selected ... does not exist.&quot; </p>
<p>				Similarly, the same bad error message would have been presented when exporting into a database table for which the user did not have permission to select rows.</p>
<p>				These problems have been fixed. The error message now clearly indicates that you don&#39;t have permission to select from the table.</p>
<p>				Users could encounter this problem when executing the INPUT or OUTPUT USING statements, or when using the Import or Export wizards.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728789">728789</a></td>
<td>If the SQLCONNECT environment variable was used to specify default connection values, and the length of the SQLCONNECT value was greater than or equal to 255 bytes, the SQLCONNECT value was ignored. This has been fixed so that SQLCONNECT values up to a length of 1023 bytes are accepted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728863">728863</a></td>
<td>A MobiLink client using HTTP could have hung, or an error could have been reported, when it automatically attempted to reestablish a lost connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728865">728865</a></td>
<td>The Index Consultant would have reported an error message when opened if the SQL statement being analyzed contained a semicolon as part of an identifier name or a literal string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728886">728886</a></td>
<td>When the &quot;Show all result sets&quot; option is on, the Interactive SQL utility will display all the result sets returned by a query. If a statement produced more than one result set, and the Export Wizard was used to export those result sets, clicking the &quot;Next&quot; button on the first page would have returned an error saying that only one result set can be exported to an ODBC data source. This message would have been returned even when not exporting to a database. This has been fixed. The Export Wizard now supports exporting multiple result sets to text files, HTML files, and XML files.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR728972">728972</a></td>
<td>The header for the first column (the row header &quot;Property Name&quot;) of the Server and Database property lists could have been truncated if the header text was longer than the longest property name being shown in the table. This problem was readily apparent when running the program in French, but it affected all languages. This has been fixed. The first column is now sized wide enough for the header text and the names of the properties shown in the table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729006">729006</a></td>
<td>Creating a procedure with a right curly-bracket &quot;}&quot; in procedure_name(e.g CREATE PROCEDURE 揚1{}�()�) would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729137">729137</a></td>
<td>When running a non-English synchronization profile, attempts to synchronize an UltraLite database from the Sybase Central UltraLite plug-in, via the Synchronization wizard, could have failed with a message reporting that the synchronization profile can抰 be found (and the name of the profile will be mangled). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729261">729261</a></td>
<td>If a server was running with IP address monitoring enabled, the server could have crashed if more than one IP address was removed from the machine within the IP address monitoring period (default 2 minutes). This could have happened if the machine was suspended or hibernated and moved to another network where more than one of the previous IP addresses were no longer available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729292">729292</a></td>
<td>The unload support utility for pre-10.0 database (dbunlspt) may have behaved badly, including crashing, failing assertions, or database file corruption, when using a recent version of Linux with glibc 2.11 or higher. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729394">729394</a></td>
<td>In very rare cases, a database could have failed to start with the error &quot;Fatal error: undo log corrupted after log rename&quot;. In order for this to have occurred, all of the following needed to be true:</p>
<p>				1) a connection to the database had an outstanding transaction</p>
<p>				2) while there was this outstanding transaction, the transaction log was renamed or truncated</p>
<p>				3) the database had no free pages and needed to grow during the checkpoint that was part of renaming or truncating the transaction log</p>
<p>				4) the connection from 1) still had an outstanding transaction during the last checkpoint before the database stopped or was backed up</p>
<p>				5) the database was not shut down cleanly, or it was backed up</p>
<p>				6) attempting to start the database from 5) required recovery and could have in rare cases failed with the error &quot;Fatal error: undo log corrupted after log rename&quot;.</p>
<p>				Other failures may have been possible if all of the above conditions applied. This has been fixed to avoid corrupting the undo log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729396">729396</a></td>
<td>Attempting to fetch the 揚RECISION� column of the DatabaseMetaData.getTypeInfo() result set, using one of the ResultSet.getXXX( String ) methods, would have resulted in the incorrct error: 揷olumn number 0 is invalid�. Using one of the ResultSet.getXXX( int ) methods would have worked fine. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729427">729427</a></td>
<td>The MobiLink server could have crashed when using HTTP and a misconfigured HTTP proxy. The server now reports an error and kills the synchronization when this occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729541">729541</a></td>
<td>The Relay Server mistakenly logged session errors from the Outbound Enabler as a failure in initializing the random number generator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729556">729556</a></td>
<td>The UltraLite runtime could have caused an application to crash during the optimization of a query with many JOINs (typically more than 12). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729661">729661</a></td>
<td>If the host running the cloud primary had a large number of IPv4 and IPv6 addresses, then there was a chance that other cloud servers would have failed to start up because they could not connect to the cloud primary. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729777">729777</a></td>
<td>The &quot;Overview&quot; panel for a database shows the mirrored state of a database. If the deprecated command line option &quot;-xp{partner=...;arbiter=...}&quot; were specified, the mirroring configuration was not shown on the &quot;Overview&quot; panel. This has been corrected so that now it is.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729836">729836</a></td>
<td>In some situations dbcloudarbiterstate.txt was not preserved properly while running RepairServer task. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729852">729852</a></td>
<td>The Text Completer has an option to open automatically when typing to suggest object names. Opening the Query Editor window had an inadvertent side-effect of always turning off this option. This has been fixed so the Query Editor no longer permanently turns off the option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729867">729867</a></td>
<td>After calling the system procedure sa_server_option( 慠equestTiming�, ... ), connections may have gathered or returned request timing values inconsistently. In particular, request timing may have been enabled when the connection was established but disabled immediately after changing the option, or request timing may have been disabled when the connect was established but ignored when the option was enabled. Also, if a pooled connection was reused, the values tracked by request timing where not reset as they would be if a new connection was established. This has been fixed so that request timing is enabled or disabled at connect time (including when reusing a pooled connection). Once the connection has been established, request timing will remain enabled or disabled for the connection until it is disconnected, regardless of sa_server_option( 慠equestTiming�, ... ) calls during the life of the connection. In addition, if a pooled connection is reused when request timing is enabled, the values tracked by request timing are reset.</p>
<p>				Note that the database and server properties that correspond to those enabled by the 杬t server option are only updated for connections that have request timing enabled or disabled at their individual connection time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729869">729869</a></td>
<td>The Relay Server converted server responses containing malformed headers into a &#39;400 Bad Request&#39; response without logging an error. This fix added a new RSE_CLIENT_RESPONSE_HEADER_ERR(4016) error when this now happens.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729871">729871</a></td>
<td>The Relay Server was considering server responses that contained headers with empty values as malformed, and was converting the responses to a &#39;400 Bad Request&#39; response. This fix is to relax this case and relay the response without changing it or raising an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729873">729873</a></td>
<td>The Relay Server automatically sends down instruction to the client to expire the affinity cookie when the backend server response code falls into the error range, except for 401 and 407 authentication challenges. Debug information of this expiring activity was not available in the Relay Server log at any verbosity level. This fix is to add a message at verbosity 4 and above for this activity.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR729894">729894</a></td>
<td>The error ID and error name column in the Relay Server Record did not capture RSE4008 and RSE4016. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730023">730023</a></td>
<td>The SQL Anywhere JDBC Driver would have thrown a SQLException with a 揘ot Implemented� message when calling an optional JDBC method that was not supported by the JDBC Driver. This has been corrected so that the JDBC 4.0 SQL Anywhere JDBC Driver now throws the new SQLFeatureNotSupportedException. Since SQLFeatureNotSupportedException is a JDBC 4.0 feature, the JDBC 3.0 Driver will continue to throw a SQLException instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730024">730024</a></td>
<td>The SQL Anywhere JDBC Driver would have incorrectly throw a 揘ot Implemented� exception when PreparedStatement.setNull() was called with either java.sql.Types.BLOB or java.sql.Types.CLOB. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730094">730094</a></td>
<td>When the Relay Server encountered an invalid SAP Passport, it would have reported an error in English without providing an error code, while continuing to relay the request. This has been fixed by replacing the error with a localized warning RSW104 indicating that an invalid passport has been ignored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730111">730111</a></td>
<td>Attempting to creating a primary key on a table with an existing primary key could have return an 揑ndex name not unique� error, rather than an error reporting the existence of a primary key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730134">730134</a></td>
<td>When a relay error occured early enough, there may not have been enough information to calculate the relay KPI. The result was a wrong KPI value shown in the Relay Server record. This has been fixed by replacing the wrong value with zero when the KPI cannot be calculated due to a failure. The occurrence of the error is already recorded in the same RSR.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730149">730149</a></td>
<td>On rare occasions the server would have crashed on shutdown when running on Linux systems. The crash would have occurred when stopping shared memory connections. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730237">730237</a></td>
<td>The SQL Anywhere topology widget height did not show all nodes without scrolling the widget. This has now been fixed to initially show all child nodes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730248">730248</a></td>
<td>When using the table editor to change a column抯 data type, Sybase Central could have crashed if a domain had previously been created in the same Sybase Central session. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730250">730250</a></td>
<td>Attempting to delete one or more objects by selecting the objects, pressing the Delete key, and then quickly pressing the Y key to confirm the deletion before the confirm dialog was displayed, could have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730251">730251</a></td>
<td>The Upgrade Database wizard could not have been used to upgrade a database unless the user was granted exercise rights on the SERVER OPERATOR system privilege, even though the wizard didn抰 make use of this system privilege. Now the wizard no longer requires the SERVER OPERATOR system privilege.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730270">730270</a></td>
<td>SQL Remote always assumes that all databases involved in replication share the same character set. By default, SQL Remote will always apply source CHAR data to a target database using the default character set for the operating system it is running on, ignoring the source data character set.</p>
<p>				When using a database character set that is different than the default character set for the operating system, dbremote must be instructed to perform explicit data conversion to that character set on its connection string:</p>
<p>				e.g. dbremote -c 揅HARSET=utf8;厰</p>
<p>				or instruct dbremote to always use the CHAR character set of the target database to apply the remote CHAR data:</p>
<p>				e.g. dbremote -c 揅HARSET=none;厰</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730271">730271</a></td>
<td>Syncs could have failed when using HTTP and using an HTTP intermediary that was setting a 揅onnection: Keep-alive� header, but was actually creating a new connection for each HTTP request. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730384">730384</a></td>
<td>Pressing the F1 key while an error window was open after executing a SQL statement with the Interactive SQL utility, would have cased dbisql to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730475">730475</a></td>
<td>When viewing a NULL binary value in the Long Value window, the Save button was incorrectly enabled. If the Save button was clicked, Interactive SQL would have crashed. This has been fixed;. Now, the button is not enabled if the value is NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730485">730485</a></td>
<td>The Interactive SQL utility shows result sets using a scrollable table, which can be searched. With &quot;Match case&quot; selected in the &quot;Find in Results&quot; window, dbisql would still have performed a case-insensitive search. This has been fixed.</p>
<p>				Also, It was possible for the table cell which contained the matched text to be hidden under the &quot;Find in Results&quot; window. Now, the window is automatically moved out of the way.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730642">730642</a></td>
<td>If multiple threads attempted to access a connection pool concurrently (by modifying it to add/remove a connection), an InvalidOperationException would have been thrown. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730652">730652</a></td>
<td>If the Fast Launcher was enabled, but was unable to initialize, the Interactive SQL utility or Sybase Central would have crashed when the Fast Launcher was subsequently disabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730761">730761</a></td>
<td>If the Unix setup script was run from a path containing spaces (including the default behaviour for the Mac DMG file), it would not have run correctly. One example of bad behaviour was improper display of the version numbers. The graphical installers would also have failed to display the license text properly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730762">730762</a></td>
<td>In the Breakpoints window, selecting an existing breakpoint to edit may not have selected the right server name. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730770">730770</a></td>
<td>The Relay Server for IIS may have leaked memory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730776">730776</a></td>
<td>In very rare, timing dependent cases, it was possible for one or more copy nodes to have failed an assertion after the primary was shutdown and the mirror took over as the primary. The assertion would have indicated a problem applying operations from the transaction log (for example assertion 100903). This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730783">730783</a></td>
<td>In rare circumstances, synchronizations could have failed if another thread was performing operations on the database at the same time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730785">730785</a></td>
<td>The Deployment wizard may not have worked corrctly on UNIX platforms. The version number may not have been displayed correctly and/or the list of components may have been empty. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730789">730789</a></td>
<td>The INPUT statement and the Import wizard could have failed while importing spatial data if the source column did not have a SRID constraint, the data contained an embedded non-zero SRID, and Interactive SQL was creating a new table to hold the imported data. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730797">730797</a></td>
<td>The fix for Engineering case 728776 introduced a bug which caused the CREATE TABLE ON clause of the INPUT statement to fail with a message saying that the destination table did not exist. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730800">730800</a></td>
<td>Some uniqueidentifier column values could have been displayed as &quot;(IMAGE)&quot; in the result set table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730890">730890</a></td>
<td>When displaying the last state change time for LDAP servers, the values displayed in the LDAP Servers folder did not include a time zone, while the values displayed on the LDAP server property sheet included the server抯 time zone, which was incorrect. Now the values clearly indicate that LDAP server last state change times are in Coordinated Universal Time (UTC).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730893">730893</a></td>
<td>On the Create Database wizard抯 揅onnect to the Database� page, the server name shown would have been incorrect if a new local server was started, then the database creation was cancelled and the database file name was changed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730896">730896</a></td>
<td>On the Fragmentation tab for a database, selecting a table or index in the list and then attempting to change the selection while the previous selection抯 bitmap was being loaded, may have caused Sybase Central to hang until the loading completed. This has been fixed. Now the loading of the previous selection抯 bitmap is canceled and the loading of the new selection抯 bitmap is started.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730900">730900</a></td>
<td>When attempting to connect to two databases with the same server and database names, but with the servers on different subnets, Sybase Central would have reported 揧ou are already connected to this database� when the second connection was attempted. This has been fixed. Now Sybase Central will connect to both databases as long as the servers� machine names differ.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730907">730907</a></td>
<td>When selecting the Data tab for a table or view, clicking Cancel in the 揕oading Data� dialog then attempting to fetch the Data didn&#39;t always cancel the loading. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730919">730919</a></td>
<td>Clicking the Cancel button in the Spatial Viewer window could have failed to cancel the execution. At that point, the Spatial Viewer could not then be closed. This problem has been fixed, and execution can now be cancelled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730928">730928</a></td>
<td>The Interactive SQL utility could have crashed when viewing binary values if the long value window was closed before the server returned the complete cell value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR730932">730932</a></td>
<td>When working with an UltraLite database from Sybase Central or the Interactive SQL utility, some errors displayed by those tools may now display slightly different (more detailed) information in the error message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731014">731014</a></td>
<td>If the MobiLink server had been started with a command line in which the maximum number of concurrent database worker threads (-wm option) was a value less than the initial number of concurrent database worker threads (-w option, default value 5), then the MobiLink Server would have failed to start. The MobiLink Server will now print a warning to the MobiLink Server log indicating that it has reduced the initial number of concurrent database worker threads to the maximum number of concurrent database worker threads that was specified on the command line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731017">731017</a></td>
<td>On the Grantees, Roles or System Privileges tabs for a user, role or system privilege, if the New Grantees/Granted Roles/Granted System Privileges dialog was opened and an object was selected for which there was already a row in the privilege editor, then no privileges would have been granted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731021">731021</a></td>
<td>On the Grantees, Roles or System Privileges tabs for a user, role or system privilege, the Grantor was not shown until the changes were saved to the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731040">731040</a></td>
<td>When using the SQL Anywhere On-Demand edition with a cloud that had reduced functionality because it had not been activated following 1000 core hours use, it was not possible to update the proxy settings for the cloud. As a consequence, the cloud could not be activated if the proxy settings were incorrect. The AlterCloud task is now permitted when the cloud has entered reduced functionality.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731071">731071</a></td>
<td>When connected to an SAP HANA database, attempting to display BINARY, VARBINARY, or LONG VARBINARY data would have resulted in a message saying that the result set could not be displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731172">731172</a></td>
<td>The Interactive SQL utility did not display BLOB types of data from SAP HANA tables correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731199">731199</a></td>
<td>Attempting to connect to a SAP HANA database using a system ODBC data source, would have failed with a message which said that the host name and port were missing. This has been fixed.</p>
<p>				Note that connecting using user data sources worked as expected. If was only system data sources that were affected by this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731211">731211</a></td>
<td>A query of the form 搒elect * from T, R where T.X IN (R.X, T.Y )� may have had a suboptimal execution plan if an index existed on the column T.X. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731291">731291</a></td>
<td>The producer configuration option ServiceRoot, as used by the OData Server, was ignored and the default /odata was always used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731308">731308</a></td>
<td>When working with the MobiLink plug-in, a connection to a consolidated database is usually required. The connection is opened automatically when it is needed. If the saved connection information is no longer sufficient, the &quot;Connect&quot; window opens to prompt for credentials. If the &quot;Connect&quot; window opened as a result of testing a synchronization model, it could have opened behind a status window which was opened by the Test window. This would have prevented the entering of database credentials, and the software would subsequently have reported an internal error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731334">731334</a></td>
<td>If a SQL Anywhere 16 database was created with 揹binit -pd� or 揅REATE DATABASE � SYSTEM PROCEDURE AS DEFINER ON�, or if an older database was upgraded using 揹bupgrad -pd y� or 揂LTER DATABASE UPGRADE � SYSTEM PROCEDURE AS DEFINER ON�, then attempting to perform a 揊ORWARD TO�, or make use of any of the sp_remote_... procedures, would have failed with an invalid userid or password error. This problem has now been fixed. A database upgrade will be required to apply this fix.</p>
<p>				Note that two possible workarounds are:</p>
<p>				1) create an externlogin for dbo, or</p>
<p>				2) set the new extern_login_credentials database option to 揕ogin_user�</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731345">731345</a></td>
<td>Sybase Central could have crashed while testing a synchronization model if a test synchronization was cancelled while rows were being fetched for the &quot;Data&quot; tab, and if the database server was a little slow in returning the data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731386">731386</a></td>
<td>When comparing databases, if the parser encountered a COMMENT ON statement for which the corresponding CREATE &lt;object-type&gt; statement could not be found, then an 揢nknown error� would have been reported. Now the COMMENT ON statement is reported in the SQL Scripts tab as an unhandled statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731448">731448</a></td>
<td>Execution of loops with a large number of iterations could have been slower in 16.0.0 than in 12.0.1. For the problem to have occurred, the loop condition, or statements executed in the loop, had to use variables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731461">731461</a></td>
<td>ADO.NET provider did not convert 憈imestamp with timezone� values correctly when the regional date settings of the client did not match the date settings of the database. The provider will now return .NET DateTimeOffset values to the client. The client can then convert the .NET DateTimeOffset values to a desired format.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731483">731483</a></td>
<td>Several issues with database mirroring and read-only scale-out have now been fixed.</p>
<p>				1) If the mirror or copy node was requesting pages from the primary or parent (it had recently started and had not caught up to the current log operation) and renamed log files required by the mirror or copy node had been deleted on the primary or parent since the mirror or copy node started requesting pages, then the mirror or copy node could have stopped applying log operations or failed with the assertion 100904. This has been fixed so that that primary or parent now correctly detects this case (a required renamed log file has been deleted) and logs the message &quot;Database &lt;DBName&gt; mirroring: failure when requesting pages on remote server &lt;ServerName&gt;: missing transaction log with start offset &lt;Offset&gt;&quot; (where &lt;DBName&gt;, &lt;ServerName&gt; and &lt;Offset&gt; are replaced with appropriate values). If this occurs, the mirror or copy node will log the message &quot; Database &quot;asatest&quot; mirroring: database is not compatible with primary; files must be replaced� and the database and possibly the server will stop.</p>
<p>				2) The message &quot;Database server shutdown due to incompatible files for database mirroring� could have been displayed if an incompatible log file was detected even though the server was not stopped. If there is more than one database running on the server, the affected database is stopped, but the server is not stopped. This has been fixed so that this message is only logged if the server is actually being stopped.</p>
<p>				3) In rare timing depending cases, after one or more ALTER DATABASE SET PARTNER FAILOVER statements, neither partner could have taken the role of primary. This has been fixed. As a workaround, the ALTER DATABASE ... FORCE START statement can be used to force a partner to take over as partner if this problem occurred.</p>
<p>				4) If a copy node or async mirror got significantly behind writing log pages, it could have caused requests to the primary database to block for more than a minute. This has been fixed so that the primary will not be blocked for more than about 10 seconds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731504">731504</a></td>
<td>When comparing databases, if the source or definition for a procedure, function, view, materialized view, trigger or event contained a multi-line comment with a line that contained only the text 揼o�, then Sybase Central would have reported that it had encountered an unhandled statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731600">731600</a></td>
<td>When creating a MobiLink project, or when adding a consolidated database to a project, an inappropriate error message could have been raised saying that a database connection could not be made. The problem was specific to connecting to databases using an ODBC Data Source which contained a user id, and not giving a user id in the new project and add consolidated database wizards. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_102.htm#CR731731">731731</a></td>
<td>When running on Solaris systems, if the server had accepted a new connection, but the client side closed its socket right away, the TCP listener would have been stopped and the message &quot;TCP Listener shutting down (130)&quot; was be displayed on the server console. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731821">731821</a></td>
<td>If a database was stopped when its maintenance plan was executed, the database would not have been backed up. This has been fixed for full backups. Incremental backups will not be created for stopped databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731823">731823</a></td>
<td>Calling the ODBC function SQLGetInfo to retrieve the version of the ODBC driver (i.e. SQLGetInfo( dbc, SQL_DRIVER_VER, � ) would have returned a string that did not include the build number of the driver. This has been corrected so that the string now contains the build number. For version 12.0.1, the string returned was �12.00.0001�. As of this change, the value returned is �12.01.xxxx� where xxxx is the build number.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731843">731843</a></td>
<td>The OData server could have failed to start because one of the ports (shutdown or server port) could not be used, but the port number was not included in the error message. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731886">731886</a></td>
<td>The OData server could have started and reported that it was listening on a port that was already in use. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731939">731939</a></td>
<td>Binary values could have been unexpectedly truncated when being displayed to a console window, or in Interactive SQL if the program was configured to display result sets as text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731940">731940</a></td>
<td>If a database was stopped when its maintenance plan was executed, the database would not have been backed up. This has been fixed for full backups. Incremental backups will not be created for stopped databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731945">731945</a></td>
<td>The Fast Launcher feature of Interactive SQL and Sybase Central has an option to automatically terminate the Fast Launcher process if the program is not used for some number of minutes. The mechanism for terminating the process could have failed, leaving running, but unused processes, which were visible in the Windows Task Manager. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731965">731965</a></td>
<td>If a user ID and an encrypted password was given on the Interactive SQL utility&#39;s command line, the &quot;Connect&quot; dialog would have always opened, even if the user ID and password were sufficient to open a connection. This has been fixed. Now, Interactive SQL will attempt to open the connection with the given connection parameters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR731978">731978</a></td>
<td>ODBC (and JDBC) escape sequence support has been enhanced to include the following functions.</p>
<p>				{fn TIMESTAMPADD(&lt;interval&gt;, &lt;integer-expr&gt;, &lt;timestamp-expr&gt;)}</p>
<p>				Returns the timestamp calculated by adding &lt;integer-expr&gt; intervals of type &lt;interval&gt; to &lt;timestamp-expr&gt;. Valid values of &lt;interval&gt; are shown below.</p>
<p>				{fn TIMESTAMPDIFF(&lt;interval&gt;, &lt;timestamp-expr1&gt;, &lt;timestamp-expr2&gt;)}</p>
<p>				Returns the integer number of intervals of type &lt;interval&gt; by which &lt;timestamp-expr2&gt; is greater than &lt;timestamp-expr1&gt;. Valid values of &lt;interval&gt; are shown below.</p>
<p>				These escape functions are mapped directly to the SQL Anywhere DATEADD/DATEDIFF functions.</p>
<p>				The &lt;interval&gt; type can be one of the following:</p>
<p>				&lt;interval&gt; SQL Anywhere DATEADD/DATEDIFF date-part mapping</p>
<p>				========================= ==========================================</p>
<p>				SQL_TSI_YEAR YEAR</p>
<p>				SQL_TSI_QUARTER QUARTER</p>
<p>				SQL_TSI_MONTH MONTH</p>
<p>				SQL_TSI_WEEK WEEK</p>
<p>				SQL_TSI_DAY DAY</p>
<p>				SQL_TSI_HOUR HOUR</p>
<p>				SQL_TSI_MINUTE MINUTE</p>
<p>				SQL_TSI_SECOND SECOND</p>
<p>				SQL_TSI_FRAC_SECOND MICROSECOND</p>
<p>				Examples:</p>
<p>				// Number of days in February, 2013</p>
<p>				SELECT {fn TIMESTAMPDIFF(SQL_TSI_DAY, &#39;2013-02-01T00:00:00&#39;, &#39;2013-03-01T00:00:00&#39; )}</p>
<p>				28</p>
<p>				// Timestamp for 28 days after February 1, 2013</p>
<p>				SELECT {fn TIMESTAMPADD(SQL_TSI_DAY, 28, &#39;2013-02-01T00:00:00&#39; )}</p>
<p>				2013-03-01 00:00:00.000000</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732114">732114</a></td>
<td>The first insert of a blob into a table after the database was started may have taken longer under the following conditions:</p>
<p>				- the blob to insert was longer than its column INLINE value</p>
<p>				- the table contained a large number of blobs that were longer than about 8 database pages (blobs with blob index)</p>
<p>				- the columns containing these blobs were created with a blob index (default)</p>
<p>				- large parts of the table were not in cache</p>
<p>				This has been fixed.</p>
<p>				To work around the problem the blob indexes can be dropped by running the following statement for all long varchar or binary columns with blobs longer than 8 pages:</p>
<p>				alter table &lt;table-name&gt; alter &lt;columns-name&gt; no index</p>
<p>				To fix the problem in existing databases rebuild the database or drop and recreate the blob index by running ALTER TABLE. This must be done with a fixed version of the server and only on table columns with above conditions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732156">732156</a></td>
<td>Validating a database on a server with concurrent activity could have resulted in failed assertions, or a server crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732247">732247</a></td>
<td>In rare timing dependent cases, if the primary server was stopped, the mirror server could have failed to take over as the new primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732338">732338</a></td>
<td>Feature selection/de-selection switches for the setup.exe command-line are now as follows:</p>
<p>				Switch: Feature:</p>
<p>				SERVER64 SQL Anywhere Server (64-bit)</p>
<p>				CLIENT64 SQL Anywhere Client (64-bit)</p>
<p>				SERVER32 SQL Anywhere Server (32-bit)</p>
<p>				CLIENT32 SQL Anywhere Client (32-bit)</p>
<p>				MOBILE SQL Anywhere for Windows Mobile</p>
<p>				UL UltraLite</p>
<p>				ML64 MobiLink (64-bit)</p>
<p>				ML32 MobiLink (32-bit)</p>
<p>				SR64 SQL Remote (64-bit)</p>
<p>				SR32 SQL Remote (32-bit)</p>
<p>				AT64 Administration Tools (64-bit)</p>
<p>				AT32 Administration Tools (32-bit)</p>
<p>				SM64 SQL Anywhere Monitor (64-bit)</p>
<p>				SM32 SQL Anywhere Monitor (32-bit)</p>
<p>				RS64 Relay Server (64-bit)</p>
<p>				SAMPLES Samples</p>
<p>				FIPS FIPS-approved Strong Encryption</p>
<p>				CAC CAC Authentication</p>
<p>				HA High Availability</p>
<p>				IM In-Memory Mode</p>
<p>				SON Read-only scale-out</p>
<p>				Server and Client features are now separately selectable in both 64-bit and 32-bit installs. The following features have been removed: ECC Strong Encryption, QAnywhere, and Relay Server (32-bit).</p>
<p>				See also the Comments section of the following DocCommentXchange page: http://dcx.sybase.com/index.html#sa160/en/dbprogramming/using-silent-install-deploy.html*d5e50990</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732453">732453</a></td>
<td>If an application made a Java External Environment call to a Java method that made server side requests, then the Java External Environment may have hung when the Java method created or prepared a large number of server-side statements but did not explicitly close statements that were no longer needed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732565">732565</a></td>
<td>MSI installs generated using the Deployment wizard would have always contained the same upgradecode property. This was causing the behavior that installing a newer version of SQL Anywhere would cause the older version to be uninstalled. This has been fixed by changing the upgradecode property to a distinct code for each major revision of SQL Anywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732583">732583</a></td>
<td>The system procedure sp_parse_json() would not have accepted quoted strings containing the characters �,:{}�. This has been fixed, these characters are now accepted.</p>
<p>				Note that SQLAnywhere does not permit the characters 慬� or 慮� inside identifiers, and so it follows that these will not be accepted in JSON quoted strings.</p>
<p>				Also, sp_parse_json() would have accepted bare pairs that were not in a row. This has been fixed to match with JSON standards.</p>
<p>				For example, the following would not have given an error, but is now no longer accepted:</p>
<p>				call sp_parse_json(&#39;tvar&#39;,&#39;a:b&#39;);</p>
<p>				The FOR JSON clause would have escaped the forward slash character (�/�) in double quoted text. This has been fixed and forward slashes will no longer be escaped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732584">732584</a></td>
<td>When editing a binary table value in either the Interactive SQL utility, or Sybase Central, an assertion error would have been reported if the existing value was not null. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732594">732594</a></td>
<td>The &quot;Plan Viewer&quot; menu item could have been incorrectly disabled if there had not yet been a connection to a database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732615">732615</a></td>
<td>On 64-bit systems, the feature selection option for the 32-bit server feature would not have installed the feature when set to 1 (i.e., SERVER32=1). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732617">732617</a></td>
<td>It was not possible to cancel statements which contained a brace character ( { or } ), even if the brace was in a comment. This has been fixed so that such statements can now be canceled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732727">732727</a></td>
<td>Under rare circumstances, executing a stored procedure call could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732730">732730</a></td>
<td>Under some circumstances, the array concatenation operator could have failed to evaluate correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732731">732731</a></td>
<td>Issuing a CALL PROCEDURE statement from a client where the procedure accepted a ROW or ARRAY argument, but did not have one in its result set, could have failed, either with SQLCODE -1599 (Invalid use of collection type), or (on ODBC with smart describing enabled), by disconnecting the client. This has been fixed.</p>
<p>				A workaround is to put the procedure in the FROM clause of a SELECT statement, rather than call it immediately.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732736">732736</a></td>
<td>If the StopDatabase or StopDatabaseCopy parameter was unconditionally set to 0, and user connections existed at the time of task invocation, the database or database copy would have stopped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732743">732743</a></td>
<td>Original description for Engineering case 706876:</p>
<p>				A Microsoft Data Link Error could have occurred with newer versions of Microsoft software when using the SQL Anywhere OLE DB provider. When the Test Connection button was clicked, the following message would have been displayed when the error occurred:</p>
<p>				Test connection failed because not all properties can be set.</p>
<p>				Window Handle (BAD VALUE)</p>
<p>				Continue with test connection? </p>
<p>				[Yes] [No]</p>
<p>				The message was informational only and Yes can be clicked. If the credentials and other connection information were correct, the connection succeeded. This problem has been fixed. Instead of returning a NULL window handle to the Microsoft software, the OLE DB Window Handle property is now marked as unsupported, which removes the warning message.</p>
<p>				===</p>
<p>				The solution to this problem was incorrect. Some applications require support for the Window Handle property and terminate if not supported (e.g., ROWSETVIEWER application). </p>
<p>				The problem has been corrected. The Window Handle property value was improperly described as 32-bit in a 64-bit application.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732745">732745</a></td>
<td>If a SELECT statement with an INTO clause contained a variable in the select list, then the temporary table was created with a not-nullable or nullable column definition depending on the value of the variable. This has been fixed. The column definition will now always be nullable in this context.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732853">732853</a></td>
<td>Attempting to create a Mobilink project using Sybase Central on a 64-bit platform could in some cases have caused Sybase Central to crash. This problem was most noticeable on Solaris and Mac platforms. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732857">732857</a></td>
<td>The samonitor.bat and run_migrator.cmd files may not have been updated by a support package. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732943">732943</a></td>
<td>Various batch and jdp* files may not have been updated by a support package. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732957">732957</a></td>
<td>One of the Relay Server Outbound Enabler&#39;s debug messages (-v 4) &quot;Successfully retrieved relay servers peer list..&quot; was logged before the RSOE tried to read the list. Thus it was misleading and could have lead to an incorrect diagnosis. This fix is simply to re-word the message to &quot;Successfully posted peer list request..&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732958">732958</a></td>
<td>The existing affinity flag in the Relay Server Record has been extended to carry a value of 憍� when the Relay Server told the client to expire the affinity cookie. This can be useful for troubleshooting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732959">732959</a></td>
<td>A pinpointed status page may have mistakenly report that the server was not found when IAS-RS-SERVER was not the last parameter in the URL query. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR732975">732975</a></td>
<td>The Apache Quick Setup script contained some bash specific syntax that caused errors when run on Linux systems running Ubuntu. Ubuntu uses dash, not bash, as the default shell interpreter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733096">733096</a></td>
<td>OData filters running against SQL Anywhere databases, using startswith(), substringof() and indexof(), with long search strings would have returned nothing. To correct this, search strings are now restricted to 254 bytes for SQL Anywhere databases. If longer strings are supplied, searches will only use the first 254 bytes. This restriction does not apply to OData queries against ASE databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733155">733155</a></td>
<td>During silent installs of a SQL Anywhere Monitor SP, the Migration tool抯 progress window was being displayed. This has been fixed so that the progress window is no longer displayed during a silent install.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733171">733171</a></td>
<td>The Relay Server provided no option to inject the X-Original-URL header. This has been fixed by injecting the header whenever the original request didn抰 contain such a header. The injected header value is URL-encoded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733174">733174</a></td>
<td>When the test window in the MobiLink plug-in is opened, it first deploys the synchronization model to the consolidated database and to a newly created remote database. In the past, changes were made directly to the databases to prepare for synchronization. This behavior is now changed so that SQL files are generated containing the changes to be made. The SQL files are then automatically applied to the databases. This is consistent with the way deployment is handled when the deployment wizard is used. </p>
<p>				This should result in no user visible change in behavior, but it will ensure that going forward behavior seen when testing a synchronization model in the test window is consistent with that seen when the model is actually deployed using the deployment wizard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733180">733180</a></td>
<td>In the MobiLink plug-in, the popup menu for a synchronization model now contains a new item, 揇uplicate�. This item creates a copy of the synchronization model in the same project. The name the user provides is used for the name of the copy, as well as the script version and publication name values of the new synchronization model. This feature is useful, when there is a working synchronization system and a copy of it is required as a starting place for making the next version of the system.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733181">733181</a></td>
<td>When executing a statement with a parallel execution strategy, it was possible for the statement to fail to complete with an error such as the following:</p>
<p>				All threads are blocked [-307] [&#39;40W06&#39;]</p>
<p>				This problem was more likely to occur with a UNION query where multiple branches could use parallel execution. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733306">733306</a></td>
<td>The server would have returned the error &quot;Correlation name ... not found&quot; for a query when the following conditions were true:</p>
<p>				- the query contained a proxy table and a nested query block with an outer reference</p>
<p>				- the nested query block used a view with a non-flattable select statement</p>
<p>				- the outer reference in the nested query block could have been pushed into the select statement of the view</p>
<p>				For example, in the following query T1 is a proxy and would have returned the error &quot;Correlation name &#39;V0&#39; not found&quot;.</p>
<p>				create view V1 as select 2 as col1 union select 1;</p>
<p>				select ( select col1 from V1 where col1 = V0.c21 ) as D from T2 V0, T1;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733309">733309</a></td>
<td>If an UltraLite application placed a cursor on a row and then moved to before the first row and then back to that row again, the row may have been skipped the second time if the row was updated while the cursor was positioned before the first row. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733313">733313</a></td>
<td>The mirror partner server in a mirroring setup may have failed to take over immediately as primary, and instead restarted, when the primary mirrored database became unavailable but the server was still running. This could have happened when the primary mirror server was shutting down, or if the 揝TOP DATABASE� statement has been used on the primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733438">733438</a></td>
<td>The OData Producer could not access metadata of a SQL Anywhere table (and therefore not do any operations on it) when it, as a result of the user connecting, could only view a subset of the columns.</p>
<p>				For example, the table ColumnPerm is defined below as owned by dba and user httpAuthUser3 is granted select on only the id and v1 columns</p>
<p>				CREATE TABLE dba.ColumnPerm(</p>
<p>				id INTEGER NOT NULL DEFAULT AUTOINCREMENT,</p>
<p>				v1 VARCHAR(128) NOT NULL,</p>
<p>				v2 VARCHAR(128) NOT NULL,</p>
<p>				PRIMARY KEY( id ) )</p>
<p>				go</p>
<p>				GRANT SELECT( id, v1 ) ON dba.ColumnPerm to httpAuthUser3</p>
<p>				go</p>
<p>				This has been fixed. When an OData Producer connects using httpAuthUser3 (in the example above), it will see meta data for table ColumnPerm with columns id and v1 (but not v2).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733443">733443</a></td>
<td>Building the PHP external environment using phpize, or by integrating into the PHP source code, would have failed. On version 16, it will fail to find libdblib at the configure stage. On both versions, it will fail to produce a useable PHP module. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733469">733469</a></td>
<td>The automatic text completer used in the Interactive SQL utility could have behaved incorrectly in a CREATE TRIGGER statement. The following have been fixed:</p>
<p>				- When suggesting SQL statements, &quot;CREATE TRIGGER&quot; could have appeared in the list of suggestions twice.</p>
<p>				- When writing a CREATE TRIGGER statement, the text completer would have suggested only &quot;CREATE TRIGGER&quot; statements rather than keywords that matched what was typed so far.</p>
<p>				- Only SQL keywords and owner names were suggested. Now, table names are also suggested.</p>
<p>				Issues related to other types of CREATE statements have been fixed:</p>
<p>				- CREATE ROLES and CREATE LDAP SERVER statements were never suggested. They are now suggested where appropriate.</p>
<p>				- If the second token in a CREATE statement was misspelled the completer would have suggested only statements which started with the keyword CREATE. Pressing Enter would then have replaced the entire statement text with one of the CREATE statements, which was seldom the user&#39;s intent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733471">733471</a></td>
<td>The Outbound Enabler was performing unnecessary operations when an internal restart was caused by an up-channel failure. This change eliminates the unnecessary operations, so recovery time, and clarity in logged operations, are improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733583">733583</a></td>
<td>The MobiLink Agent for central administration of remote databases could have executed a given task ID concurrently if the task was running on a schedule and also was server-initiated. This has been fixed. Although tasks may run concurrently in general, only one instance of a given task ID should be executing at any given time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733645">733645</a></td>
<td>The Precision and Scale attributes for Edm.Decimal properties in the metadata document may have incorrectly displayed values outside of the allowed range for Edm.Decimals if the underlying DECIMAL or NUMERIC column used a precision greater than 58, or a scale greater than 29 (the maximums as defined in the OData spec). This has been fixed.</p>
<p>				Note that this is only an issue in the metadata document itself. The actual values for Edm.Decimal properties are enforced to be within the allowed range as defined in the OData spec.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733726">733726</a></td>
<td>If an application using the SQL Anywhere JDBC Driver failed to explicitly close all open connections before attempting to exit, then there was a chance the Java VM would have crashed. This was most noticeable on Unix platforms. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733902">733902</a></td>
<td>The ADO.NET provider for .NET 4.0 was requiring assemblies from .NET 4.5 and would not run properly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733905">733905</a></td>
<td>Attempting to export a result set which contained character data to a Microsoft Access database would have failed with a message saying that &#39;there is no data type in the destination database that corresponds to &quot;char&quot;.&#39; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733912">733912</a></td>
<td>The File Hiding utility (dbfhide) would have crashed if an input file was larger than 65528 (64k-8) bytes. This has been fixed so that an error is now displayed if the file is too large.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733915">733915</a></td>
<td>When installing sub-components in silent mode, for example with:</p>
<p>				setup -silent � -install sqlany64,sqlanyclnt32</p>
<p>				the installer may have given an error like:</p>
<p>				The following option names are invalid or are not exposed by the registration key provided:</p>
<p>				sqlanyclnt32</p>
<p>				sqlany64</p>
<p>				Another symptom of the same problem could be seen using the -list_packages switch, for example:</p>
<p>				setup � -list_packages</p>
<p>				would have output garbled messages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733922">733922</a></td>
<td>When run on Unix systems, the uninstaller always returned an error code of 1. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR733923">733923</a></td>
<td>The Additional Connection Parameters on the Advanced page of the ODBC configuration dialog is used to specify rarely used connection parameters that do not appear on other pages of the wizard. The problem was that once a parameter was added in this page, it could not have been removed again. The value of the parameter could have been modified, but could only be deleted by editing it directly in the registry or by recreating the datasource. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734038">734038</a></td>
<td>The database property TimeWithoutClientConnection has been added.</p>
<p>				The description for this database property is:</p>
<p>				Returns the elapsed time in seconds since a CmdSeq or TDS client connection to the database existed. If there has not been a CmdSeq or TDS connection since the database started then the time since the database started is returned. If one or more CmdSeq or TDS connections are currently connected, 0 is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734042">734042</a></td>
<td>Query plans containing a HashGroupBy operator could have under-performed in some cases. This was only possible when there were a large number of groups (~10,000 or more) and where the data types of the aggregate functions included strings, bit vectors, numerics, or other BLOBs. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734049">734049</a></td>
<td>If the trigger definition resulting from ALTER TRIGGER statement execution conflicted with an existing trigger, the original trigger could have been deleted, and a wrong error returned. This has been fixed.</p>
<p>				This change also introduces a change in the algorithm used to decide the order of firing triggers when an ORDER clause is not specified, or multiple triggers with the same order and combination of events were created. For example, this may change the order in which triggers created with 揢PDATE ORDER 2�, 揢PDATE, DELETE ORDER 2� and 揢PDATE OF &lt;col&gt; ORDER 2� are fired. Note that documentation explicitly recommends specifying different ORDER values for triggers with the same event. If your database contains such sets of triggers, and the order of firing is important, please alter the triggers to reorder them accordingly.</p>
<p>				In general, both UPDATE ORDER 1 and UPDATE OF &lt;col&gt; ORDER 1 triggers will fire before any UPDATE � ORDER 2 triggers are fired. A unique ordering between UPDATE and UPDATE OF &lt;col&gt; triggers is still recommended.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734068">734068</a></td>
<td>A MobiLink Server with the integrated Relay Server Outbound Enabler could have crashed on shutdown. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734077">734077</a></td>
<td>Synchronizations with large downloads could have been slowed by up to the liveness timeout when using HTTP, if a network interruption occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734158">734158</a></td>
<td>Executing a batch or stored procedure that contained the ALTER DATABASE UPGRADE statement would very likely have crashed the server. This problem has now been fixed. Note that executing ALTER DATABASE UPGRADE within a batch or stored procedure is not recommended when using SQL Anywhere 16 and up, since the database will automatically be shut down once the upgrade completes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734160">734160</a></td>
<td>Attempting to perform a cloud UCI would have failed on hosts that had a large number of IPv4 and IPv6 addresses. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734192">734192</a></td>
<td>scc_repository database unable to be started on VM</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734216">734216</a></td>
<td>If a previously recorded profiling session was opened, the database connection IDs for synchronizations displayed in Synchronization properties, or the Details Table, would have be incorrect. The values saved in the database though would have been correct. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734315">734315</a></td>
<td>In some cases, the Relay Server Outbound Enabler could have failed to startup without giving a specific startup error, but rather a general initialization error. This had been seen specifically in the integrated RSOE case. This has now been fixed in order to better help resolve startup issues.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734471">734471</a></td>
<td>For queries with LIKE expressions of the form 揷 LIKE &lt;pattern&gt;�, where column c is a numeric data type, the UltraLite runtime would have given a SQLE_CONVERSION_ERROR during query execution if column c contained data whose string length when converted to a string was longer than the domain size of the numeric type. For example, if c is of type INTEGER and a row in table t contained the integer 12345, then the query SELECT c FROM t WHERE c LIKE �1%� would have caused a SQLE_CONVERSION_ERROR because the length of the string �12345� is greater than 4, the domain size of the INTEGER data type. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734486">734486</a></td>
<td>If the computer on which a server is running was improperly configured, it was possible for property(慣cpipAddresses�), property(慔ttpAddresses�), or property(慔ttpsAddresses�) to return a string with multiple consecutive or trailing semicolon characters, eg. �1.2.3.4;1.2.3.5;;1.2.3.6;;;1.2.3.7�. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734566">734566</a></td>
<td>It was possible for the ConvertCloudPartnerToServer task to be reported as cancelled when the task actually ran successfully. This has been fixed. The status of the ConvertCloudPartnerToServer task should now be accurately reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734580">734580</a></td>
<td>The Schedules tab for an event could have shown out-of-date information after a schedule was modified, for example, via its property sheet. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734589">734589</a></td>
<td>In a mirroring configuration, it was possible for the primary mirror server to restart sooner than expected when its partner was converted to a copy node. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734591">734591</a></td>
<td>When using the Foreign Key Wizard to create a foreign key, and choosing to add one or more columns to the foreign table for a foreign key that allowed nulls, the foreign key would actually have prohibited nulls if the foreign table was empty. This has been fixed.</p>
<p>				In addition, the Foreign Key wizard did not display the SQL to create the columns on the last page of the wizard. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734626">734626</a></td>
<td>Attempting to switch between Design, Debug or Application Profiling modes while editing a row in the Data tab for a table or view, would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734839">734839</a></td>
<td>In rare circumstances, a MobiLink client using HTTP would have ignored bytes sent down by the MobiLink server during a download and requested that the MobiLink server resend them. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734841">734841</a></td>
<td>The Relay Server component may have silently missed error messages with old versions of the language resource. This has been fixed by adding a generic error message indicating the resource library is too old.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734960">734960</a></td>
<td>Updating a column, or a set of columns, that contained exactly the same value and had an index defined, could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR734989">734989</a></td>
<td>In a version 12 or later database, attempting to create a Synchronization Subscription by dragging a publication and dropping it on a MobiLink user (or vice versa), or copying a publication and pasting it to a MobiLink user (or vice versa), would have caused Sybase Central to report an error while attempting to create the subscription. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735005">735005</a></td>
<td>If the temporary directory used by the server (specified by one of the SATMP, TMP, TMPDIR, or TEMP environment variables) was longer than about 48 characters (differs by specific platform), clients would not have been able to connect to servers over shared memory, they would simply fail to find the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735124">735124</a></td>
<td>Calling the Entity Framework function CurrentDateTimeOffset would have resulted in a &#39;procedure not found&#39; server error. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735130">735130</a></td>
<td>Using the Entity Framework in an ASP.NET MVC application could have caused a NullRferenceException. The provider was not checking if the Type.FullName was null before calling the method Type.FullName.StartsWith. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735151">735151</a></td>
<td>Attempting to revoke all object privileges on a given table or view, from a given user or role, could have resulted in a 損ermission denied� error, even when the user did in fact have permission to revoke the granted privileges. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735216">735216</a></td>
<td>In rare situations, queries containing a Merge Join appearing below another Merge Join may have failed assertion 106104: &quot;Field unexpected during compilation&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735226">735226</a></td>
<td>In rare situations in a high availability mirroring setup, it was possible for the primary mirror server to hang while doing a commit if the connection to the partner server was lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735254">735254</a></td>
<td>Selecting View -&gt; Refresh Folder or View -&gt; Refresh All while viewing object privileges would have caused Sybase Central to crash if a row was selected in the object privilege editor. This has been fixed.</p>
<p>				Note that the problem did not occur if instead the F5 key was used to perform the refresh.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735267">735267</a></td>
<td>When using Snapshot isolation, a statement-level or transaction-level snapshot may remain active while other transactions completed. Previously, the time to close the snapshot was proportional to O(N^2) for N transactions that completed with the snapshot open. With one hundred thousand transactions, this could have taken over a minute to close a single snapshot. With one million transactions, this could have taken over 100 days to close a single snapshot. During this time, other transactions were not allowed to start or stop. The server would have appeared to be fully busy on a single core.</p>
<p>				This performance has been improved; for one hundred thousand transactions, the new algorithm completes in 13 milliseconds (compared to 80205 milliseconds previously).</p>
<p>				Further, it was possible for the server to crash with specific access plans relating to viewing snapshot meta-data. This has also been fixed.</p>
<p>				A best practice is to ensure that the number of transactions tracked by the server is minimized; for example, by keeping the length of transaction snapshots short (commit as soon as possible). For statement-level snapshots, the snapshot is closed when the statement is closed. For cursors opened WITH HOLD (for example, using ODBC), the snapshot will not be closed when a COMMIT or ROLLBACK is performed; it is delayed until the statement is closed. Best practice recommends closing these cursors promptly. The sa_snapshots() procedure can be used to monitor active snapshots and sa_transactions() monitors transactions being tracked due to snapshots.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735343">735343</a></td>
<td>The MobiLink server now supports consolidated databases running on Sybase IQ 16.0 servers. For the recommended ODBC drivers for Windows and Linux, please visit the following link: </p>
<p>				http://www.sybase.com/detail?id=1011880 </p>
<p>				The Row Level Versioning (RLV) feature introduced in Sybase IQ 16.0 has removed the 搒ingle-writer� limitation. Therefore the IQ 16.0 server now allows multiple connections modifying a RLV enabled table concurrently. Based on testing, the upload would be ten times faster for synchronizations with RLV enabled tables than with RLV disabled tables. Therefore, in order to get better upload performance, all sync tables are recommended to be RLV enabled. However, if there is any table that cannot be RLV enabled, for instance a sync table that contains BLOBs and/or foreign keys, the upload phase must be serialized. This requirement can be achieved, if the begin_upload connection script is written to include or to use the following SQL statement:</p>
<p>				LOCK TABLE table_name IN WRITE MODE WAIT time_string</p>
<p>				where table_name is the name of a table that is defined on the IQ store and the time_string gives the maximum time period to lock the table. The table can be as simple as the one defined as:</p>
<p>				create table coordinate_upload ( c1 int )</p>
<p>				It is not required to have any data. If any of the other MobiLink server transactions is required to modify any IQ tables, all of these transactions must be serialized as well. The same logic mentioned above can be used. This technique is considered more efficient than retries on each of the transactions by the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735344">735344</a></td>
<td>After performing a calibration using the ALTER DATABASE CALIBRATE statement, it was possible for queries to execute slowly on the database due to an error in the recorded calibration data. This problem was most likely to happen with faster computers. This problem has been fixed. A workaround is to use 揂LTER DATABASE RESTORE DEFAULT CALIBRATION� to remove the incorrect calibration data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735358">735358</a></td>
<td>In rare situations in a high availability setup with TLS connections, it was possible for the primary server to hang while doing a commit. This is the same fix that was done for Engineering case 674782, but now available on Unix platforms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735367">735367</a></td>
<td>If an application used variables in the USING clause of a remote server, or the AT clause of a proxy table or procedure, then the server would have leaked memory. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735368">735368</a></td>
<td>Selecting and deleting multiple table privileges could have crashed Sybase Central if there were corresponding column privileges. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735400">735400</a></td>
<td>Revoking all column privileges for a given table/grantee/grantor combination could have caused another table privilege editor to be opened in an inconsistent state. Specifically, the editor could have initially shown a row that was marked for deletion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735452">735452</a></td>
<td>In a mirroring setup, if a copy node lost its connection to its parent, and MaxDisconnectedTime had been specified, it was possible for the server to noticeably exceed the time before shutting down. This has been fixed. The shutdown time should now be much closer to the MaxDisconnectedTime if the copy node is unable to re-establish a connection to its parent, alternate parent, or the primary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735454">735454</a></td>
<td>When reading an event trace (.etd) file, the Event Trace Data File Management utility (dbmanageetd) did not correctly decode the event severity associated with events in the log. The severity reported by dbmanageetd was incorrect and filtering by severity level (-fl) would not work correctly. This problem has been fixed.</p>
<p>				Note that the files themselves are correct and only a new dbmanageetd is required to interpret them correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735595">735595</a></td>
<td>Attempting to connect to a database running on a version 7 or earlier server (for the purposes of unloading/reloading the database into a new version 16 database), would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735598">735598</a></td>
<td>When using the wizard to create a table, and selecting a dbspace that the user didn抰 have permissions on, the error wasn抰 reported until attempting to save the table, at which point the dbspace couldn&#39;t be changed because the wizard had already closed. This has been fixed. Now the error is reported immediately when choosing the dbspace in the wizard.</p>
<p>				Similarly, when using a wizard to create a materialized view, index or text index, if a dbspace was selected that the user didn抰 have permissions on, then the error wasn抰 reported until the Finish button was clicked. This has been fixed. Now the error is reported immediately when choosing the dbspace n the wizard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735599">735599</a></td>
<td>When duplicating a materialized view, any change to which dbspace it was located would have been ignored. Now the choice of dbspace is no longer given, and the copied materialized view is created in the same dbspace as the original.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735605">735605</a></td>
<td>Opening the Text Configuration Objects folder or the Create Text Index wizard could have resulted in the error 揚ermission denied: you do not have permission to change remarks for &quot;default_char&quot;�. This would only have occurred if the default text configuration objects (SYS.default_char and SYS.default_nchar) didn抰 already exist in the database and the user did not have permission to set a comment on a text configuration object. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735654">735654</a></td>
<td>The SAConnection.Open method would have thrown an exception when opening a version 10.0 or 11.0 database connection using the version 12.0 or 16.0 provider. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735807">735807</a></td>
<td>Closing a pooled connection could have been blocked when the request was from a multi-threaded application. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735815">735815</a></td>
<td>Calling the SAConnection.Close method would have thrown an exception when closing pooled version 10.0 and version 11.0 database connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_103.htm#CR735922">735922</a></td>
<td>In the test window of the MobiLink Plug-in, the client log page would have continued to report 揝ynchronization in progress�, even when the MobiLink server did not start correctly during a synchronization and the synchronization had failed and was complete. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR735923">735923</a></td>
<td>Calling SAConnection.Open would have thrown an exception when attempting to open the &#39;utility_db&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR735992">735992</a></td>
<td>When computing the Multiplicity of an Association, the OData Producer was not taking unique indexes into account. For example, the tables T8 and T8b are functionally identical but generate different multiplicity:</p>
<p>				CREATE TABLE T8 (</p>
<p>				pk1 INTEGER NOT NULL,</p>
<p>				c1 INTEGER,</p>
<p>				PRIMARY KEY (pk1),</p>
<p>				FOREIGN KEY F_KEY_T8 (c1) REFERENCES T7 MATCH UNIQUE SIMPLE );</p>
<p>				CREATE TABLE T8b (</p>
<p>				pk1 INTEGER NOT NULL,</p>
<p>				c1 INTEGER NULL,</p>
<p>				PRIMARY KEY (pk1));</p>
<p>				CREATE UNIQUE INDEX T8bIndex on T8b(c1);</p>
<p>				ALTER TABLE T8b ADD CONSTRAINT</p>
<p>				F_KEY_T8b FOREIGN KEY (c1) </p>
<p>				REFERENCES T7 (pk1) </p>
<p>				Results in</p>
<p>				&lt;Association Name=&quot;F_KEY_T8&quot;&gt;</p>
<p>				&lt;End Role=&quot;T8_Dependent&quot; Type=&quot;SAPSybaseOData.T8&quot; Multiplicity=&quot;0..1&quot;/&gt;</p>
<p>				&lt;End Role=&quot;T7_Principal&quot; Type=&quot;SAPSybaseOData.T7&quot; Multiplicity=&quot;0..1&quot;/&gt;</p>
<p>				&lt;/Association&gt;</p>
<p>				&lt;Association Name=&quot;F_KEY_T8b&quot;&gt;</p>
<p>				&lt;End Role=&quot;T8b_Dependent&quot; Type=&quot;SAPSybaseOData.T8b&quot; Multiplicity=&quot;*&quot;/&gt;</p>
<p>				&lt;End Role=&quot;T7_Principal&quot; Type=&quot;SAPSybaseOData.T7&quot; Multiplicity=&quot;0..1&quot;/&gt;</p>
<p>				&lt;/Association&gt;</p>
<p>				This has been fixed. Table T8b above now returns associations identical to those of table T8.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR735993">735993</a></td>
<td>The test window of the MobiLink Plug-in was not modal. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR735998">735998</a></td>
<td>The Relay Server Outbound Enabler may have restarted unnecessarily in rare situation, resulting in repeated RSE3003 error for a duration as long as the OE-RS liveness timeout period. One example situation would have been when a Relay Server was removed from the farm and then being added back after. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736004">736004</a></td>
<td>Some window functions, including MIN and MAX, could have given incorrect results if called over a column with data type TIMESTAMP WITH TIME ZONE. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736024">736024</a></td>
<td>The renew_overlapped_cookie property was introduced for the Relay Server to work with clients without cookie isolation support. The default value of renew_overlapped_cookie in version 16.0.0 was set to &#39;yes&#39; for maximum compatibility. The same feature was added to version 12.0.1, however the default value was &#39;no&#39;. The 12.0.1 decision has been revised and this feature is now on by default in 12.0.1 as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736044">736044</a></td>
<td>The MobiLink server may have crashed when the MobiLink client connects via HTTPS via a proxy. Although the likelihood of the crash was extremely low, it has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736239">736239</a></td>
<td>When the MobiLink client held on to old affinity information across Outbound Enabler restarts, and used it on new requests, the Outbound Enabler would have failed the relay (reported as OEE1051 error on version 16). The Outbound Enabler has been fixed to allow the traffic to go through instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736249">736249</a></td>
<td>Numeric and Decimal columns and parameters are transferred to and from the client in packed-decimal format when the column or parameter is bound as SQL_NUMERIC (SQL_C_NUMERIC). APIs like ODBC, OLE DB, and JDBC must convert between the packed-decimal number and a 128-bit binary number for these cases. Improvements have been made to the conversion routines for Windows 64-bit platforms.</p>
<p>				Conversions from packed-decimal to 128-bit binary for numbers in the range 10^20 to 10^38 are now approximately 67 times faster.</p>
<p>				Conversions from 128-bit binary to packed-decimal for numbers in the range 10^20 to 10^38 are now approximately 2.7 times faster.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736255">736255</a></td>
<td>A SQLE_COLUMN_NOT_STREAMABLE error would be erroneously reported when importing in the Interactive SQL utlity. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736264">736264</a></td>
<td>A number of improvements and bug fixes have been made to the SQL Anywhere OLE DB provider.</p>
<p>				1 - When a column cannot be fetched in its entirety, the status is now set to DBSTATUS_S_TRUNCATED instead of DBSTATUS_S_OK, and length to actual length, not amount fetched.</p>
<p>				2 - IRowsetUpdate methods InsertRow/Update now inserts rows in manual commit mode (i.e., commit in batches), rather than autocommit each row.</p>
<p>				3 - Improved support for DBTYPE_DBTIME2/DBTYPE_DBTIMESTAMPOFFSET data types.</p>
<p>				4 - In order to identify columns that are DEFAULT AUTOINCREMENT, IColumnsInfo::GetColumnInfo now sets the DBCOLUMNFLAGS_ISROWVER bit for those columns. Microsoft defines a column with this attribute as a non-writable versioning column (such as the SQL Server TIMESTAMP) which suits SQL Server. Note, however, that SQL Anywhere supports versioning columns that are writable.</p>
<p>				5 - Corrected failure to describe money/smallmoney as DBTYPE_CY (currency type). Also corrected OLE DB schema queries DBSCHEMA_COLUMNS, DBSCHEMA_PROCEDURE_COLUMNS, and DBSCHEMA_PROCEDURE_PARAMETERS results for DBTYPE_CY.</p>
<p>				6 - Corrections were made to the schema rowset information (DBSCHEMA_COLUMNS, DBSCHEMA_PROCEDURE_COLUMNS, and DBSCHEMA_PROCEDURE_PARAMETERS) for datetime/time precision and scale.</p>
<p>				7 - Corrections were made to 搑un-time� information for datetime/time precision and scale.</p>
<p>				8 - Added &quot;DATETIME&quot; to the list of DBPARAMBINDINFO.pwszDataSourceType types for SetParameterInfo (SQL Server uses this undocumented type name). Type names are usually of the form 揇BTYPE_xxx� (for example, 揇BTYPE_I4�, 揇BTYPE_STR�, 揇BTYPE_DBTIMESTAMP�).</p>
<p>				9 - Adjusted GetConversionSize values for TIME, DATETIME, DATETIMEOFFSET data types (only 6 fractional digits are supported by SQL Anywhere).</p>
<p>				10 - A memory leak caused by failure to free rows whose refcount is 0 in Update() was fixed.</p>
<p>				11- A possible memory corruption in calls to IRowsetChange::SetData, IRowsetChange::InsertRow, ISequentialStream::Write, and IRowChange::SetColumns was fixed.</p>
<p>				12 - A performance problem when DataConvert was used when no conversion is required was fixed.</p>
<p>				13 - A performance issue with SQL_NUMERIC columns, with values comprised of 19 to 37 decimal digits, was fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736356">736356</a></td>
<td>Sybase Central could have crashed after changing the definition of a view or materialized view. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736526">736526</a></td>
<td>Under very rare conditions, reading indexes containing compressed data could have lead to a server crash with an 慽nvalid memory read� error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736527">736527</a></td>
<td>The OLE DB provider accepts two cbBookmark values, one which is the 搒hort� DBBMK_FIRST/LAST value, and another with the value &quot;4&quot; or &quot;8&quot; depending on the bitness of the provider. The 64-bit provider was flagging &quot;4&quot; was an illegal value for cbBookmark, and the 32-bit provider flagged &quot;8&quot; was an illegal value for cbBookmark. The OLE DB provider should have accepted both values as the length of a bookmark value and fetched the appropriate 32-bit/64-bit bookmark value from memory. This problem affected IRowsetLocate::GetRowsAt, IRowsetLocate::Compare, IRowsetLocate::GetRowsByBookmark, IRowsetLocate::Hash, and IRowsetScroll::GetApproximatePosition, and IRowsetExactScroll::GetExactPosition. It has now been fixed so that both 32-bit and 64-bit providers now support 4-byte and 8-byte bookmark values, in addition to 1-byte values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736544">736544</a></td>
<td>When creating or altering a table, CHECK constraints were allowed that were not valid. These failed when evaluating the CHECK at execution time.</p>
<p>				- in TABLE checks, unknown column/variable names were permitted if they started with &#39;@&#39;</p>
<p>				- aggregate and window functions were permitted</p>
<p>				- ROWID() and NUMBER() were permitted</p>
<p>				- host variable references were permitted</p>
<p>				This has been fixed. These now give appropriate errors when the CHECK is created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736546">736546</a></td>
<td>The LIKE predicate allows an optional ESCAPE argument which must be a single character. In some cases where the string and pattern could be optimized, an error was not returned for ESCAPE arguments that did not consist of a single character. </p>
<p>				For example:</p>
<p>				select if &#39;abc&#39; like &#39;abc&#39; escape &#39;99&#39; then 1 else 0 endif</p>
<p>				should have failed with an error, but did not. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736547">736547</a></td>
<td>Under rare circumstances, evaluation of a query with complex expressions could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736562">736562</a></td>
<td>When combining values, where one was an array and the other was a NULL literal value, it was possible for the result to fail with an unexpected error.</p>
<p>				For example:</p>
<p>				create or replace variable var_strarray array(3) of long varchar;</p>
<p>				select cardinality( coalesce( var_strarray, null ) );</p>
<p>				would have failed with the error:</p>
<p>				Could not execute statement.</p>
<p>				Expression is not an array</p>
<p>				SQLCODE=-1666,</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736570">736570</a></td>
<td>Statements that included invalid Transact-SQL outer join predicates, did not give appropriate errors.</p>
<p>				For example, the following gave an 搃nvalid expression� error:</p>
<p>				select count(*) c</p>
<p>				having c *= 0</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736571">736571</a></td>
<td>Certain SQL constructs containing selectivity estimates could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736572">736572</a></td>
<td>When converting a value of Row type with a field of Array type, an inappropriate error may have been given.</p>
<p>				For example:</p>
<p>				create or replace variable var_row row(col_intarray array(3) of int);</p>
<p>				set var_row = var_row;</p>
<p>				set var_row = var_row;</p>
<p>				The second SET statement would have returned the error:</p>
<p>				Expression is not an array</p>
<p>				SQLCODE=-1666, ODBC 3 State=&quot;HY000&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736573">736573</a></td>
<td>When executing statements that included invalid uses of the NUMBER function, the statement could have failed with a non-fatal assertion failure.</p>
<p>				For example:</p>
<p>				select COUNT( DISTINCT NUMBER(*) )</p>
<p>				from sys.dummy</p>
<p>				would have failed with the following error:</p>
<p>				*** ERROR *** Assertion failed: 106103 (16.0.0.1320)[asatest] NUMBER(*) is not associated</p>
<p>				This has been fixed so that an appropriate error is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736574">736574</a></td>
<td>When using a statement that contained a ROWID() expression in a search condition, it was possible for the statement to fail with a nonfatal assertion failure.</p>
<p>				For example:</p>
<p>				select first 1</p>
<p>				from T_Exprs</p>
<p>				where col_str &gt;= CAST( ROWID(T_Exprs) AS LONG VARCHAR )</p>
<p>				order by &#39;a&#39;</p>
<p>				would have failed with the following errort:</p>
<p>				Could not execute statement.</p>
<p>				Run time SQL error -- *** ERROR *** Assertion failed: 106105</p>
<p>				Unexpected expression type dfe_FieldRID while compiling</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736575">736575</a></td>
<td>In some cases, a statement that contained a dotted reference was misinterpreted with the dotted reference interpreted as a row access.</p>
<p>				For example:</p>
<p>				select (dt.ci).nosuchcolumn</p>
<p>				from (</p>
<p>				select cast(row(25 as val1,27) as row(val1 int, ci int)) ci</p>
<p>				) dt</p>
<p>				would have incorrectly returned DT.ci.ci instead of an error. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736680">736680</a></td>
<td>It was possible for a mirror server to have hung for a few seconds or indefinitely, have had connection timeouts, failed, or have had poor performance. It was more likely to see these problems when running multiple mirrored databases on a single server that had automatic multiprogramming level enabled (the default) and there were nearly as many mirrored databases as cores.</p>
<p>				This has been fixed by ensuring some long running background tasks do not affect the number of tasks controlled by the multiprogramming level. A workaround is to ensure that the minimum multiprogramming level is at least three times the number of mirrored databases.</p>
<p>				Two new server properties were added by this change:</p>
<p>				1) property( &#39;CurrentMirrorBackgroundWorkers&#39; ): The number of workers currently being used for database mirroring background tasks. These workers are separate from those controlled by the multiprogramming level.</p>
<p>				2) property( &#39;MaxMirrorBackgroundWorkers&#39; ): The highest number of workers used for database mirroring background tasks since the server started. These workers are separate from those controlled by the multiprogramming level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736683">736683</a></td>
<td>An UltraLite database could have unnecessarily grown by a small amount during each synchronization, or as a result of executing publication DDL. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736687">736687</a></td>
<td>Queries with predicates of the form &#39;( T.X = &lt;constant expression&gt; OR T.X = &lt;constant expression&gt; OR ...)&#39; may have had unoptimal plans if the &lt;constant expression&gt; was a variable, host variable, or aliased constant. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736716">736716</a></td>
<td>By design, the Relay Server Outbound Enabler treats client disconnect as an immediate cancel of the request if it is happening at the middle of the HTTP request/response cycle. Therefore, uploads could have been truncated by the immediate cancelling, if the client disconnect arrived while the upload was queued up. This has now been changed so to make sure all request bytes that came before the disconnect are not cancelled by the client disconnect. Also, the RSOE no longer views this situation as an abnormal behavior of an HTTP client.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736717">736717</a></td>
<td>The Relay Server may have reported that the shared memory manager was in an unhealthy state when under heavy load. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736786">736786</a></td>
<td>Two ALTER TABLE ... DROP DEFAULT statements, executed consecutively on the columns that where created in an online fashion, would have cause the server fail assertion 200610 (Attempting to normalize a non-continued row ). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736791">736791</a></td>
<td>In the case where users turn on HTTP backend status detection in the Relay Server Outbound Enabler (by providing a url_status parameter in the -cs optiobn), it was possible for the RSOE to fail to identify if the backend was available or not. This has now been fixed by making the RSOE more tolerant to space characters when parsing the HTTP response provided by the backend server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736806">736806</a></td>
<td>Under rare circumstances, evaluation of very complex expressions could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR736823">736823</a></td>
<td>If a database was created with the -a or -af dbinit command line options set, or with the &quot;ACCENT RESPECT&quot; or &quot;ACCENT FRENCH&quot; clause on a CREATE DATABASE STATEMENT, and if the database CHAR charset was not a UCA collation, then catalog lookups for tables, procedures, etc, could have been slow because the server would not have taken advantage of the available indexes on the catalog tables. This problem has been fixed.</p>
<p>				As a side effect of the fix, dbunload now generates dbinit command lines or CREATE DATABASE statements that use fully explicit collation specifications such as &quot;1252LATIN1(CaseSensitivity=Respect)&quot; and it no longer puts -a, -af, ACCENT RESPECT, and ACCENT FRENCH on dbinit command lines or CREATE DATABASE statements. By using fully explicit collation specifications, dbunload also no longer puts &quot;-c&quot; or &quot;CASE RESPECT/IGNORE&quot; on dbinit command lines or CREATE DATABASE statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737027">737027</a></td>
<td>If in a query block, two equal correlation names referred to exactly the same view or base table, then the server could have merged them and performed a query rewrite. The server incorrectly rewrote a query if one of the two table expressions aliased with the same correlation name was a derived table, a procedure name, an openstring expression, a contains expression, or a DML derived table. As a result, the server may have returned an incorrect result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737036">737036</a></td>
<td>Executing a REORGANIZE TABLE statement could have worked sub-optimally and may have left some pages with single rows on them. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737159">737159</a></td>
<td>If two separate connections had set the PRIORITY connection option, and the database shut down unexpectedly so as to required automatic recovery, it was possible for the database to fail the automatic recovery with assertion 100904:</p>
<p>				Failed to redo a database operation (id=#, page_no=0x#, offset=0x###)</p>
<p>				Error: Permission denied: you do not have permission to set the option &#39;PRIORITY&#39;</p>
<p>				This has been fixed. An upgraded database server will now be able to recover the database successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737184">737184</a></td>
<td>It was possible for a mirror server running multiple mirrored databases to have hung, have had connection timeouts, failed, or have had poor performance. These problems were more likely as the number of mirrored databases running on the server increased. This has been fixed. As a workaround, the -gn value could be increased.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737186">737186</a></td>
<td>In rare, timing dependent cases, executing the &quot;ALTER DATABASE SET PARTNER FAILOVER&quot; statement could have hung. If this occurred, the server itself was not hung, but the server on which the statement was executed would not accept connections to the database being failed over. This has been fixed. As a workaround, the server that was running as the primary could be stopped, or the database that was running as the primary could be stopped by connecting to the utility database and executing the STOP DATABASE statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737191">737191</a></td>
<td>The MSSqlToSA.xml mapping file is used by the SQL Server Import and Export Data wizard (DTSWizard). This mapping file has now been improved in the following ways:</p>
<p>				- other SQL Server clients (SQLOLEDB;SQLNCLI;SQLNCLI10) are now included in the list of possible data sources, in addition to the existing SQL Server .NET provider.</p>
<p>				- &quot;datetimeoffset&quot; is now mapped to &quot;timestamp with time zone&quot; instead of &quot;datetimeoffset&quot;, because the Microsoft DTSWizard would append &quot;(0)&quot; to &quot;datetimeoffset&quot; and that would cause a syntax error when the CREATE TABLE statement was executed against a SQL Anywhere / Sybase IQ server. For example, &quot;CREATE TABLE Temp (dtocol datetimeoffset(0) )&quot; is invalid syntax.</p>
<p>				- 揻loat� is now mapped to 揹ouble�, instead of float. This causes the Microsoft DTSWizard to use &quot;real&quot; for small precision float types, and &quot;double&quot; for large precision float types. When 揻loat� was used, Microsoft did not add the precision specification (for example, float_col float(53)).</p>
<p>				These improvements apply to the use of the SQL Anywhere .NET or the SQL Anywhere OLE DB providers, in combination with a number SQL Server providers, in the migration of tables from SQL Server to SQL Anywhere/Sybase IQ.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737271">737271</a></td>
<td>If two separate connections had set the PRIORITY connection option, and the database shut down unexpectedly and so required automatic recovery when restarted, it was possible for the database to fail the automatic recovery with assertion 100904:</p>
<p>				Failed to redo a database operation (id=#, page_no=0x#, offset=0x###)</p>
<p>				Error: Permission denied: you do not have permission to set the option &#39;PRIORITY&#39;</p>
<p>				This has been fixed. An upgraded database server will now be able to recover the database successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737416">737416</a></td>
<td>When the OData Producer tried to create an entity against a SQL Anywhere proxy table, the server would have shutdown and the Producer would have failed. This has been fixed. However, the OData Producer for SQL Anywhere will not allow the use of default values in the proxy tables primary key. Clients must specify all primary key properties explicitly when creating new entities.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737497">737497</a></td>
<td>Previously, the CREATE INDEX statement for local temporary tables on read-only nodes had been disallowed. This has been changed, and now local temporary tables are the only tables where index creation is allowed on the read-only databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737533">737533</a></td>
<td>When a secured feature exception occurred, and Sybase Central prompted for a secure feature key, it asked for an authorization key only. This has been corrected so that it now prompts for both the key name and its authorization key.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737598">737598</a></td>
<td>The &quot;Run New Task&quot; wizard (and some others) display a list of task parameters with a component for each parameter. For those parameters which had a default value, the wizard provided an editable combobox for the value. The dropdown contained one item: &quot;(Default)&quot;. There were a number of usability issues with the combobox which made it difficult to enter values when the box was open. This has been corrected so that now, the combobox has been replaced by a text field. When the text field is empty, the word &quot;(Default)&quot; appears in the field.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737612">737612</a></td>
<td>If an application closed the connection to the database used to synchronize before the synchronization completed, the database could have become corrupt. One possible symptom of this corruption was the runtime sending two different progress values for the same publication during synchronization. This has been fixed. Now the runtime will report SQLE_SYNCHRONIZATION_IN_PROGRESS in the close connection call and immediate abort the application. When the database is restarted, recovery will be done to rollback any uncommitted operations that occurred during synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737614">737614</a></td>
<td>If a native thread in the Java VM launched by the MobiLink Server printed to stdout, it was redirected to the MobiLink log file. If the MobiLink Server was ready to accept synchronizations when the Java VM attempted to print to stdout, it was possible that the Java VM could have crashed after printing the string, which would also have crashed the MobiLink Server. A work around for this issue is to start the Java VM with the -XtraceFile option, which will redirect the Java VM stdout to a file instead of the MobiLink log file. The issue has now been fixed, and the way the Java VM stdout strings are written to the MobiLink Log has changed. Instead of being posted as errors to the log with error number -10133, the output is now informational and has &quot;(JVM): &quot; at the start of the string to identify the source of the string.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737801">737801</a></td>
<td>If a single user on a computer ran a number of copies of the Interactive SQL utility (dbisql), it was possible for its options to have been reset to their defaults. For this to have occurred, one dbisql process would have to have be starting, when another dbisql process was shutting down. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737813">737813</a></td>
<td>In the Options window, if the &quot;Editor&quot; category and the &quot;Tabs&quot; tab were selected, then the Options window was resized, the controls in the tab could have easily resized themselves in a way that made it very difficult to see the values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737917">737917</a></td>
<td>Some queries that contained an invalid GROUP BY or HAVING clause could have failed to give an error. Specific constructs that were not correctly validated include the following:</p>
<p>				- x IS OF TYPE(�)</p>
<p>				- x IS [NOT] DISTINCT FROM y</p>
<p>				- TSEQUAL( x, y )</p>
<p>				- array_expression[[ index_expression ]]</p>
<p>				- (row_type_expression).field_name</p>
<p>				- Subqueries predicates or subselects that contained joins with outer references in the ON condition</p>
<p>				In certain cases, these invalid queries failed with a non-fatal assertion failure. In specific circumstances, it was also possible for the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR737992">737992</a></td>
<td>The error message that was displayed when help could not be opened for the Console or Interactive SQL utilities was always in English. Now the message can be localized. Also, the title for the message window was incorrectly empty, this has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738030">738030</a></td>
<td>The Event Trace Data File Management utility (dbmanageetd) did not display the full contents of an ETD file if logging to the file was interrupted (e.g. because of a process crash) and then resumed on a new process. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738031">738031</a></td>
<td>Using dbstop -c &quot;...;NODETYPE=...&quot; could have failed. Note that it is not recommended that NODETYPE is used with dbstop since it may not be clear which server will be stopped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738036">738036</a></td>
<td>Support for callbacks has been added to version 3 of the SQL Anywhere C API. The following function is now available when _SACAPI_VERSION is defined as 3.</p>
<p>				void sqlany_register_callback( a_sqlany_connection * sqlany_conn, a_sqlany_callback_type index, SQLANY_CALLBACK_PARM callback );</p>
<p>				This function can be used to register callback functions.</p>
<p>				Parameters</p>
<p>				sqlany_conn A connection object with a connection established using sqlany_connect().</p>
<p>				index Any of the following:</p>
<p>				CALLBACK_START</p>
<p>				CALLBACK_WAIT</p>
<p>				CALLBACK_FINISH</p>
<p>				CALLBACK_MESSAGE</p>
<p>				CALLBACK_CONN_DROPPED</p>
<p>				CALLBACK_DEBUG_MESSAGE</p>
<p>				CALLBACK_VALIDATE_FILE_TRANSFER</p>
<p>				callback Address of the callback routine.</p>
<p>				The index parameter values correspond to the index parameter values of the Embedded SQL/DBLIB db_register_a_callback function (http://dcx.sybase.com/goto?page=sa160/en/dbprogramming/db-register-a-callback-esql.html).</p>
<p>				typedef enum a_sqlany_callback_type {</p>
<p>				CALLBACK_START = 0,</p>
<p>				CALLBACK_WAIT,</p>
<p>				CALLBACK_FINISH,</p>
<p>				CALLBACK_MESSAGE = 7,</p>
<p>				CALLBACK_CONN_DROPPED,</p>
<p>				CALLBACK_DEBUG_MESSAGE,</p>
<p>				CALLBACK_VALIDATE_FILE_TRANSFER</p>
<p>				} a_sqlany_callback_type;</p>
<p>				Callback routines are typed &quot;SQLANY_CALLBACK&quot;. This corresponds to the Embedded SQL/DBLIB SQL_CALLBACK type.</p>
<p>				The a_sqlany_message_type enum is used with message callbacks (index=CALLBACK_MESSAGE).</p>
<p>				typedef enum a_sqlany_message_type {</p>
<p>				MESSAGE_TYPE_INFO = 0,</p>
<p>				MESSAGE_TYPE_WARNING,</p>
<p>				MESSAGE_TYPE_ACTION,</p>
<p>				MESSAGE_TYPE_STATUS,</p>
<p>				MESSAGE_TYPE_PROGRESS</p>
<p>				} a_sqlany_message_type;</p>
<p>				Here is an example from SDK\dbcapi\examples\callback.cpp.</p>
<p>				api.sqlany_register_callback( sqlany_conn, CALLBACK_MESSAGE, (SQLANY_CALLBACK_PARM)messages );</p>
<p>				void SQLANY_CALLBACK messages( void *sqlca, a_sqlany_message_type msg_type, int sqlcode, unsigned short length, char *msg )</p>
<p>				{</p>
<p>				size_t mlen;</p>
<p>				char mbuffer[80];</p>
<p>				switch( msg_type )</p>
<p>				{</p>
<p>				case MESSAGE_TYPE_INFO:</p>
<p>				printf( &quot;The message type was INFO.\n&quot; );</p>
<p>				break;</p>
<p>				case MESSAGE_TYPE_WARNING:</p>
<p>				printf( &quot;The message type was WARNING.\n&quot; );</p>
<p>				break;</p>
<p>				case MESSAGE_TYPE_ACTION:</p>
<p>				printf( &quot;The message type was ACTION.\n&quot; );</p>
<p>				break;</p>
<p>				case MESSAGE_TYPE_STATUS:</p>
<p>				printf( &quot;The message type was STATUS.\n&quot; );</p>
<p>				break;</p>
<p>				case MESSAGE_TYPE_PROGRESS:</p>
<p>				printf( &quot;The message type was PROGRESS.\n&quot; );</p>
<p>				break;</p>
<p>				}</p>
<p>				mlen = __min( length, sizeof(mbuffer) );</p>
<p>				strncpy( mbuffer, msg, mlen );</p>
<p>				mbuffer[mlen] = &#39;\0&#39;;</p>
<p>				printf( &quot;Message was \&quot;%s\&quot; SQLCODE(%d)\n&quot;, mbuffer, sqlcode );</p>
<p>				}</p>
<p>				A complete callback example with two callback routines can be found in SDK\dbcapi\examples\callback.cpp.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738143">738143</a></td>
<td>In rare circumstances, the ADO.NET Provider could have thrown an AccessViolationException when reading a DataSet. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738144">738144</a></td>
<td>In rare circumstances, calling SAConnection could have throw a NullReferenceException when the ConnectionString property was accessed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738147">738147</a></td>
<td>When creating entities in an entity set representing a proxy table in a SQL Anywhere database, without fully specifying key properties, the OData Producer would have given an inaccurate error message (30125 - &quot;One or more properties could not be reset to a default value.&quot;). This has been fixed. Now, if any of the missing key properties does not have a default value, a 30124 error (&quot;Cannot set a non-nullable property to null.&quot;)will now be returned. Otherwise if the missing key properties have default values, a 30154 error (&quot;Key properties with default values must be explicitly set in this entity set.&quot;) will now be returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738148">738148</a></td>
<td>A number of issues with the 揅hange Server Version&quot; wizard have been fixed:</p>
<p>				1. On the &quot;Restart Servers&quot; page, if &quot;Create a task...&quot; was selected, options for methods selected in the &quot;Run&quot; box should have been shown, but were not. For example, if &quot;Run&quot; was set to &quot;On a certain date&quot;, the date should have been selectable.</p>
<p>				2. If the version of system servers was changed, and the cloud had high availability turned on, a message that the cloud needed to be restarted was displayed three times.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738201">738201</a></td>
<td>When attempting a download resumption through the Relay Server to a MobiLink server farm, the client could have connected to the wrong MobiLink server, resulting in the download resumption attempt failing. The client weren抰 persisting the HTTP cookies that the Relay Server requires to match it back up with the correct MobiLink server. The cookies are now stored with the rest of the restart state.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738246">738246</a></td>
<td>The system trace events, SYS_RLL_StartProcedure, SYS_RLL_StopProcedure, SYS_RLL_StartTrigger, and SYS_RLL_StopTrigger, only logged one letter in the procedure_name field of the trace event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738247">738247</a></td>
<td>Trace event session names and trace event names were being treated as case sensitive. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738260">738260</a></td>
<td>A read-only scale-out system, or an asynchronous mirror, could have done more disk writes and more communication with children than necessary, which could have resulted in somewhat slower performance. The unnecessary writes and communication were most likely when many small transactions per second were being committed on the primary or root server. This has been fixed so that the unnecessary writes and communication have been eliminated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738276">738276</a></td>
<td>For specific types of views and procedures using a WINDOW specification, it was possible for the server to crash when processing a query referencing the view or procedure. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738279">738279</a></td>
<td>A SQL Anywhere OnDemand Edition cloud can be upgraded to an SAP Sybase SQL Anywhere, on-demand edition cloud provided:</p>
<p>				1) the cloud infrastructure has been upgraded to 1.0.0.3881 (see note 1 below),</p>
<p>				2) all the servers in the cloud are running 12.0.1.3873 (see note 2 below), and</p>
<p>				3) the cloud secure feature key is at least 6 characters in length (see note 3 below).</p>
<p>				If the SQL Anywhere OnDemand Edition cloud meets the above criteria, then the cloud can be upgraded by performing the following steps:</p>
<p>				1) using the cloud console, choose 揈vents &amp; Tasks-&gt;Run new task� and run the PrepareForUpgrade task (see note 4 below).</p>
<p>				2) once the PrepareForUpgrade task completes successfully, use the 揢pgrade cloud infrastructure� button to download and upgrade to the new SAP Sybase SQL Anywhere, on-demand edition cloud.</p>
<p>				Note 1:</p>
<p>				If the SQL Anywhere OnDemand Edition cloud infrastructure is below version 1.0.0.3881, then use the 揢pgrade cloud infrastructure� button to upgrade the cloud to version 1.0.0.3881.</p>
<p>				Note 2:</p>
<p>				If all the servers in the cloud are not running version 12.0.1.3783, then they can be upgraded to run the latest server version by:</p>
<p>				1) Using the 揅loud Software-&gt;Change server version� wizard, change the server version of all servers that are not running the latest server version to 12.0.1.3873. Make sure you select 揇o not restart any servers.� Note that if you have both Windows and Linux hosts in your cloud, then you will need to perform this step twice, once for each platform.</p>
<p>				2) Stop the cloud.</p>
<p>				3) Restart the 1.0.0.3881 cloud agent on each of the cloud HA hosts. This will also start your cloud HA servers.</p>
<p>				4) Start all of the other servers in your cloud.</p>
<p>				5) Verify that all of the servers in the cloud are now running 12.0.1.3783.</p>
<p>				Note 3:</p>
<p>				If the cloud secure feature key is less than 6 characters in length, then use 揈vents &amp; Tasks-&gt;Run new task� to run the AlterCloud task. The AlterCloud task will allow you to change the cloud secure feature key.</p>
<p>				Note 4:</p>
<p>				The PrepareForUpgrade task takes two parameters: license_key and patch_file. The license_key parameter is not the license key that was provided with your SQL Anywhere OnDemand Edition software. Instead a new license key will be provided by SAP for the new SAP Sybase SQL Anywhere, on-demand edition cloud. The patch file will also be provided by SAP and you will be required to put this patch file locally on the host where the cloud primary server is running. The patch_file parameter is the full path to the patch file on the primary host.</p>
<p>				When the PrepareForUpgrade task runs, it will verify that the license key is correct, the secure feature key is at least 6 characters in length and all of the servers in the cloud are running 12.0.1.3873. If any of these criteria is not met, then the PrepareForUpgrade task will exit with an appropriate message. It should be noted that these messages will be returned in English only.</p>
<p>				Once all of the above criteria are met, the PrepareForUpgrade task will run and will modify the cloud as follows:</p>
<p>				1) All software earlier than version 1.0.0.3881-12.0.1.3873 will be removed from all hosts in the cloud. This includes both installed software and hosted software.</p>
<p>				2) A unique public key/private key pair will be generated and stored on each host in the cloud.</p>
<p>				3) The patch file provided by SAP will be applied to allow the cloud to download the new SAP Sybase SQL Anywhere, on-demand edition software.</p>
<p>				Please note that the PrepareForUpgrade task can take a significant amount of time to run depending on the number of hosts in the cloud. Once the PrepareForUpgrade task completes, the cloud is ready to be upgraded to the new SAP Sybase SQL Anywhere, on-demand edition software. The cloud at this point is perfectly usable and databases can continue to be added, dropped, backed up etc. You should not, however, attempt to add new hosts after performing the PrepareForUpgrade task and before completing the 揢pgrade cloud infrastructure� process. If you do add hosts between the time that you run PrepareForUpgrade and before you complete the 揢pgrade cloud infrastructure�, then you will be required to run PrepareForUpgrade a second time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738302">738302</a></td>
<td>When comparing databases, Sybase Central could have run out of memory if the source for a procedure, function, view, materialized view or trigger contained a large comment within the 揅REATE &lt;object-type&gt; &lt;object-owner&gt;.&lt;object-name&gt;� prefix. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738312">738312</a></td>
<td>When comparing databases, an error could have occurred if either database contained any of the following:</p>
<p>				1. A table column with a default value containing nested parentheses</p>
<p>				2. A table column with a computed value spanning multiple lines and/or containing nested parentheses</p>
<p>				3. A table or column check constraint definition spanning multiple lines and/or containing nested parentheses</p>
<p>				These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738381">738381</a></td>
<td>Changes have been made to improve performance for connection pooling.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738400">738400</a></td>
<td>In the 12.0.1 installer for Mac OS X, there is an information panel at the end of the install that tells users that they must build the UltraLite library from the source files included in the install prior to developing on iPhone or building the samples. This panel was erroneously excluded in the 16.0 GA installer, though it still applies, and has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738415">738415</a></td>
<td>Use of connection pooling could have caused web applications to hang. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738510">738510</a></td>
<td>The xp_getenv() built-in function returns long binary. In nearly all cases, since environment variables are typically used to store strings, users would need to cast the long binary value to a char or nchar type, depending on their needs. Optionally, csconvert() would need to be used in order to ensure the strings are in the correct character set, but this is not particularly easy to use. This has been corrected. In databases created after this fix, xp_getenv() will return a long nvarchar. This allows strings to be used easily, while minimizing string mangling due to character set conversion. The environment variable value is obtained in UTF-16 from Windows. On Unix platforms, both the variable name and the variable value are assumed to be in the OS charset, and are then converted to the NCHAR charset for the database. If this is not the case, some variable name lookups may fail or values may be mangled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738517">738517</a></td>
<td>On Unix platforms, using any of the email functions, while running a version 12.0 database on a version 16.0 server, would have failed with an error: 揇ynamic library 憀ibdbextf.so� could not be loaded.� This has now been fixed.</p>
<p>				There are two workarounds:</p>
<p>				- ensure that libdbtasks12_r.so.1 is in the library load path (e.g. copy it into the SA 16.0 installation next to libdbextf.so.1)</p>
<p>				- upgrade the database to version 16.0</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738617">738617</a></td>
<td>In exceptional rare circumstances, the server may have crashed while trying to use the string value of a column DEFAULT or COMPUTE definition. This may have occurred after resetting the column&#39;s DEFAULT or COMPUTE definition using ALTER TABLE. Restarting</p>
<p>				the database after executing the ALTER TABLE prevents the problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738659">738659</a></td>
<td>In some cases, a profiling session opened from the profiling database may have had some changed information, compared to when the profiling session was collected. Some data may not have been saved correctly in the database, especially if the same MobiLink Profiler instance was used for multiple sessions and non-initial sessions were ended while synchronizations were active, or while recent data was still being saved in the profiling database. Even if the data in the profiling database was correct, the &quot;in progress&quot; and &quot;active&quot; sync properties would always have been false when a saved session was opened. These problems have now been fixed.</p>
<p>				To mitigate these problems, restart the Profiler between sessions, start sessions when no synchronizations are in progress, and end sessions after all synchronizations have completed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738679">738679</a></td>
<td>If a database created with a version 12 server was run on a version 16 server (without being upgraded), inserting data into a compressed column would have succeed and the data could be correctly retrieved, but if the same database was later moved back to a version 12 server, the data may not have been retrieved correctly. This problem would also have been seen if views, procedures, events, triggers, comments on objects, text configuration objects, or java JAR files were added or altered in the version 12 database while running on the version 16 server (since those system tables contain compressed columns). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738691">738691</a></td>
<td>Using the dbmanageetd.exe command line option 杅regex prevented any results from being filtered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738707">738707</a></td>
<td>When a mirror or copy node was transitioning between pulling log pages and having the primary or parent pushing log pages, it was possible for the mirror or copy node to have failed assertions 112011 or 100927. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738756">738756</a></td>
<td>If an operation on the database had executed trigger actions that included UPDATE PUBLICATION commands, and that operation was also implicitly rolled back because of an error in the trigger (such as a referential integrity violation), then it was possible for SQL Remote (dbremote) to have sent operations that would have been rolled back in the database. The Log Translation utility (dbtran) may have also shown operations as committed in the translated transaction log that were rolled back. This issue has now been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738779">738779</a></td>
<td>The UltraLite Runtime could have crashed when setting a blob parameter on a prepared statement if the statement was a query and there were more parameters than columns in the result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738782">738782</a></td>
<td>The integrated Relay Server Outbound Enabler (RSOE) library could have crashed the Mobilink server in the following cases:</p>
<p>				1- In an error case, such as a failure to send data to the backend</p>
<p>				2- In a timing sensitive situation, while the RSOE was sending data to the backend and receiving a notification from the RelayServer to disconnect a socket (due to client dropping the connection or aborting for any reason before completing a clean send/receive HTTP cycle).</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738786">738786</a></td>
<td>The integrated Relay Server Outbound Enabler (RSOE)could have missed processing a socket close event, leading to leaked memory. This problem was rare and random and only occurred in a time-sensitive scenario where the integrated RSOE was sending data to the backend server and received a notification from the Relay Server to close that particular socket connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738912">738912</a></td>
<td>In extremely rare cases, a copy node could have been partially connected to its parent indefinitely, and not write or apply log operations. In order for this to have occurred, a connection to its parent would need have been dropped shortly after it was established. The sa_mirror_server_status() system procedure would have reported the copy node as connected. This has been fixed.</p>
<p>				As workaround, restarting the copynode in this state would cause it to get and apply log operations from its parent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738955">738955</a></td>
<td>In rare timing dependent cases, when the primary server was shutdown, the mirror could have failed to take over as primary. In versions 11 and 12, both the primary and mirror could have both appeared to have hung for two minutes while the primary was shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738974">738974</a></td>
<td>The SQL Anywhere Python Database support (sqlanydb) does not work with python 3.3. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR738994">738994</a></td>
<td>If the mirror tried to take over as primary and failed, in rare cases it was possible for the database on the mirror to have become corrupted. The most likely case of this occurring involved the connection between the two partners being dropped for some reason, and then the mirror server or database being shut down while the mirror was in the middle of attempting to take over as primary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739081">739081</a></td>
<td>Inherited object privileges can now be viewed for any table, view, procedure, function, sequence generator, or dbspace via the 揚rivileges� tabs.</p>
<p>				Also, inherited object privileges can now be viewed for any user or role via the 揟able Privileges�, 揤iew Privileges�, 揚rocedure Privileges�, 揝equence Privileges�, and 揇bspace Privileges� tabs.</p>
<p>				In both cases, a new 揝how Inherited� check box has been added to the tabs. With the check box checked, the tabs show privileges that are inherited through role inheritance, in addition to privileges that are granted explicitly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739154">739154</a></td>
<td>In rare timing dependent cases, the primary could have restarted unnecessarily if the connection between the primary and mirror server was dropped about the same time that the mirror became synchronized. When the primary restarted, the database was stopped and restarted, causing all connections to have been dropped. This has been fixed so that the primary does not restart in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739171">739171</a></td>
<td>Sybase Central could have become unresponsive for a few moments when a stored procedure was saved, if the text completer was open. The problem occurred if the start of the ALTER PROCEDURE statement was modified (perhaps by removing the quotation marks from the owner or procedure name), then clicking the &quot;Save&quot; toolbar button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739173">739173</a></td>
<td>In the MobiLink Server Log File Viewer, on the &quot;Synchronizations&quot; panel, a single synchronization could have appeared a number of times in the &quot;Synchronizations&quot; table. This happened when the messages from the sync were interspersed with messages from &quot;&lt;Main&gt;&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739187">739187</a></td>
<td>If an application executed the STOP JAVA or STOP EXTERNAL ENVIRONMENT statement for a database scoped external environment (i.e java or clr), then the server and external environment resources associated with the connection would be correctly cleaned up, but the external environment executable would not have been shut down. This problem has been corrected and the executable will now shut down when the STOP JAVA or STOP EXTERNAL ENVIRONMENT CLR statement is explicitly executed and there are no other connections using the database scoped external environment.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739247">739247</a></td>
<td>When a new SAConnectionStringBuilder object was created and used by each SAConnection object in a loop, performance was slow. Performance has now been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739248">739248</a></td>
<td>CREATE TABLE allows the default for a column to reference a non-existing variable. The server does not validate the DEFAULT clause at creation time. Trying to do the same thing in ALTER TABLE, causes a server crash. This has been fixed, and the server now returns an appropriate error message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739269">739269</a></td>
<td>A procedural statement of the form &quot;IF [NOT] EXISTS( simple-subselect ) ...&quot; may have failed with a warning or an error. The warning &quot;The result returned is non-deterministic&quot; was returned if the subselect did not contain an ORDER BY clause. The error &quot;Cursor has not been declared&quot; was returned if the THEN clause, but not the ELSE clause, contained a SELECT statement that returned a result set, and the IF condition evaluated to &#39;false&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739349">739349</a></td>
<td>If an application executed a SQL SECURITY INVOKER JAVA stored procedure with an effective user id that required quoting or that was owned by a user id that required quoting, then the server would have failed the Java procedure execution with a syntax error. This problem has now been fixed.</p>
<p>				Note, a user id that requires quoting would be one that was either a keyword, or contained a dot (.) or some other unusual character. No other external environment is affected by this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739361">739361</a></td>
<td>An error could have occurred if the View &gt; By Remote ID option was selected when a profiling session was started. This has been fixed.</p>
<p>				A workaround is to use View &gt; Compact View instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739688">739688</a></td>
<td>If the SQL Anywhere OnDemand Edition cloud infrastructure is below version 1.0.0.3881, then use the 揢pgrade cloud infrastructure� button to upgrade the cloud to version 1.0.0.3881. Once the cloud infrastructure has been upgraded to 1.0.0.3881, then the cloud servers can be upgraded to 12.0.1.3783.</p>
<p>				To upgrade the cloud servers to 12.0.1.3783, follow the steps outlined below instead of following the original documented procedure:</p>
<p>				1) Using the 揅loud Software-&gt;Change server version� wizard, change the server version of all servers that are not running the latest server version to 12.0.1.3873. Make sure to select 揇o not restart any servers.� Note that if there are both Windows and Linux hosts in your cloud, then this step will need to performed twice, once for each platform.</p>
<p>				2) Stop the cloud.</p>
<p>				3) Restart the 1.0.0.3881 cloud agent on each of the cloud HA hosts. This will also start the cloud HA servers.</p>
<p>				4) Start all of the other servers in the cloud.</p>
<p>				5) Verify that all of the servers in the cloud are now running 12.0.1.3783.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739706">739706</a></td>
<td>If a server was started with a database that contained an invalid path to the transaction log file, the startup message and console log could have contained garbage characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739802">739802</a></td>
<td>When connected to an IQ database, or if your the Interactive SQL utility is configured to use only IQ, the following &quot;Help&quot; menu items have been disabled:</p>
<p>				Interactive SQL Help</p>
<p>				SQL Syntax</p>
<p>				Keyboard Shortcuts</p>
<p>				Also, on the &quot;Connect&quot; window, the &quot;Help&quot; button has been disabled if the type selected is &quot;SAP Sybase IQ&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739810">739810</a></td>
<td>During quick setup, users are prompted by the following question:</p>
<p>				Expect Afaria clients (y/N)?</p>
<p>				If the answer is yes, the expectation is that the quick setup script will configure IIS to turn off request buffering, due to the incompatibility between IIS and Afaria client regarding how the size of the entity body of the HTTP request was specified. The IIS7 version of the quick setup script was failing to turn off the buffering. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739834">739834</a></td>
<td>If a recipient list for an email sent using xp_sendmail contained leading, trailing, or duplicate semi-colons, the server could have crashed when sending the message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739835">739835</a></td>
<td>The body of email messages sent using xp_sendmail would have been truncated at 255 characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_104.htm#CR739928">739928</a></td>
<td>When the 64-bit version of the Information utility (dbinfo) was run on Mac OS X systems with the -u option, the values for the 揑ndex Pages�, �%used (index pages)� and 揚ercent of File� columns could have been very large positive or negative numbers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_105.htm#CR740130">740130</a></td>
<td>Under very rare circumstances, DML operations on a table with an immediate text index that used an external prefilter or termbreaker library, could have caused assertion failures or other issues with the database server. This problem has now been fixed.</td>
</tr>
</tbody>
</table>
<p>--EOF--</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">https://www.dbainfo.net/sap-asa-cr-number-7.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SAP SQL Anywhere的所有已知BUG列表（7）</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-10.htm" title="SAP PB Enterprise的所有已知BUG列表（10）">SAP PB Enterprise的所有已知BUG列表（10）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-9.htm" title="SAP PB Enterprise的所有已知BUG列表（9）">SAP PB Enterprise的所有已知BUG列表（9）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-8.htm" title="SAP PB Enterprise的所有已知BUG列表（8）">SAP PB Enterprise的所有已知BUG列表（8）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-7.htm" title="SAP PB Enterprise的所有已知BUG列表（7）">SAP PB Enterprise的所有已知BUG列表（7）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-6.htm" title="SAP PB Enterprise的所有已知BUG列表（6）">SAP PB Enterprise的所有已知BUG列表（6）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-5.htm" title="SAP PB Enterprise的所有已知BUG列表（5）">SAP PB Enterprise的所有已知BUG列表（5）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-4.htm" title="SAP PB Enterprise的所有已知BUG列表（4）">SAP PB Enterprise的所有已知BUG列表（4）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-3.htm" title="SAP PB Enterprise的所有已知BUG列表（3）">SAP PB Enterprise的所有已知BUG列表（3）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-2.htm" title="SAP PB Enterprise的所有已知BUG列表（2）">SAP PB Enterprise的所有已知BUG列表（2）</a> (1)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-1.htm" title="SAP PB Enterprise的所有已知BUG列表（1）">SAP PB Enterprise的所有已知BUG列表（1）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sap-asa-cr-number-7.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP SQL Anywhere的所有已知BUG列表（6）</title>
		<link>https://www.dbainfo.net/sap-asa-cr-number-6.htm</link>
		<comments>https://www.dbainfo.net/sap-asa-cr-number-6.htm#comments</comments>
		<pubDate>Sat, 07 Mar 2015 17:03:30 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[CR]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2856</guid>
		<description><![CDATA[随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。 只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。 考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。 在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。 需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。 以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！ 不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。 SQL Anywhere的所有已知BUG列表（1） SQL Anywhere的所有已知BUG列表（2） SQL Anywhere的所有已知BUG列表（3） SQL Anywhere的所有已知BUG列表（4） SQL Anywhere的所有已知BUG列表（5） SQL Anywhere的所有已知BUG列表（6） SQL Anywhere的所有已知BUG列表（7） SQL Anywhere的所有已知BUG列表（8） &#160; CR Number Description 612094 An incorrect response length may have been recorded [...]]]></description>
			<content:encoded><![CDATA[<p><base target="_blank" /></p>
<p>随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。<br />
	只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。<br />
	考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。<br />
	在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。<br />
	需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。<br />
	以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！<br />
	不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。</p>
<p><a href="https://www.dbainfo.net/sap-asa-cr-number-1.htm">SQL Anywhere的所有已知BUG列表（1）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-2.htm">SQL Anywhere的所有已知BUG列表（2）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-3.htm">SQL Anywhere的所有已知BUG列表（3）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SQL Anywhere的所有已知BUG列表（4）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SQL Anywhere的所有已知BUG列表（5）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SQL Anywhere的所有已知BUG列表（6）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SQL Anywhere的所有已知BUG列表（7）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SQL Anywhere的所有已知BUG列表（8）</a><br />
	&nbsp;</p>
<table align="left" border="1" cellpadding="0" cellspacing="0" style="table-layout: fixed; word-break:break-all; word-wrap: break-all;" width="100%">
<tbody>
<tr align="center">
<td width="11%">CR <br />
				Number</td>
<td>Description</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612094">612094</a></td>
<td>An incorrect response length may have been recorded in the SQLAnywhere HTTP log for a long lived HTTP connection, such as a pipelined connection wacorrect, subsequent response lengths were cumulative. The problem occurred when HTTP logging was enabled and the @L LogFormat specified the logging of the response length (default). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612128">612128</a></td>
<td>Clicking the &quot;GENERATE/INSERT statement&quot; menu item in the Results panel, when the row contained a long character column (e.g. more than 100K), the Interactive SQL utility could have taken a very long time to generate the statement. This has been corrected so thgat it now happens almost instantaneously.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612268">612268</a></td>
<td>While rare, a CREATE VIEW statement could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612269">612269</a></td>
<td>The SQL Anywhere HTTP log did not allow a format option to specify the logging of the client port used in an HTTP request. Both the client IP address and port were required to demarcate the use of a specific connection within the log when a client made several keep-alive HTTP connections. The LogFormat protocol option has been changes sp that it now supports the &quot;@J&quot; format-string code to specify logging of the client port. The following LogFormat is recommended to include the logging of the client port since this will be the default in future releases:</p>
<p>				@T - @W - @I:@J - @P - &quot;@M @U @V&quot; - @R - @L - @E</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612295">612295</a></td>
<td>Using the DBS connection parameter with a value that included quotes may have caused the connection fail. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612301">612301</a></td>
<td>If an error (such as &quot;disk full&quot;) was encountered while extending a dbspace, it was possible that the dbspace would be corrupted. Subsequent startups may have reported assertion failure 201129 (file is shorter than expected), or one of several other assertion failures. This problem has been fixed. </p>
<p>				Note that the problem did not affect growth of the transaction log.<span id="more-2856"></span></td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612409">612409</a></td>
<td>When connected to a multi-byte character set database, if an application attempted to create a proxy table to a remote table that had an underscore in its name, then there was a chance the server would fail the request with the error &quot;the table specification &#39;&lt;location-string&gt;&#39; identifies more than one remote table&quot;. This problem would only have occurred if the remote had multiple tables whose names differed only by the character in the underscore location. For example, if a remote had tables named tab_1 and tabx1, and if the application attempted to create a proxy table to map to tab_1, then the server would give the &quot;more than one remote table&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612462">612462</a></td>
<td>Queries that contained a subquery that was rewritten by semantic transformations to flatten subqueries, could have failed with the error &quot;Assertion failure 106104 (...) Field unexpected during compilation&quot;. This problem would only have occurred if the query block that was being flattened had a subquery in the SELECT list with outer references. This has now been fixed.</p>
<p>				Note, a potential workaround is to modify the query so that it is no longer suitable for the semantic transformation that flattens the query block.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612491">612491</a></td>
<td>When connected to an UltraLite databaseand trying to import table data from a database using the Import Wizard, a dialog would have been displayed asking to select a database name from an empty list of databases. The list of databases is no longer offered since the concept has no meaning when connected to an UltraLite database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612617">612617</a></td>
<td>If the row containing a particular unique value changed from one row to another, and then back again, snapshot transactions open before or during the updates might not return a row when expected, or return two copies of the expected row. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR612641">612641</a></td>
<td>The Deployment wizard would have failed to work properly on Windows Vista and Windows 7. The wizard would have claimed to complete successfully, but the resulting MSI was invalid. The wizard was attempting to create a temporary file in the Program Files directory, which is disallowed by Windows Vista and Windows 7. This has now been corrected. </p>
<p>				A workaround for this issue is to run the deployment wizard as an administrator.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613078">613078</a></td>
<td>Upgrading a database that did not have a userid named DBA would have failed, intentionally leaving the database in an unusable state. This has been fixed by removing unnecessary grants to the DBA user. A workaround is to create a DBA userid before upgrading and drop it after upgrading.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613079">613079</a></td>
<td>Applications using the version 6.x or 7.x ODBC driver or SQL Anywhere interface library (DBLib), would not have been able to connect to a version 12.x server. Connection attempts would have failed with the error &quot;Connection error: Found server but communication error occurred.&quot; The server has been fixed so that applications using these client libraries can now connect successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613261">613261</a></td>
<td>Executing a query like the following from SQL Server Management Studio (2005):</p>
<p>				select * from saoledblink..SYS.syscollation;</p>
<p>				would have failed with the error:</p>
<p>				Msg 7356, Level 16, State 1, Line 1</p>
<p>				The OLE DB provider &quot;SAOLEDB.11&quot; for linked server &quot;saoledblink&quot; supplied nconsistent metadata for a column. The column &quot;collation_order&quot; (compile-time ordinal 4) of object &quot;&quot;SYS&quot;.&quot;syscollation&quot;&quot; was reported to have a &quot;DBCOLUMNFLAGS_ISFIXEDLENGTH&quot; of 0 at compile time and 16 at run time.</p>
<p>				The problem occurred for BINARY(n) columns. The DBCOLUMNFLAGS_ISFIXEDLENGTH schema attribute was set true (0x10) at run time. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613299">613299</a></td>
<td>Queries involving indexes could return incorrect results, and using tools such as the Validate Database Wizard in Sybase Central, or the Validation utility, could have reported index corruption when there was in fact none. For this to have occurred, the index must not have been unique and there must be many consecutive rows with the same indexed value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613341">613341</a></td>
<td>If an application that was connected using jConnect or Open Client, queried the metadata of a long nvarchar, nvarchar, nchar, date or time column, then the metadata returned by the server would have been incorrect. This problem has now been resolved.</p>
<p>				Note, in addition to getting an updated server, an ALTER DATABASE UPGRADE must be execute on each database, to update the metadata for jConnect and Open Client applications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613425">613425</a></td>
<td>When running a non-upgraded version 10 or 11 database, the server could have crashed when a user was dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613426">613426</a></td>
<td>A change was made to improve the performance of Watcom SQL procedural language (stored procedures, batches, triggers and events).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613429">613429</a></td>
<td>An UltraLiteJ database with many committed transactions (more than the row maximum threshold) may have encountered a Null pointer exception during deletes and updates. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613436">613436</a></td>
<td>A client application running on Windows Vista or Windows 7, could have crashed just after disconnecting the last connection. Specifically, the crash could have occurred just after the client library DLL (such as the ODBC driver) was unloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613455">613455</a></td>
<td>The SQL Anywhere Update Service could have recommended the incorrect bitness of a Windows EBF. For example, the Update Service could have recommended both bitnesses of the 11.0.1 Maintenance Release to customers of 11.0.0; or, it may recommended a 64-bit EBF to customers running 32-bit Windows. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613637">613637</a></td>
<td>Unloading a version 11 database using the Unload utility (dbunload) such that dbunload used its internal unload/reload mechanism (i.e. -ii), could have then caused the Translation utility (dbtran) to crash when scanning the new database&#39;s transaction log for particular tables (command line option -it).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613638">613638</a></td>
<td>The default settings for the way results are displayed can now set. In the OEM.ini file, the following values in the &quot;[dbisql]&quot; section are now recognized: </p>
<p>				defaultShowResultsForAllStatements=false </p>
<p>				defaultShowMultipleResultSets=false </p>
<p>				These lines, if present, control the default behavior for displaying results. In the &quot;Options&quot; window, these options are displayed in the &quot;Results Processing&quot; box on the &quot;Results&quot; tab when &quot;SQL Anywhere&quot;, &quot;UltraLite&quot;, or &quot;Sybase IQ&quot; are selected. The default for both options is &quot;false&quot;. </p>
<p>				An optional prefix can be used to limit the effect to a specific database type. If no prefix is present, the directive applies to all database types. The prefixes are: </p>
<p>				SQLAnywhere. For SQL Anywhere </p>
<p>				Ultralite. For Ultralite </p>
<p>				SybaseIQ. For IQ </p>
<p>				For example, </p>
<p>				defaultShowResultsForAllStatements=true </p>
<p>				would change the default for all database types to show results for all statements, but </p>
<p>				SQLAnywhere.defaultShowResultsForAllStatements=true </p>
<p>				would change the default only for SQL Anywhere databases. The defaults for Ultralite and IQ would be unaffected. If a directive appears both with and without a prefix, the prefixed one has precendence for the given database type. </p>
<p>				These directives can be specified independently. If one is missing, its default value (false) is assumed. </p>
<p>				Notes: </p>
<p>				1. These lines control only the default values for the two preferences. The defaults are used only if no saved user perferences are found. The user preferences are saved each time DBISQL is run. </p>
<p>				2. &quot;defaultShowMultipleResultSets&quot; does not apply to UltraLite because UltraLite statements cannot return more than one result set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613642">613642</a></td>
<td>It was not possible to set an HTTP status that was not explicitly supported (or known) by the SQLAnywhere server. This has now been fixed. Any three digit status code with an optional colon (&#39;:&#39;) delimited text message may now be specified.</p>
<p>				Examples:</p>
<p>				CALL SA_SET_HTTP_HEADER( &#39;@HTTPSTATUS&#39;, &#39;999:User Code&#39;); // outputs status code with message: &#39;999 User Code&#39;</p>
<p>				CALL SA_SET_HTTP_HEADER( &#39;@HTTPSTATUS&#39;, &#39;999&#39;); // output status code only with no text message: &#39;999&#39;</p>
<p>				Limitations/Recommendations:</p>
<p>				- Status codes must be &gt;= 100 and &lt;= 999.</p>
<p>				- A user defined status text message is not translated into database character-set when logged (log protocol option).</p>
<p>				- It is recommended that user defined status messages are in English.</p>
<p>				HTTP status code/message additions:</p>
<p>				305 Use Proxy</p>
<p>				307 Temporary Redirect</p>
<p>				415 Unsupported Media Type</p>
<p>				416 Requested Range Not Satisfiable</p>
<p>				417 Expectation Failed</p>
<p>				505 HTTP Version Not Supported</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613669">613669</a></td>
<td>Corrections and additions have been made to some of the SQL Anywhere OLE DB schema rowsets.</p>
<p>				Changes to DBSCHEMA_PROVIDER_TYPES:</p>
<p>				Changed CHAR type so that IS_FIXEDLENGTH is now FALSE (0). </p>
<p>				Changed NCHAR type so that IS_FIXEDLENGTH is now FALSE (0).</p>
<p>				Changed NUMERIC type so that IS_FIXEDLENGTH is now TRUE (1).</p>
<p>				Changed DECIMAL type so that IS_FIXEDLENGTH is now TRUE (1).</p>
<p>				Changed LONG NVARCHAR type so that IS_LONG is now TRUE (1).</p>
<p>				As a result of these changes, &quot;compile time&quot; results will now agree with &quot;run time&quot; results (ref. MS Linked Servers).</p>
<p>				Support was added for ST_GEOMETRY and TIMESTAMP WITH TIME ZONE types.</p>
<p>				Changes to DBSCHEMA_COLUMNS:</p>
<p>				The COLUMN_FLAGS column of the OLE DB schema rowset has been corrected. </p>
<p>				The DBCOLUMNFLAGS_ISFIXEDLENGTH indicator is now set on for fixed length types (e.g., smallint, float, money).</p>
<p>				The DBCOLUMNFLAGS_ISLONG indicator is now set on for LONG types (e.g., LONG VARCHAR).</p>
<p>				Added support for ST_GEOMETRY and TIMESTAMP WITH TIME ZONE types.</p>
<p>				Changes to DBSCHEMA_PROCEDURE_COLUMNS:</p>
<p>				Added support for ST_GEOMETRY and TIMESTAMP WITH TIME ZONE types.</p>
<p>				Changes to DBSCHEMA_PROCEDURE_PARAMETERS:</p>
<p>				Added support for ST_GEOMETRY and TIMESTAMP WITH TIME ZONE types.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613672">613672</a></td>
<td>The server may have crashed during query optimization for a statement with subqueries which were flattened (i.e., transformed into joins). At least one of the subquery must have contained a DUMMY table and the main query block must have required a DISTINCT to be done. This has been fixed.</p>
<p>				An example:</p>
<p>				select * from</p>
<p>				product p</p>
<p>				where exists (select 30 as id from dummy, product p2 where p2.id-1 &gt; 30+p.id ) </p>
<p>				and p.id+1 = 301 and exists(select 1 from sales_order_items soi where soi.id &gt; p.id)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613816">613816</a></td>
<td>If an application connects using an older version of jConnect or Open Client, and subsequently fetches a Time or Timestamp value, then the server is required to round the fractional seconds portion of the Time/Timestamp value up to the nearest 1/300th of a second. For these older versions of jConnect or Open Client, the server would not always have properly rounded the fractional seconds portion up to the nearest 1/300th of a second. This problem has now been fixed.</p>
<p>				Note that newer versions of jConnect and Open Client support microsecond precision, so no rounding to 1/300th of second will occur if an application uses these newer versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613838">613838</a></td>
<td>When a row minimum threshold was specified that was too low (&lt; 200), UltraLiteJ would have chosen 200, and then checked the maximum threshold. If the maximum threshold was less than the (adjusted) minimum threshold, it would choose minimum+500. This has been corrected so that it now accepts a minimum row threshold of 100 and if the maximum is less than theminimum, the maximum is set to minimum + 50.</p>
<p>				Note that applications may be forced to use small threshold values if they have many transactions awaiting synchronization. This is fixed by synchronizing more frequently.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613984">613984</a></td>
<td>Rebuilding version 9 or earlier databases using the Unload utility (dbunload) could have failed with the error &quot;Unable to start specified database: autostarting database failed&quot; if the old database had been run with database auditing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613986">613986</a></td>
<td>Synchronizations could have failed after multiple updates and database closings. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR613999">613999</a></td>
<td>OEM Edition servers would have crashed when started with the -fips switch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614016">614016</a></td>
<td>Attempting to rename a Maintenance Plan using the wizard would always have failed with the error &quot;A maintenance plan with the specified name already exists in this database&quot;. The old and new names were not being tracked correctly by the wizard. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614034">614034</a></td>
<td>When a 9.0.2 QAnywhere client synchronized, the MobiLink server would have displayed the following errors:</p>
<p>				Expecting 1 parameters in script, but only found 4: update ml_qa_global_props set modifiers = ?, value = ? where client = ? and name = ? </p>
<p>				Unable to open upload_update .</p>
<p>				This has been fixed by a change to the upload_update script for the table ml_qa_global_props, version ml_qa_2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614064">614064</a></td>
<td>UltraLiteJ databases created as File Write At End or In Memory, would not have allowed alter operations if there transactions with multiple operations on the same row.</p>
<p>				For example:</p>
<p>				Given a table Test that had synchronization disabled, after the sequence </p>
<p>				INSERT INTO Test( num, val ) VALUES( 1, 0 )</p>
<p>				UPDATE Test SET val = 2 WHERE num = 1</p>
<p>				COMMIT</p>
<p>				it would have no longer been possible to alter the schema of table Test. Attempts to do so would have resulted in UltraLiteJ Error[-121]: Permission denied: unsynced transactions</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614245">614245</a></td>
<td>When more than one Relay Server Outbound Enabler (RSOE) in the same backend server farm used the same server id to connect to the Relay Server, the Relay Server would have reported that there was a conflict, and let the newer RSOE instance win over the existing RSOE connection. There was a small chance that the old RSOE connection may have reported the error &quot;Internal error! Freeing already freed memory!&quot; during the disconnect process. Although the memory manager in versions 11.0.1 2335 or higher of the Relay Server is immune from such memory problems, and will keep working normally, a fix has been made to further stop the cause of this memory problem in order to stop the internal error from occuring at all.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614247">614247</a></td>
<td>The server may have crashed after query optimization of a statement with a parallel plan, for which the EXCHANGE physical operator must preserve the ordering of the rows from the input stream, and a prefilter predicate exists before the Exchange operator. This has been fixed.</p>
<p>				For example, if the query below has the plan &quot;p&lt;xx&gt; Exchange p&lt;xx&gt;&quot;, the output of the Exchange operator must preserve the ordering of the rows on &quot;p.id&quot; provided by the scans of the index &quot;xx&quot;. This query crashed the server before this fix. The prefilter predicate is &quot;now() &gt; now()&quot;.</p>
<p>				select * into #temp1 from product;</p>
<p>				create index xx on #temp1(id);</p>
<p>				select p.id from #temp1 p where now() &gt; now() order by p.id;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614405">614405</a></td>
<td>The server could have have an assertion, or crashed, when reinserting a deleted non-null value into a unique index. In rare cases, database corruption was possible. System and temporary table indexes were not affected. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614417">614417</a></td>
<td>The MobiLink server could have crashed when processing a synchronization request from a client, if the client was older than version 10 and was syncing UUID columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614432">614432</a></td>
<td>The Information utility (dbinfo) will now show the CHAR collation specification, CHAR encoding, NCHAR collation specification and NCHAR encoding, instead of the old &quot;Respect letter-case when comparing&quot; and &quot;Collation sequence&quot; fields.</p>
<p>				For example, the following two lines of dbinfo:</p>
<p>				Respect letter-case when comparing: No (&#39;A&#39; equal to &#39;a&#39;)</p>
<p>				Collation sequence: 1252LATIN1 (Code Page 1252, Windows Latin 1, Western)</p>
<p>				have been replaced by:</p>
<p>				CHAR collation sequence: 1252LATIN1(CaseSensitivity=Ignore)</p>
<p>				CHAR character set encoding: windows-1252</p>
<p>				NCHAR collation sequence: UCA(CaseSensitivity=Ignore; AccentSensitivity=Ignore; PunctuationSensitivity=Primary)</p>
<p>				NCHAR character set encoding: UTF-8</p>
<p>				which matches the output displayed by the Initialization utility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614592">614592</a></td>
<td>One of the values that could have been returned for the lock_type column of the sa_locks procedure was &#39;WriteNonPK&#39;, which is longer than the the char(9) column definition. This was corrected by shortening the &#39;WriteNonPK&#39; value to &#39;WriteNoPK&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614625">614625</a></td>
<td>The MobiLink client would have ignored the command line option -a. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614632">614632</a></td>
<td>In rare circumstances, calling the system function db_property() to retrieve a database property from a database other than the one connected to (for example, when calling sa_db_info()), may have resulted in invalid data being returned. This would only have occurred if the property being requested returned a string, and conversion between the character sets of the two databases was unnecessary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614778">614778</a></td>
<td>When loading geometry values from an ESRI shapefile, the incorrect grid size and tolerance were applied during the loading process. This could have lead to geometries being improperly rejected with an error at load time. This problem primarily arose for round-Earth spatial reference systems and those with a non-default grid size or tolerance. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614782">614782</a></td>
<td>If the plan chosen for a query used a nested-loops outer join, and the cursor was used with a mixture of forward and backward fetches, it was possible for the server to return the wrong answer for the query. This has been fixed. A possible work-around for the problem is to use an insensitive or keyset-driven cursor type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614805">614805</a></td>
<td>Clicking the &quot;Test Connection&quot; button in the SQL Anywhere Monitor when creating a MobiLink resource would have caused the Monitor to hang. The MobiLink server log would have contained the errors: &quot;&lt;4&gt; [-10004] Protocol version mismatch -- expecting 34 but received 49&quot; and &quot; &quot;&lt;4&gt; failed reading command with id:1 and handle:26&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614818">614818</a></td>
<td>When deploying support for dbunload to a windows CE device, the following scripts were missing: unloadold.sql, optdeflt.sql and opttemp.sql. These are now deployed to the device.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR614976">614976</a></td>
<td>The Relay Server Outbound Enabler (RSOE) may not have relayed backend server responses when under a sustained high load of requests. The problem was more likely to occur when the network between the client and Relay Server (RS), as well as the network between the RS and the RSOE, were both very fast while the backend server machine was relatively slow in processing. Turning on high RSOE verbosity in such situation would have caused this problem to be more likely to occur. A fix has now been made in the RSOE to solve this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615212">615212</a></td>
<td>When computing an aggregate function such as AVG() or SUM(), it was possible for the result of the calculation to overflow the bounds of the data type used for accumulation, leading to an answer that was not numerically correct. Even if the option Ansi_integer_overflow was set to &#39;On&#39;, the overflow was not reported as an error. If AVG() or SUM() overflowed an INT type, then the argument to the aggregate can be cast to DOUBLE or NUMERIC to avoid the overflow (with a concomitant performance degradation). In specific conditions, an arithmetic operation could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615239">615239</a></td>
<td>A web services stored procedure did not automatically process query parameters for HTTP PUT and POST methods. This has been fixed.</p>
<p>				Examples:</p>
<p>				CREATE SERVICE echo ...</p>
<p>				CREATE SERVICE echo_elem URL ELEMENTS ...</p>
<p>				CREATE SERVICE echo_path URL ON ...</p>
<p>				HTTP Requests:</p>
<p>				PUT echo?id=1 HTTP/1.1 ==&gt;</p>
<p>				HTTP_VARIABLE(&#39;id&#39;) == 1,</p>
<p>				HTTP_HEADER(&#39;@HTTPQUERYSTRING&#39;) == id=1</p>
<p>				PUT echo_elem/one/two?id=1 HTTP/1.1 ==&gt;</p>
<p>				HTTP_VARIABLE(&#39;id&#39;) == 1,</p>
<p>				HTTP_VARIABLE(&#39;url1&#39;) == one,</p>
<p>				HTTP_VARIABLE(&#39;url2&#39;) == two,</p>
<p>				HTTP_HEADER(&#39;@HTTPQUERYSTRING&#39;) == id=1</p>
<p>				PUT echo_path/one/two?id=1 HTTP/1.1 ==&gt;</p>
<p>				HTTP_VARIABLE(&#39;id&#39;) == 1,</p>
<p>				HTTP_VARIABLE(&#39;url&#39;) == one/two,</p>
<p>				HTTP_HEADER(&#39;@HTTPQUERYSTRING&#39;) == id=1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615254">615254</a></td>
<td>If a percent character &quot;%&quot; was used in a RAISERROR statement, then retrieving the error using sqlany_error() would have returned garbage characters for the percent character. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615255">615255</a></td>
<td>When run on Windows CE, the server may have reported an inaccurate reason when a file error occurred. A server that was using the ICU library (dbicudtnn.dll) could have reported a general I/O error if the database file did not exist. A server that was not using ICU could report that a database file did not exist error when a different file error occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615422">615422</a></td>
<td>It was not possible to use Java or .NET scripts for the authenticate_file_upload event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615446">615446</a></td>
<td>A &quot;long&quot; hex constant string in a SQL query would have been treated as being a CHAR() datatype, rather than BINARY() data. In this case &quot;long&quot; refers to a string which is longer than approximately one database page size after converting the hex to binary (ie, the original hex string is approximately two pages in length). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615447">615447</a></td>
<td>Queries containing procedure calls in the FROM clause may have failed to execute, or the procedure was not in-lined which may have resulted in very poor performance. For this problem to have occurred, the procedure must have contained common table expressions defined with the &quot;WITH [RECURSIVE] ...&quot; clause, and the procedure must have qualified to be in-lined into the query block in which it was used. This has been fixed.</p>
<p>				For more information on in-lining procedures see &quot;SQL Anywhere 11.0.1 � SQL Anywhere Server - SQL Usage � Query Processing � Query optimization and execution � Semantic query transformations � In-lining simple system procedures &quot;</p>
<p>http://dcx.sybase.com/index.html#1101en/dbusage_en11/ug-optimizer-s-4906935.html</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615448">615448</a></td>
<td>Certain database objects, such as stored procedures, are stored in canonical form. When &quot;long&quot; CHAR or NCHAR constants in a SQL statement were transformed into canonical form, the canonical form could have been incorrect, such that the canonical statement could not be parsed, or that the original data would not be returned when it was parsed. A &quot;long&quot; constant in this context is one in which the internal representation is approximately one database page size in length or longer. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615473">615473</a></td>
<td>When installing the Japanese 10.0.1 3990 EBF, some of the characters in various buttons of the installer containing an unintelligible sequence of characters (mojibake). The character encoding used when compiling the installer was incorrect, this has been fixed.</p>
<p>				Note, the installer for the 10.0.1 3976 EBF worked correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615481">615481</a></td>
<td>When doing a 64 bit install, if only the SQL Anywhere and Administration Tool features were selected, some operations in Sybase Central would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615614">615614</a></td>
<td>Dropping a login policy, or a synchronization profile, would not have also deleted the corresponding row in the system table ISYSOBJECT. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615617">615617</a></td>
<td>If an application connected via jConnect attempted to retrieve the column metadata of a result set that contained a varbit, long varbit, nchar, nvarchar long nvarchar, or uniqueidentifier column, then the column metadata would have been returned with an unknown datatype. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615627">615627</a></td>
<td>When using snapshot isolation, the Validate utility (dbvalid), or the &quot;VALIDATE DATABASE&quot; statement, may have spuriously report the error &quot;Database validation failed for page xxxx of database file&quot;. These errors would then have disappeared after a clean shutdown of the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615655">615655</a></td>
<td>For some types of page corruption, the Validate utility (dbvalid) could have reported incorrect page numbers. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615671">615671</a></td>
<td>Commas appearing anywhere in an index hint would have been interpreted as index name deliminators. For instance, the hint INDEX([a, b], c) would have been interpreted to mean the indexes &quot;a&quot;, &quot;b&quot;, and &quot;c&quot;, rather than an index named &quot;a, b&quot; and an index named &quot;c&quot;. This has been fixed so that it is now possible to supply hints for indexes </p>
<p>				with a comma in their names, provided the name is properly quoted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615813">615813</a></td>
<td>The Relay Server does not support running more than one Outbound Enabler per backend server if they are started with the same backend server id. If this limitation for a unique backend server id was violated, some traffic to that backend server may either have failed, or suffered slowness. This problem has been fixed. The Relay service to other backend servers is no longer affected by this issue. The second and subsequent instances are not functional.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615828">615828</a></td>
<td>The Relay Server Outbound Enabler (RSOE) could have sporadically crashed on startup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615834">615834</a></td>
<td>The REGEXP_SUBSTR function could have returned incorrect results when the start-offset parameter was specified. In particular, regular expressions with &#39;^&#39; (match start of string) may not have matched when they should have, and lookbehind assertions may have matched when they should not have. Also, specifying an invalid start-offset or occurrance-number, may have returned a match when it should not have. This has been fixed so that the start-offset specifies the beginning of the expression to match, and &#39;^&#39; will match the beginning of the expression starting at start-offset.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615855">615855</a></td>
<td>The MobiLink client (dbmlsync) could have crashed on shutdown when run on linux systems. </p>
<p>				This problem also affected applications using dbmlsync through the dbtools interface. They could have crashed when DBToolsFini was called. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615861">615861</a></td>
<td>The Relay Server Outbound Enabler was over using memory for buffering upward data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR615994">615994</a></td>
<td>If a domain was created after editing columns in a table, then the newly created domain would not have appeared in the Table Editor&#39;s Data Type drop-down list until the table was manually refreshed by pressing F5. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616015">616015</a></td>
<td>The QAnywhere Agent could have failed with the error: &quot;Internal error: Too many MESSAGE ... FOR CONNECTION messages&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616017">616017</a></td>
<td>The QAnywhere Agent would have failed to upgrade 9.0.2 message stores that were created with SQL Anywhere 9.0.2 builds 3654 and later. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616031">616031</a></td>
<td>On Unix systems other than Linux, JAR files were installed with 0700 permissions, which meant that they were only usable by the user who ran the install. This has been fixed so that executables, shared objects, and shell scripts are now installed with 0555 permissions, while the permissions of all other files will be 0444.</p>
<p>				As a workaround, the following command may be run to fix the permissions of the JAR files:</p>
<p>				find $SQLANY11 -name &quot;*.jar&quot; -exec chmod 444 {} \;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616038">616038</a></td>
<td>If the Log Translation utility (dbtran) was run using both the -m (read log files from a directory) and -ir (range of log offsets) flags, the following error would have been reported:</p>
<p>				Transaction log file &#39;&lt;logfile1&gt;&#39; overlaps with transaction log file &#39;&lt;logfile2&gt;&#39;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616040">616040</a></td>
<td>When the Relay Server Outbound Enabler console was opened with high verbosity logging set, the Outbound Enabler performance could have been significantly degraded. This has been fixed by removing log information at verbosity level 1 and above from the console display, but leave them in the log file only. To restored the old behavior of displaying all information to the console, use the new -dl command line option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616196">616196</a></td>
<td>Older MobiLink clients (prior to Version 10) would have caused the server to log a Protocol Error, when attempting to restart a download. This has been fixed. Restartable downloads for older clients is not supported, so the server will now log the restart failure and send a status code to the client.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616214">616214</a></td>
<td>The server allows the LOAD TABLE statement to be executed in a mode where the contents of the input file are recorded into the transaction log so that the original data source is no longer needed in the event of the database recovery. The logging of file contents in the transaction log can be triggered explicitly, e.g., if the WITH CONTENT LOGGING clause is used, or implicitly for certain forms of LOAD TABLE, e.g., when the USING CLIENT FILE clause is used. The LOAD TABLE statement could have failed with an error when executed from within a stored procedure if the user executing the procedure was different from the login user for the connection. This has been fixed so that the server now executes the LOAD TABLE statement correctly in these circumstances.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616221">616221</a></td>
<td>Estimates of the number pages for tables and indexes in the cache, that were used by the optimizer, were not being correctly maintained, causing poor plan selection. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616222">616222</a></td>
<td>Comments were not being saved on sequence objects. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616227">616227</a></td>
<td>Connection attempts that used TLS would have failed with handshake failures on 64-bit Mac clients. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616231">616231</a></td>
<td>An HTTP/SOAP request may have caused the SQL Anywhere server to crash under certain circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616239">616239</a></td>
<td>Under sustained high load from a Relay Server, the Outbound Enabler may not have performed well enough, resulting in client timeouts. A performance improvement has been made to the Outbound Enabler to correct this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616385">616385</a></td>
<td>When making continuous ODBC connections and disconnections, using the ANSI entry points to SQLConnect() and SQLDisconnect(), a memory leak would have occurred in the application. The UNICODE versions of SQLConnect() and SQLDisconnect() (i.e., SQLConnectW() ) were not affected by this problem. The process heap will continue to grow as the application loops. This problem has been fixed.</p>
<p>				See also Engineering case 608095.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616395">616395</a></td>
<td>The system procedure sa_split_list() did not work as expected when a multi-character delimiter was provided, and the string to be split was shorter than the delimiter. No rows were returned, whereas the expected result was a single row containing the string to be split. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616435">616435</a></td>
<td>When using the Create Database wizard to create a database on the local machine while having no servers running the local machine, the newly created database would have been started on the server, but would not have been the local machine&#39;s default server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616437">616437</a></td>
<td>Selecting a server&#39;s &quot;All Connections&quot; tab could have caused an error and fail to display the list of connections, if Sybase Central was connected only to the server&#39;s utility database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616635">616635</a></td>
<td>Header files for external libraries to be used with full text searching were missing from the installed software. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616637">616637</a></td>
<td>A query in which a SELECT FROM DML DTB appeared within one of the query blocks inside a query expression (a UNION, EXCEPT or INTERSECT query) could have given the error &quot;Update operation attempted on non-updatable query&quot; (SQLCODE -192). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616654">616654</a></td>
<td>Certain client-side error messages in a dblib application could have been returned in the OS character set, rather than the character set that the application had chosen for the connection. The affected messages were typically generated by an attempt to use a connection that had terminated abnormally, in which case dblib used the OS character set because it lost track of the connection&#39;s character set when the connection terminated. Of course, if the connection had chosen to use the OS character set the problem would not be noticed. This problem has been fixed by keeping track of the character set of the last connection that was used with each SQLCA and returning error messages in that character set. Dblib tracks any change to a connection&#39;s character set when communicating with a database server which is version 11.0.0 or newer. When connected to servers earlier than version 11.0.0, dblib is unable to track the character set of a connection if the application calls db_change_char_charset() with a character set name of &quot;none&quot; (ie, equivalent to database CHAR character set) but it will track the change when the character set is changed to an explicit name (eg &quot;UTF-8&quot;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616656">616656</a></td>
<td>When using the SQL Anywhere PHP module, and binding a null numeric value to a statement with sasql_stmt_bind_param_ex, the null value would have been converted to a 0. This resulted in a 0 being passed in the statement instead of the desired null value. Resetting the variable to null after binding would have given the desired behavior. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616657">616657</a></td>
<td>On BlackBerry devices and simulators, very large tables/databases (many rows) could have resulted in an OutOfMemory error, even when lazy loading and row limiting was enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616829">616829</a></td>
<td>If the SQL Remote Message Agent (dbremote) connected to a database that had remote or consolidated users defined, but did not have a publisher defined, then dbremote would not have reported any errors, but would have simply reported &quot;Execution Complete&quot;. This has been corrected so that dbremote will now report an error indicating that no publisher was defined in the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616956">616956</a></td>
<td>When clicking the &#39;View Code&#39; button in the breakpoints dialog, the error &quot;The source code could not be displayed for the &lt;procedure/event/trigger&gt; because the database filter is excluding it.&quot; may have been shown. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616981">616981</a></td>
<td>An ALTER VIEW statement that changed the view definition, would have silently dropped any INSTEAD OF triggers on the view. This has been fixed so that the server will now return the error &quot;Operation failed because table or view &#39;%1&#39; has an INSTEAD OF trigger&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616985">616985</a></td>
<td>If an application attempted to fetch long string data from a proxy table, and the ODBC driver being used to connect to the remote server did not support UNICODE entry points, then there was a chance the fetched data would have been missing some characters. This problem has now been fixed.</p>
<p>				Note, there are very few ODBC drivers that do not support UNICODE entry points. As a result, this problem affects a very small number of applications that use remote servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR616997">616997</a></td>
<td>Relay Server Ooutbound Enabler could have been slow in connecting to a backend server when it used a host name, instead of a dotted IP address, in the -cs option. This connect performance issue has been fixed. Using a host name in the -cs switch should no longer causes performance issues. The workaround is to use dotted ip address.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR617154">617154</a></td>
<td>The Interactive SQL utility (dbisql) could have failed to connect when using a Japanese DSN name that was passed as a connection parameter. Double-byte characters were being mangled when provided in a parameter to dbisql. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR617161">617161</a></td>
<td>An HTTP request requiring certain character set conversion criteria may have caused the SQL Anywhere server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR617165">617165</a></td>
<td>INSTEAD OF triggers on views were not being unloaded by the Unload utility (dbunload). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR617169">617169</a></td>
<td>If a query contained a predicate &quot;a = b&quot; for geometry values a and b, it was possible in some cases for the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR617177">617177</a></td>
<td>On Solaris SPARC systems, the 32-bit SQL Anywhere libraries were linked against libC.so.5, the compatibility libC variant, even though the libraries were not compiled in compatibility mode (i.e., -compat=4 was not used when compiling the libaries). A C++ application that was not itself linked against libC.so.5 could have crashed when trying to load these libraries. The libraries are no longer linked against libC.so.5 and now are only linked against libCrun.so.1. C++ client applications compiled with the -compat=4 compatibility flag, or linked against libC.so.5, are not supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617178">617178</a></td>
<td>The asynchronous command execution ( BeginExecuteReader and BeginExecuteNonQuery ) could have been blocked by exclusive table locks. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617203">617203</a></td>
<td>If an ABS() function call was used in a stored procedure, batch statement, or simple SELECT, INSERT, or UPDATE statement, then it was possible for the function to report an overflow error. For this to occur, the argument to the ABS() function must have been a NUMERIC or DECIMAL argument with a precision and scale different from the values specified by database options. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617205">617205</a></td>
<td>If a geometry is defined in a round-Earth spatial reference system, attempts to use predicates such as ST_Within() and ST_Contains() should result in an error, as these are not supported on round-Earth geometries. In some cases though, rows could have been rejected before an error was generated, giving the appearance that the predicates were in fact supported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617206">617206</a></td>
<td>Attempting to compute ST_ConvexHull() or ST_ConvexHullAggr() could have given an error (Value xxxx out of range for coordinate x) if one of the geometries was empty. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617219">617219</a></td>
<td>If an application connected using Open Client 15.5, and then subsequently attempted to fetch a Time or Timestamp value, then the fetch would have failed with a protocol error. This problem has now been fixed.</p>
<p>				Note that this problem does not affect versions of Open Client prior to 15.5.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617396">617396</a></td>
<td>On 32-bit systems that support dynamic cache sizing, it was possible to set a maximum cache size for the server that would have left insufficient address space for other server operations. The server could then have failed to start, or could have experienced other unpredictable failures. The 32-bit server now automatically reduces the maximum cache size, as well as the initial and minimum cache sizes if necessary, so that at least 512MB of address space is left free for use outside of the cache. On Windows, a 32-bit database server will be limited to a conventional cache of about 1.5GB, 2.5GB or 3.5GB depending on the OS version.</p>
<p>				To specify a maximum cache size that will leave less than 512MB available, the new &quot;-chx &lt;size&gt;&quot; option can be used instead of &quot;-ch &lt;size&gt;&quot;. Note, however, that the use of -chx is strongly discouraged unless great care is taken to evaluate what cache size can safely be used in a specific installation. To use very large caches, the use of 64-bit software is recommended.</p>
<p>				On 64-bit systems, address space is extremely large and -ch and -chx are equivalent but -ch is preferred.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617397">617397</a></td>
<td>By default, the OLE DB provider indicates, through a property settting, that it does not support returning multiple result sets, although the provider is capable of doing so. An undocumented connection option &quot;ASA Multiple Results=TRUE&quot; will enable the returning of multiple result sets. The provider has been changed so that returning of multiple results sets is now supported by default. More specifically, DBPROP_MULTIPLERESULTS is now set to DBPROPVAL_MR_SUPPORTED by default. If desired, the connection option &quot;ASA Multiple Results=FALSE&quot; can be used to change the property value to DBPROPVAL_MR_NOTSUPPORTED. However, there is no known benefit to using this option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617469">617469</a></td>
<td>Execution of the function ST_Boundary() on a collection was including points that should not have been included. The standard states that if a point is included in the boundary of an even number of elements in a collection, then it is not actually part of the boundary for the collection. These were being included incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617470">617470</a></td>
<td>When a set operation generated a CircularString, it was output as a LineString. It did not interpolate it, but simply output the control points as LineString control points. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617606">617606</a></td>
<td>Queries using INTERSECT and EXCEPT that were executed with parallel physical operators (e.g., HashIntersect or MergeIntersect), may have returned incorrect results. This has been corrected so that INTERSECT and EXCEPT operators will not be executed in parallel.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617613">617613</a></td>
<td>If a table was locked by a connection using LOCK TABLE ... WITH HOLD IN EXCLUSIVE MODE and then it was dropped without an intervening commit or rollback, there was a chance that the server could have crashed when the connection disconnected. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617619">617619</a></td>
<td>If multiple backup statements for the same database were executed concurrently with the WAIT BEFORE START option specified, and there was at least one connection with uncommitted operations, the server could have appeared to hang or run very slowly. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617638">617638</a></td>
<td>Under some situations, the server could have crashed while processing an ST_Transform() method to convert a geometry value from one spatial reference system to another. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617640">617640</a></td>
<td>Use of a timestamp that had a number of seconds with more than 9 digits after the decimal place could have yielded unexpected results.</p>
<p>				For example:</p>
<p>				select datepart( ms, &#39;14:44:33.9876543211&#39; )</p>
<p>				would have returned 128, instead of the expected result of 987.</p>
<p>				This has been fixed by truncating the number of seconds in a timestamp at 9 decimal places before it is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617662">617662</a></td>
<td>If an application connected to a case sensitive database executed a remote query that contained a Group By clause, and one of the columns referenced in the Group By had a different case than the column reference in the select list, then the server would have incorrectly failed the query with error -149 &quot;Function or column reference must also appear in a GROUP BY.&quot;</p>
<p>				For example, the following query would have failed:</p>
<p>				SELECT test.Column1 FROM proxy_t test GROUP BY test.column1</p>
<p>				whereas the following queries:</p>
<p>				SELECT test.column1 FROM proxy_t test GROUP BY test.column1,</p>
<p>				and</p>
<p>				SELECT test.Column1 FROM proxy_t test GROUP BY test.Column1</p>
<p>				would have succeed. This problem would only have occurred if the local database was case sensitive and proxy_t was a proxy table. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617699">617699</a></td>
<td>The message &quot;Statement interrupted by user&quot; was not being returned after a user canceled a command. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617804">617804</a></td>
<td>Attempting to execute an INSERT statement with the WITH AUTO NAME clause could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617811">617811</a></td>
<td>If a database server was started with many databases (e.g. 16) that were configured for database mirroring, the mirror server could have hung, causing the primary server to also hang until the mirror server was stopped. This has been fixed. A workaround is to increase the value for the -gn option from its previous setting (default 20) to a value 2 times the number of mirrored databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR617834">617834</a></td>
<td>A query with a FULL OUTER JOIN without an ON condition must be interpreted as a KEY FULL OUTER JOIN, but this was not the case. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618014">618014</a></td>
<td>The TableViewer ADO.Net sample application queries SYSTABLE to determine the table list to display. That query would have incorrectly returned text index tables, if defined, which cannot be directly manipulated. If a query was subsequently issued using a text index table, the error SQLE_TEXT_CANNOT_USE_TEXT_INDEX would have occurred. The query has now been rewritten to only display base tables. </p>
<p>				Additional changes to the application were also made to improve usability. First, functionality that required an active database connection such as the Execute button are disabled if there is no active connection. Second, a simple SELECT statement is generated based on the table selected from the table list control.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618017">618017</a></td>
<td>In some cases, geometry operations were performed with the wrong tolerance or grid size. In these cases, the incorrect tolerance/grid size of 1e-6 would have been used instead of the values from the associated spatial reference system. In certain cases, this could have lead to incorrect answers being returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618049">618049</a></td>
<td>Attempting to execute an ATTACH TRACING statement with a LIMIT clause would have failed with a syntax error. This statement can be invoked directly, or by the Application Profiling Wizard or Database Tracing Wizard in the SQL Anywhere plugin for Sybase Central. This has been fixed.</p>
<p>				Note, this can be worked around by setting the reserved_keywords option to &#39;limit&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618100">618100</a></td>
<td>When loading from an ESRI shapefile, the geometry values were not converted to the geometry type of the target column. This problem could have lead to geometries of an inappropriate concrete type being stored in a column. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618212">618212</a></td>
<td>If an application connected using the iAnywhere JDBC driver, and then subsequently called one of the read() overloads of ResultSet.getBlob().getBinaryStream(), if the blob value was a non-NULL zero length long binary value, then the read() method would have incorrectly returned 0, instead of -1 to signal the end of the input stream. This problem has now been fixed.</p>
<p>				Note, this problem was introduced by the changes for Engineering case 609739.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618244">618244</a></td>
<td>In the Options dialog, when disabling or enabling the fastlauncher checkbox, the &quot;Configure...&quot; button was not disabled or enabled as appropriate as well. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618257">618257</a></td>
<td>In some cases, operations on long strings (blobs) could have leaked memory in the main heap. This memory would not have been reclaimed until the server was restarted. In order for this problem to have occurred, the blob must have been at least 8 database pages long, and must have been accessed using a random-access interface such as byte_substr() with a starting offset of at least 3 times page size. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618275">618275</a></td>
<td>If a table contained a spatial column with spatial indexes, then it was possible in very specific circumstances for the server to hang when committing or rolling back updates or deletes to the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618276">618276</a></td>
<td>The st_geometry_describe_type option previously supported &#39;xml&#39; as a setting. This is no longer permitted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618278">618278</a></td>
<td>A transaction log, which contained any sequence operations, would have caused the server to crash if it was later reapplied (with the -a option). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618279">618279</a></td>
<td>If two or more sequences were used in the same statement, only one would be evaluated, and would supply its results to all sequence references. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618423">618423</a></td>
<td>When a download exceeded 4K is size, and the page size had been set to greater than 4K, the synchronization would have failed, possibly with an ArrayIndexOutOfBoundsException. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618459">618459</a></td>
<td>If a primary server (S1) was somehow frozen for long enough that its connections exceeded the liveness timeout, and then exited the frozen state, the loss of its connection to the mirror server would cause it to send a stale status to the arbiter which should have been disregarded, but was not. Restarting S1 would result in it attempting to become the primary server if a connection to the second mirror server (S2) could not be made, yielding either two primary servers or an alternate server name conflict. This has been fixed. Stale state information will now be disregarded when received.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618587">618587</a></td>
<td>An ALTER DATABASE CALIBRATE DBSPACE TEMPORARY may have caused the server to fail assertion 200501. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618639">618639</a></td>
<td>When viewing the Application Profiling &quot;Details&quot; pane for a large trace, the pane could have taken a very long time to paint. This has been fixed. Although the pane may still take several seconds to paint, it should be two orders of magnitude faster.</p>
<p>				Note, users who do not have this fix can still view the underlying data by manually by querying the sa_diagnostic_* tables as described in the documentation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618644">618644</a></td>
<td>Some Round Earth geometries (geometries with SRID=4326) could have been created incorrectly, or failed to be created, if the constructor that used other geometries was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618655">618655</a></td>
<td>If data in a CHAR or BINARY column all had the same first 32 bytes, the quality of statistics on the column would have been poor. String histograms in version 10 and later databases are generated with hash keys using the first 32 bytes of the CHAR or BINARY string. This problem has been corrected by generating hash keys using the first 255 bytes of the string, so that different strings will more likely have different hash keys.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618766">618766</a></td>
<td>If database mirroring was attempted using a database created prior to version 12 that had not been upgraded, the server would have crashed on startup. This has been fixed. A workaround is to upgrade or rebuild the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618804">618804</a></td>
<td>If a LOAD TABLE ... WITH CONTENT LOGGING statement was executed in a database mirroring environment, and the mirror server was then stopped, restarting the mirror server may have failed with: </p>
<p>				assertion 100904: failed to redo a database operation - Error: Table &#39;sa_load_table_data_X&#39; not found</p>
<p>				This has been fixed.</p>
<p>				Workarounds for this problem are to add WITH CHECKPOINT ON to the LOAD TABLE statement (which makes the problem much less likely to occur, but does not completely eliminate it), or to use WITH ROW LOGGING instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618967">618967</a></td>
<td>The Interactive SQL utility (dbisql) would have crashed when attempting to export a binary value using an OUTPUT statement with the HEXADECIMAL OFF or HEXADECIMAL ASIS clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR618972">618972</a></td>
<td>The J2ME Record Store did not record page reads or writes. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619037">619037</a></td>
<td>If an application opened multiple database metadata result sets, and the application closed the metadata result sets appropriately, there was still a chance that the iAnywhere JDBC driver would have closed one of the open metadata result sets, even though the application had not reached the limit of 3 metadata result sets open at any given time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619038">619038</a></td>
<td>When running an install created by the 12.0 Beta deployment wizard, it would have recommended the SQL Anywhere 11 folder as the default install location. This has been corrected to default to Program Files\SQL Anywhere 12.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619039">619039</a></td>
<td>The Execute Query menu item was enabled when in the debugger and not at a breakpoint. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619040">619040</a></td>
<td>On Windows systems, the -oe server command line option was ignored if -qi or -qw were also specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619054">619054</a></td>
<td>If the execution of a DELETE statement involved remote tables, and the DELETE statement could not be handled in full passthru, then the server could have failed assertion 201501 &quot;Page for requested record not a table page or record not present on page&quot;. This problem has now been fixed, and a proper error message is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619055">619055</a></td>
<td>If the OS/locale charset did not match the database charset, the contents of the msg_database column in the result set from the sa_server_messages() system procedure would have been mangled. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619056">619056</a></td>
<td>The server could have crashed while building a text index on very long binary or string values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619113">619113</a></td>
<td>In very rare timing depended circumstances, the server may have crashed when querying connection properties for a connection in the process of disconnecting. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619128">619128</a></td>
<td>The server could have failed an assertion, or returned a spurious error, if a query used a keyset cursor or if a keyset cursor was implicitly used in the processing of a DELETE or UPDATE statement. For this to have occurred there must have been concurrent updates (with respect to the lifetime of the keyset). This was most likely to have happened if a global share by all temporary tables was involved. If no temporary tables were involved, only DELETE statements were likely to cause issues. The error most likely to be seen was &#39;unable to find in index&#39;; assertions included 101412 and 200502 (among others). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619138">619138</a></td>
<td>If an embedded SQL application fetched into a SQLDA with a negative sqllen field in a SQLVAR of type DT_VARCHAR, DT_NVARCHAR or DT_BINARY, the fetched value could overrun memory and cause dblib to crash. A negative sqllen could occur if a positive value greater than 32767 was assigned to the sqllen field, since it is 16 bit signed short.</p>
<p>				Also, fill_sqlda could have filled a sqlda with negative sqllen values for the types DT_VARCHAR, DT_NVARCHAR or DT_BINARY with input sqllen values of 32765 or more.</p>
<p>				This has been fixed so that the error &quot;Invalid sqllen field in SQLDA&quot; is returned, and fill_sqlda never fills with a negative sqllen value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619145">619145</a></td>
<td>If a query contained a spatial join between two geometry columns that were compared using a relation that was not symmetric (such as ST_Covers), the query could have returned the wrong answer. In order for the wrong answer to be returned, a spatial index must have been used to compute the join. The result set would have missed rows from the index that should have been returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619190">619190</a></td>
<td>A base table with publications was not allowed to be used in any parallel access plan. This has been fixed. Now, a table with publications cannot be used in a parallel plan of a statement if the table is updatable in that statement, and it has publications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619191">619191</a></td>
<td>In some cases, operations that interpolate circular strings to linear segments could have generated duplicate points if the circular string contained more than 3 control points. For example, the following circular string could have generated a duplicate point (20,20) in the result:</p>
<p>				CircularString (-20 -20, 20 -20, 20 20, -20 20, -20 -20)</p>
<p>				The duplicated points might not have been noticed, because operations that input a curve drop duplicated points. The extra point could be detected in the output of ST_AsText(&#39;version=1.1&#39;) though. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619195">619195</a></td>
<td>Generating an MSI install using the Deployment Wizard, should have included these files:</p>
<p>				IANYWHERE.MOBILINK.CLIENT.DLL</p>
<p>				IANYWHERE.DATA.SQLANYWHERE.DLL</p>
<p>				but they were not included in the assembly/v2 directory.</p>
<p>				These files were being deployed directly into the GAC, but were not being put into the assembly/v2 directory. This has been corrected, and they are now installed into both locations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619253">619253</a></td>
<td>Executing any query in the Query Database dialog when debugging and at a breakpoint, would have always displayed the error &quot;Invalid plan.&quot;. Showing a plan while debugging is not required so the Plan button has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619254">619254</a></td>
<td>If a database had been initialized with the UCA collation sequence, and to respect accent sensitivity on all UCA string comparisons, it was likely that operations on tables without a SUBSCRIBE BY clause in the publication definition would have failed to replicate. No errors would have been reported, but operations that should have replicated would not have been sent. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619257">619257</a></td>
<td>When loading string statistics from a database prior to version 12.0, into a version 12.0 database, the string histogram was created but not initialized. In some circumstances, this could have caused the Unload utility (dbunload) to fail. This is fixed by not creating the string histogram when old string statistics are being loaded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619273">619273</a></td>
<td>On Linux systems, Sybase Central would have hung on start-up when loading the UltraLite plug-in. This has been fixed.</p>
<p>				As a workaround, automatic loading of the UltraLite plugin can be disabled by editing the file &quot;$HOME/.sybase/Sybase Central 6.0.0/.scUserPreferences600&quot; and changing the line </p>
<p>				&quot;ProviderData/ultralite1101/Autoload=true&quot; to read &quot;ProviderData/ultralite1101/Autoload=false&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619301">619301</a></td>
<td>If the database server was launched by dbspawn and it couldn&#39;t access a database file due to insufficient permissions, dbspawn would have displayed the error &quot;Specified database file already in use&quot;. This has been fixed. It will now display &quot;Database cannot be started -- Access is denied&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619338">619338</a></td>
<td>Attempting to execute a SELECT statement that referenced a stored procedure in the FROM clause could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619357">619357</a></td>
<td>When an application attempted to make an external environment call, there was a very small chance the server would have crashed if the external environment for that connection shut down at exactly the same time as the application made the external environment call. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619359">619359</a></td>
<td>A NullPointerException was possible when there was a small difference in row-limitation thresholds (see ConfigPersistent.setRowMinimumThreshold, setRowMaximumThreshold). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619360">619360</a></td>
<td>UltraLiteJ could not have created a database in BlackBerry internal flash on some models, such as 8300, 9700. This was due to a problem in the BlackBerry software. A solution was found that was not impacted by the bug.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619388">619388</a></td>
<td>When using Sybase Central&#39;s fast launcher, the timeout setting was ignored and the launcher continued to run. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619552">619552</a></td>
<td>Queries that used indexed snapshot scans could have returned extra rows. This has been fixed. See also Engineering case 612617.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619558">619558</a></td>
<td>When using the &quot;Ja_JP&quot; or &quot;JA_JP&quot; locales on AIX, SQL Anywhere incorrectly determined that the OS character set was EUC-JP, whereas AIX actually uses IBM-943 (a.k.a &quot;Windows-31J&quot; and &quot;windows-932&quot;) and UTF-8 respectively for those locales. The &quot;ja_JP&quot; locale on all UNIX platforms uses EUC-JP. On AIX 4.2 and earlier, AIX used the IBM-932 character set for the Ja_JP locale. SQL Anywhere does not support AIX 4.2; it does not support the IBM-932 character set which is significantly different from the Windows-932 / Windows-31J character set; and it does not support the &quot;Ja_JP.IBM-932&quot; locale that is available on currently supported versions of AIX. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619595">619595</a></td>
<td>The SQL Anywhere Optimizer now has a new source type for the selectivity estimations of atomic predicates of the form &quot;T.X = R.X&quot;, namely JOIN. A selectivity estimation has the &quot;JOIN&quot; source type if it is computed using (1) Primary Key - Foreign Key referential integrity constraints; (2) unique constraints; (3) join histograms. The SQL Anywhere Optimizer uses selectivity estimation sources when redundant predicates are present in a query. Different sources have different qualities, hence predicates with better sources are used when competing predicates are present.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619596">619596</a></td>
<td>Partial index scans covered by the same subset of predicates have now normalized cardinality estimation during optimization. Before this change, it would have been possible for partial index scan I1, covered by the predicates {p1,p2, .. pn}, to have had an estimated cardinality greater than another partial index scan I2 covered by a proper subset of predicates P of the set {p1,p2, ..., pn}. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619597">619597</a></td>
<td>Predicates of the form &quot;(p11 and p12 and .. ) OR (p21 and p22 and ... ) OR ( ...)&quot; can be used for multi-index partial scans if for each term &quot;(pi1 and pi2 and ... )&quot; an intersection of indexes can be built. The SQL Anywhere Optimizer failed to build an index scan for a term &quot;(pi1 and pi2 and ... )&quot; if all the predicates can be used in a single index scan.</p>
<p>				For example:</p>
<p>				select * from T where (T.X = 10 and T.Y = 20 ) OR ( T.Z = 30 and T.W = 40)</p>
<p>				create index XY on T(X, Y)</p>
<p>				create index ZW on T(Z, W)</p>
<p>				A possible access plan is the union of the index scans: T&lt;XY&gt; UNION T&lt;ZW&gt;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619613">619613</a></td>
<td>The ODBC functions SQLPrimaryKeys() and SQLForeignKeys() would have returned an incorrect name for the primary key identifier (PK_NAME). It should return the PRIMARY KEY constraint name, but was returning the table name (the &quot;default&quot; primary key name). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619699">619699</a></td>
<td>A full text index built on data containing multibyte characters could have contained incorrect characters when an external prefilter and/or term breaker library was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619719">619719</a></td>
<td>ADO.Net client applications could have hung in very rare circumstances when fetching data readers. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619728">619728</a></td>
<td>If rebuilding a database failed for some reason, the Unload utility (dbunload) would have output some unnecessary information to unprocessed.sql. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619746">619746</a></td>
<td>IS NOT NULL predicates were incorrectly being generated for expressions which cannot be null, that is for the null-supplying side of OUTER JOINs. These extra predicates may have resulted in less than optimal access plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619758">619758</a></td>
<td>When connected to a database running on a Windows Mobile (Windows CE) device, if the database&#39;s Overview tab was selected, then Sybase Central would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619911">619911</a></td>
<td>Executing a query of the form:</p>
<p>				SELECT ... FROM dirTab WHERE file_name=&#39;...&#39;</p>
<p>				where dirTab is a directory access table, then the server would have incorrectly returned a result set in cases where the specified file_name extended beyond the subdir limit of the directory access server. This problem has now been fixed and a proper empty result set now gets returned for file names that violate the subdir limit.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619926">619926</a></td>
<td>Stored procedures that contained simple queries over a single table (or the implied DUMMY table), that were run many thousands of times by the same connection, may have consumed more CPU after many thousands of executions. This problem would only have occurred if the same connection executed the same queries in a procedure more than 65000 times before disconnecting. This has been fixed.</p>
<p>				A workaround is to periodically issue an inconsequential DDL statement to the server (for example, CREATE TABLE FOO(id int); DROP TABLE FOO). This will flush the plan caches and allow each connection to use fully-cached plans for these simple statements.</p>
<p>				This issue had no impact on statements involving more than one table, or on statements that are not subject to plan caching.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619937">619937</a></td>
<td>An embedded SQL application that attempted to fetch into a sqlvar of type DT_VARCHAR, DT_NVARCHAR or DT_BINARY, with a negative sqllen, could have crashed due to a memory overrun. A negative sqllen with these types is invalid and should never be passed to DBLib. DBLib has now been fixed to make the memory overrun less likely.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619950">619950</a></td>
<td>The Unload utility (dbunload) was failing to add the length information for VARBIT user domain definitions in the reload.sql file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR619976">619976</a></td>
<td>The server could have crashed when executing an aggregate function that operated on string data when the Group By operator was forced into a low-memory strategy. This has been fixed.</p>
<p>				A workaround is to increase the amount of memory available to the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620095">620095</a></td>
<td>Several stability problems existed with parallel queries when using low-memory strategies, which could have lead to server hangs or crashes. These have been fixed. A workaround for these problems is to disable parallelism by setting the option MAX_QUERY_TASKS=1 for all affected queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620110">620110</a></td>
<td>Under rare circumstances, a crashed database could have failed to recover with the message:</p>
<p>				&quot;Unable to start specified database: Cannot use log file &#39;%1&#39; since it is shorter than expected&quot;. </p>
<p>				No data was actually been lost, but the log metadata would have needed to be patched by hand to allow the database to recover. This problem, while very rare, was more likely on systems with very large transactions running on a small number of connections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620136">620136</a></td>
<td>The SQL Anywhere OLEDB provider&#39;s result sets for PRIMARY_KEYS and FOREIGN_KEYS did not show the correct constraint name (PK_NAME column). Instead, they listed the table name. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620253">620253</a></td>
<td>Permission checking for materialized views was being incorrectly done in some cases, resulting in errors, for example: &quot;Assertion Failed 102907 (11.0.1.xxxx) Could not generate triggers for immediately materialized view&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620287">620287</a></td>
<td>The SQL Anywhere OLE DB provider would have leaked memory if the InsertRow method was called with no row handle return pointer. </p>
<p>				For example, </p>
<p>				&nbsp; &nbsp; &nbsp; &nbsp; HRESULT hr = rowset::InsertRow( hChapter, hAccessor, pData, NULL ); </p>
<p>				would have resulted in a memory leak, since phRow (the 4th argument) is NULL. This problem may have occurred when using the provider with SQL Server Integration Services (SSIS). </p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620289">620289</a></td>
<td>If the length for a data column was described as SQL_NTS (-3), the SQL Anywhere OLE DB provider would not have computed the correct length for the column on 64-bit platforms. This problem has been fixed.</p>
<p>				Note, this problem was seen with SQL Server Integration Services applications on 64-bit Windows platforms, it does not appear in ADO applications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620324">620324</a></td>
<td>The server may have incorrectly set the transfer-encoding when processing an HTTP request that failed with a SQL error. The problem may have occurred when the SQL error was generated from within a sub-select. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620474">620474</a></td>
<td>If the primary server (S1) in a database mirroring environment was running in a VM and the VM was paused or otherwise inactive for sufficient time that the mirror server&#39;s connection to S1 was dropped, causing a failover to the mirror (S2) , then when S1 was resumed it would not have realize that a failover has occurred and would have continued to act as a primary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620496">620496</a></td>
<td>When deploying a synchronization model to a new remote database, if the remote database schema had multiple foreign keys to multiple non-primary key columns in a table, a deployment error could have occurred with the following description: </p>
<p>				&quot;Error for: Method makeUniqueConstraints threw exception for reference $HELPER in template script-defs\remote.vm&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620753">620753</a></td>
<td>Plan Viewer displays wrong information on nodes if the plan consists &gt;= 4 nodes</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620795">620795</a></td>
<td>The function count_set_bits may have returned a number that was too large, if a bitwise NOT operation had previously been applied to the operand. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620977">620977</a></td>
<td>If many databases were started for mirroring on a single server, the server could have hung after running for 30 minutes or more. This has been fixed.</p>
<p>				See also Engineering case 617811.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620981">620981</a></td>
<td>The Relay Server State Manager (rshost) would have crashed on Linux systems when run with no parameters. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR620985">620985</a></td>
<td>The MobiLink server would have reported the error, &quot;.NET CLR Host encountered unexpected error.&quot; (SQLCODE -10167), instead of error, &quot;Assembly &#39;%1!s!&#39; does not contain &#39;%2!s!&#39;&quot; (SQLCODE -10172), when a .NET method could not be found. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621019">621019</a></td>
<td>In the new dashboard-based interface for the SQL Anywhere Monitor, it was found that the menu buttons for customizing a dashboard and widget were sometimes too difficult to see; particularly when the user is new to the Monitor. In an effort to address this issue, several changes have been made to the Monitor&#39;s web-based interface to facilitate the user&#39;s recognition of these menu buttons. The most noticeable change is that the dashboard&#39;s customize menu button now includes the text &quot;Customize&quot;. As well, the old &quot;configure&quot; menu options in both the dashboard and widget customize menus has been renamed to &quot;settings&quot; to avoid confusion between &quot;customizing&quot; and &quot;configuring&quot;. Also, in an effort to make the customize menus &quot;pop&quot; more, the menu buttons will now take on a highlighted look when the user mouses over any part of the widget/dashboard title bar; instead of just when the user mouses over the menu button, as it was previously. As a further visual indicator that a widget can be dragged/moved, when the user mouses over the widget title bar, the mouse cursor now changes to a &quot;grabbing hand&quot; cursor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621038">621038</a></td>
<td>Executing an ALTER USER statement with LOGIN POLICY clauses, on a database created with version 10.0.1 and not upgraded, could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621121">621121</a></td>
<td>If all of the following conditions were true, the result set for a procedure would not have been defined properly after a rebuild:</p>
<p>				- procedure P1 generates a result set using a SELECT which references another procedure P2 in the FROM clause</p>
<p>				- P1 did not include a RESULT clause defining the result set</p>
<p>				- the procedure id of P1 was less than that for P2</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621159">621159</a></td>
<td>Archive backups and databases restored from archive backups could have been corrupt. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621162">621162</a></td>
<td>A SQL Anywhere &#39;RAW&#39; web service having been defined with AUTHORIZATION ON, would have failed to the service when it had an AS NULL statement. This has been fixed.</p>
<p>				Note, service types: HTML, XML, RAW, JSON may contain a NULL statement only with AUTHORIZATION ON, DISH services always contain a NULL statement and SOAP services must contain a (non-NULL) statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_76.htm#CR621179">621179</a></td>
<td>When installed on a Mac OS X system to a path with MBCS characters, launching Sybase Central from Finder for the first time would have failed to register the plugins. The following error would have been given:</p>
<p>				The SQL Anywhere 12 plug-in could not be loaded because it uses components that are not accessible. Please change the classpath in the plug-in properties. </p>
<p>				java.lang.ClassNotFoundException: ianywhere.sa.plugin.SAPlugin </p>
<p>				This has been fixed.</p>
<p>				Workaround 1: Launching Sybase Central from Terminal would correctly register the plugins.</p>
<p>				Workaround 2: Set the LANG environment variable in the Finder&#39;s environment. To do this, add the LANG environment variable to ~/.MacOSX/environment.plist, log out, then log back in.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621186">621186</a></td>
<td>When launching Sybase Central from Finder on Mac OS X systems, the Unload data wizard would have incorrectly unloaded Multi-byte Character Set data. This has been fixed.</p>
<p>				Note, launching Sybase Central from Terminal would correct the problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621318">621318</a></td>
<td>ST_CircularString arcs that contained an intermediate point that was collinear with the start and end points, but was not on the line segment between them, incorrectly passed trivial validation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621443">621443</a></td>
<td>If a server was asked to make a very large number of external environment calls at the same time, then there was a small chance the server would become unresponsive for 30 or more seconds. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621504">621504</a></td>
<td>The exception System.NullReferenceException could have resulted when using the SQL Anywhere CE Deployment Wizard (cedeploy) on 64-bit Windows to deploy SQL Anywhere to a Windows Mobile device. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621636">621636</a></td>
<td>If a call to an HTTP client procedure failed, the server could have leaked memory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621652">621652</a></td>
<td>If a server was asked to close a large number of connections that had at some point in time made calls to an external Java environment, then there was a chance the external Java VM would have leaked memory if all the connection close requests occurred at the same time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621665">621665</a></td>
<td>If an application was connected via jConnect or Open Client, then the connection name for that TDS based connection would have been empty. This has now been fixed and the connection name for TDS based connections will now default to the application name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621669">621669</a></td>
<td>If a recursive query contained a geometry column, the server would have incorrectly inferred an SRID of 0 for the column. This could have caused a spurious error to be reported. </p>
<p>				For example, the following example incorrectly returned the error &quot;Transform from SRID 4326 to 0 not supported. SQLCODE=-1444, ODBC 3 State=&quot;HY000&quot;&quot;:</p>
<p>				with recursive V( id, geom) as (</p>
<p>				select 1, new ST_Point(0,0,4326)</p>
<p>				union all</p>
<p>				select id-1, null from V where id=0</p>
<p>				)</p>
<p>				select * from V</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621682">621682</a></td>
<td>When alerts were sent out via email from the SQL Anywhere Monitor, it was possible that the alert&#39;s title would have displayed in a disproportionately large font when viewed in certain mail programs (e.g. Gmail). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621697">621697</a></td>
<td>Some variants of the ALTER TEXT CONFIGURATION statement could have crashed the version 12 server, if the database was created with an earlier version of the server and not upgraded to version 12. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621715">621715</a></td>
<td>Installing an EBF on top of an existing 9.0.2 OEM Intel Solaris install would have removed</p>
<p>				the authentication property of the Network server. The has now been corrected. The Personal server was not affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621822">621822</a></td>
<td>A SQL Anywhere webservice client procedure may have truncated an HTTPS response under certain circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621827">621827</a></td>
<td>Same machine TCPIP broadcasts did not work correctly on Mac OS 10.6. This means that it may have been possible to start multiple database servers with identical names on the same machine when using Mac OS 10.6. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621829">621829</a></td>
<td>If an application attempted to insert data into a proxy table, and one of the columns was an nchar based column, then there was a chance the data would have been truncated. This problem has now been fixed.</p>
<p>				Note, when creating proxy tables to Oracle tables that contain varchar2 columns, the Oracle ODBC driver does not provide enough information for SQL Anywhere to correctly map the varchar2 columns to nvarchar columns. It is therefore strongly recommended that an explicit column list be used when creating proxy tables to Oracle tables containing varchar2 columns, and that the explicit column list appropriately maps the varchar2 columns to nvarchar columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621893">621893</a></td>
<td>Sybase Central would not have displayed Windows services defined by version 9 and earlier software. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR621997">621997</a></td>
<td>Functions and procedures may now have subselects and subqueries in their parameter expressions. Before this change, an error was returned if a subselect or a subquery was used anywhere in a parameter expression.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622016">622016</a></td>
<td>Selecting NEW ST_Point( 1, 2 ).ST_Z( 3 ) would have returned Point(1 2). It should have returned Point Z ( 1 2 3 ). Likewise for ST_M( 4 ). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622017">622017</a></td>
<td>Executing SELECT NEW ST_Point( 1, 2 ).ST_Z() would have returned a value of 0. When there is no Z dimension, ST_Z should return NULL. Likewise for ST_M(), ST_MMin(), ST_MMax(), ST_ZMin(), and ST_ZMax(). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622021">622021</a></td>
<td>Following the fix for Engineering case 588740, the server could have performed slowly when deleting large numbers of rows concurrently. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622024">622024</a></td>
<td>If an application attempted to perform an integrated login from one Windows machine to a SQL Anywhere database server running on a different Windows machine; and the machine that the database server was running on was not the domain controller; and the Windows userid that the application was using was not explicitly mapped in the database; and the application was expecting that the server would instead map the application&#39;s Windows userid to a Windows user group on the Domain Controller, then there was a chance the integrated login would fail to map the Windows group.</p>
<p>				For example:</p>
<p>				1) suppose the domain controller was Windows machine DC, and</p>
<p>				2) suppose the application was running on Windows machine App with Windows userid AppUser, and</p>
<p>				3) suppose the database server was running on Windows machine SAServ with Windows userid ServUser, and</p>
<p>				4) suppose the domain controller had a Windows user group GRP of which AppUser was a member, and</p>
<p>				5) suppose the database did not grant explicit integrated login privileges to AppUser but instead had granted integrated login privileges to GRP instead,</p>
<p>				then there was a chance that the application would fail to establish an integrated login to the db userid that GRP was mapped to. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622058">622058</a></td>
<td>When MobiLink listeners were connected to a MobiLink server via a persistent sync gateway connection, shutting down the listener would have caused the MobiLink server to report &quot;Ping request failed&quot; as an informational message. This message was non-harmful, but misleading. The MobiLink server will now report &quot;Listener request completed&quot; instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622184">622184</a></td>
<td>All CALL statements had the same hash signature when captured by diagnostic tracing, or the Application Profiling wizard. Now, the name of the procedure is incorporated into the signature. This means that the Summary view of captured statements will contain one entry for every procedure, rather than a single entry for all procedures, which makes it easier to identify procedures that need to be looked at for performance reasons.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622352">622352</a></td>
<td>Some valid multi-polygons were incorrectly rejected. For example, a polygon with a hole containing another polygon could have been incorrectly rejected if the contained polygon touched the outer polygon at all of its vertices. </p>
<p>				For example, the following could have given an error inappropriately:</p>
<p>				select ST_GeomFromText( &#39;Polygon ((-7.2 57.914477861, -7.127601901 57.8, -6.9 57.8, -6.9 57.980214095, -7.2 57.936174862, -7.2 57.914477861), (-6.974221298 57.904050613, -7.041167328 57.904889847, -7.061722824 57.953496719, -6.974221298 57.904050613))&#39; ) g,&nbsp;</p>
<p>				ST_GeomFromText( &#39;Polygon ((-7.006389618 57.881387711, -6.993610382 57.918611526, -7.077777863 57.879999161, -7.006389618 57.881387711))&#39; ) m,&nbsp;</p>
<p>				g.ST_SymDifference( m )&nbsp; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622512">622512</a></td>
<td>If an application was connected via jConnect 7 or Open Client 15.5, and the application fetched a datetime value, then the fractional seconds portion of the value would have been returned with six digits of precision; however, fetching a timestamp value would still have returned 1/300th of a second precision. This problem has been fixed and fetching either datetime or timestamp values using jConnect 7 or Open Client 15.5 will now return the full six digits of precision.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622520">622520</a></td>
<td>The following methods had poorly defined behaviour when applied to an empty point. </p>
<p>				ST_Point::ST_X()</p>
<p>				ST_Point::ST_Y()</p>
<p>				ST_Point::ST_M()</p>
<p>				ST_Point::ST_Z()</p>
<p>				ST_Point::ST_Lat()</p>
<p>				ST_Point::ST_Long()</p>
<p>				ST_Point::ST_X(Double)</p>
<p>				ST_Point::ST_Y(Double)</p>
<p>				ST_Point::ST_M(Double)</p>
<p>				ST_Point::ST_Z(Double)</p>
<p>				ST_Point::ST_Lat(Double)</p>
<p>				ST_Point::ST_Long(Double)</p>
<p>				They have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622552">622552</a></td>
<td>A misconfigured SQL Anywhere webservice function may have caused the server to crash when the function was executed. The problem was specific to a function declaration (not a procedure) that was configured as TYPE &#39;HTTP:POST:&lt;mimetype&gt;&#39; (ie. mimetype = text/xml) that declares, but does not utilize, all substitution parameters. This has been fixed. </p>
<p>				The following illustrates the problem, note that the clause consuming the substitution parameter is commented out:</p>
<p>				create function bad_params(str long varchar, len int)</p>
<p>				returns long varchar</p>
<p>				url &#39;http://127.0.0.1/no_serv</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622720">622720</a></td>
<td>Application using the Ultralite runtime would have sometimes looped endlessly following a synchronization stream error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622759">622759</a></td>
<td>When editing table data in an UltraLite database, Sybase Central would not have confirmed delete, update and cancel operations, even when the corresponding UltraLite plug-in preferences were set to confirm these operations. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622761">622761</a></td>
<td>When editing table data in an UltraLite database, if a row was deleted and the connection to the database was immediately dropped, then the delete would not have been committed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622767">622767</a></td>
<td>If a user&#39;s property sheet was opened, the password changed, Apply clicked and then the password changed and Apply clicked again, Sybase Central would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622789">622789</a></td>
<td>Applications running on on Windows 7 64 bit systems could have crashed when canceling the methods EndExecuteReader or EndExecuteNonQuery. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622866">622866</a></td>
<td>If the MobiLink Server had been started with the &quot;-xo http&quot; or &quot;-xo https&quot; command line options to accept http[s] synchronizations from version 9 or lower MobiLink clients, and the port that was listening for synchronizations received an HTTP request from an HTTP client other than an UltraLite or SQL Anywhere MobiLink client (for example, a web browser), the MobiLink Server would have reported an HTTP error to the HTTP client, posted an error to the ML Server log, but would not have freed the worker thread in the ML Server. Multiple requests from other HTTP clients would have eventually resulted in no threads available to handle additional synchronizations. This has now been fixed, and the worker thread is returned to the pool of available worker threads after the error is reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622871">622871</a></td>
<td>A NullPointerException was possible when calling a DATEFORMAT function that had a host variable as the first argument. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622875">622875</a></td>
<td>If a procedure or function was simple enough that it was inlined during semantic query transformations, and the procedure or function contained uses of a parameter with a different case than the case in the declared parameter list, then the statement could have failed with an error (column not found). In versions 10.0.1 and 11, only simple procedures would have had this problem. In version 12.0.0 (beta), simple user-defined functions could also have exposed this problem. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622889">622889</a></td>
<td>When entering a file location in the Deploy Synchronization Model wizard, typing in a file name that did not include the folder would have resulted in an error when clicking Next. This has been fixed. A workaround is to specify the folder.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622934">622934</a></td>
<td>If a file browser was open in Sybase Central, the Interactive SQL utility, the Console utility, or the MobiLink Monitor, it was possible to crash the program by clicking on the main application window, pressing the Esc key, and then closing the file browser. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR622944">622944</a></td>
<td>When attempting to Cut and Paste a synchronization profile, the Paste operation would have failed. This has been fixed.</p>
<p>				Also, if a synchronization profile was first copied to the clipboard and then modified before being pasted back from the clipboard into Sybase Central, then the pasted synchronization profile would have contained the modifications. This behaviour was at odds with all standard clipboard implementations and has been corrected. Now, a copy of the synchronization profile is placed in the clipboard and a copy is pasted from the clipboard so that the pasted object exactly matches the copied object.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623095">623095</a></td>
<td>The text completer would have suggested names of text index tables, which was not useful. These table names are no longer listed by the text completer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623106">623106</a></td>
<td>New http, https and oe stream options have been added to the MobiLink server that will cause it to print additional errors, analogous to the errors printed by the -vf option.</p>
<p>				Usage: </p>
<p>				-x http(...;log_bad_request={yes|no})</p>
<p>				-x https(...;log_bad_request={yes|no})</p>
<p>				-x oe(...;log_bad_request={yes|no})</p>
<p>				The default value for these noew options is &quot;no&quot;.</p>
<p>				If log_bad_request is enabled and a request disconnects before the server receives a complete set of HTTP headers, the server will print these errors:</p>
<p>				[-10117] Stream Error: Failed reading an incomplete HTTP request</p>
<p>				[-10117] Stream Error: This connection will be abandoned because of previous errors</p>
<p>				If log_bad_request is enabled and a request contains an unknown User-Agent or unknown request type, the server will print these errors:</p>
<p>				[-10117] Stream Error: Unknown HTTP User-Agent or request type</p>
<p>				[-10117] Stream Error: This connection will be abandoned because of previous errors</p>
<p>				This option is most useful when debugging network issues. For example, you can connect to the ML server using a web browser on the remote device and if the device can reach the server, then these errors will be printed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623115">623115</a></td>
<td>Sometimes, when printing the error -10193, &quot;Unable to load Assembly ... into domain ...&quot;, the MobiLink server would have failed to print why it failed to load the assembly. Also, the MobiLink server would have spuriously printed this error whenever it failed to find a class in the loaded assemblies. These issues have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623270">623270</a></td>
<td>The server would have crashed if a parallel archive backup was executed with TRANSACTION LOG ONLY and TRANSACTION LOG RENAME clauses. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623276">623276</a></td>
<td>On Windows systems, a reload of a pre-version 10 database file could have hung. Unix </p>
<p>				systems were not affected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623280">623280</a></td>
<td>Renaming a table using its property sheet, and then attempting to open a column&#39;s details on the Property sheet&#39;s Columns tab, would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623281">623281</a></td>
<td>Doing absolute fetches from a cursor would have slowed down after one or more tables had been updated many times. Restarting the server would have resolved the problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623292">623292</a></td>
<td>The sa_get_request_times and sa_get_request_profile stored procedures did not properly handle request logs created with a non-zero value for the max_client_statements_cached database option when a connection executed the same statement more than once. The number of uses and time used for such statements was reported incorrectly. This has been fixed.</p>
<p>				A workaround is to set max_client_statements_cached to 0 before creating the request log. Note that if a request log is to be analyzed using the tracetime.pl Perl script, it must also be generated with max_client_statements_cached set to 0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623303">623303</a></td>
<td>Database corruption was possible when there were multiple connections and UPDATE statements are used with one of them. A COMMIT on a connection, when another connection had an uncommitted UPDATE, could have caused the old row in the UPDATE transaction to be incorrectly given the object_id of where that row appeared in the uncommit log. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623308">623308</a></td>
<td>Several of the spatial methods were returning incorrect results when given empty shapes as input:</p>
<p>				- ST_IntersectsRect should return NULL, but was returning FALSE</p>
<p>				- ST_Relate( ST_Point() ) should return NULL, but was returning &#39;FFFFFFFFF&#39;</p>
<p>				- ST_SnapToGrid( ST_Point(), x, y, z, m ) should return NULL, but was returning an empty point</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623309">623309</a></td>
<td>Calling method ST_IsWorld() on an empty polygon would have crashed the server. This has been corrected and ST_IsWorld() now returns false for an empty polygon.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623323">623323</a></td>
<td>On the last page of the Create Database wizard, if a database name was specified that differed from the database file name, then the database name would have been ignored. The database would have appeared in the tree using the file name, not the database name that was specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623432">623432</a></td>
<td>The database server could have leaked memory in rare circumstances when strings </p>
<p>				were being accessed concurrently. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623481">623481</a></td>
<td>If the Set Primary Key wizard was proceeded through without making any changes and the Finish button was clicked, then an extraneous error message would have been shown. Now the wizard simply closes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623487">623487</a></td>
<td>Many spatial methods had incorrect behaviour and/or generated inappropriate errors or assertions when given empty geometries as input parameters. Specifically, the behaviour of the following functions was incorrect:</p>
<p>				ST_LineString::ST_LineStringAggr</p>
<p>				ST_Geometry::ST_LinearUnHash</p>
<p>				ST_Geometry::ST_Transform</p>
<p>				new ST_LineString </p>
<p>				new ST_CircularString </p>
<p>				new ST_CompoundCurve </p>
<p>				new ST_Polygon </p>
<p>				new ST_CurvePolygon </p>
<p>				new ST_GeomCollection </p>
<p>				new ST_MultiCurve</p>
<p>				new ST_MultiLineString</p>
<p>				new ST_MultiPoint</p>
<p>				new ST_MultiPolygon</p>
<p>				new ST_MultiSurface</p>
<p>				These methods have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623597">623597</a></td>
<td>If a table&#39;s property sheet, or its Primary Key wizard, was opened while the table&#39;s Data tab was showing, then any attempt to modify the table would have resulted in a &quot;Schema upgrade not currently allowed&quot; error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623610">623610</a></td>
<td>Processor topology detection for x86/x64 processors has been improved to detect new SMT processors correctly (ie processors with multiple threads per core that are not the older &quot;hyperthread&quot; implementation). Previously, a quad-core i7 (for example) with two threads per core would be detected as 8 cores rather than 4 cores with 2 threads per core. The algorithm for distributing database server threads among logical processors when using less than the maximum concurrency permitted (via the database server -gtc switch) now correctly takes the 3-level chip/core/thread topology into consideration. Generally, this change does not affect licensing since association of a logical processor with the actual chip containing each logical processor was still correct in the old code with the possible exception of some newer Intel 6-core processors.</p>
<p>				On Mac OS X where the operating system does not provide interfaces to control processor affinity, exact processor topology cannot be determined, so SQL Anywhere treats each logical processor as a separate package or &quot;socket&quot;. On multicore and SMT processors, OSX users should purchase the correct license for the hardware they are using, but install a license that will allow the correct amount of concurrency. For example on a quad-core i7 with two threads per core, purchase a license for 1 CPU &quot;socket&quot; but install a license for 8 cpu &quot;sockets&quot; since each processor thread will be treated as a separate CPU socket.</p>
<p>				Feature tracking code has also been changed so that the 3-level topology, CPU brand string and CPU info registers (which do not form a unique machine identifier) are reported when crash reports are sent to Sybase.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623758">623758</a></td>
<td>If an attempt to set a database option in the Options dialog resulted in the error &quot;Invalid setting for option &#39;&lt;option-name&gt;&#39;&quot;, the Options dialog would then have shown the invalid option value in the options table the next time the dialog was opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623769">623769</a></td>
<td>If a TDS based application using a multi-byte character set, connected to an SA database using a single-byte character set, subsequently fetched a char(n) or varchar(n) value, and the char/varchar value resulted in greater than n bytes when converted to the client&#39;s multi-byte character set, then the client would have received an incomplete value. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623779">623779</a></td>
<td>Servers running databases with large schemas may experience periods of unresponsiveness </p>
<p>				at idle checkpoint time. The performance of checkpoints has been improved to reduce the length of this interval.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623785">623785</a></td>
<td>Some popular web mapping and visualization applications (Google Earth, Bing Maps, ArcGIS Online) use a Mercator projection based on a spherical model of the Earth. Ignoring the flattening at the poles can lead to errors of up to 800m in position and up to 0.7 percent in scale, but this simplification allows for more efficient projection in these applications. A new spatial reference system with srs_id=3857 has been added to the results of st_geometry_predefined_srs() and the Sybase Central plug in. This srs_id 3857 can be used to work with coordinates provided from these popular applications.</p>
<p>				Note that ID 3857 as been defined by authority EPSG to refer to this modified spherical Mercator projection. Before this code was defined by EPSG, some applications used an application-defined code 900913 (*) to represent this SRS. The code 3857 is recommended, but compatibility with older applications can be achieved by manually copying the SRS at id 3857 to id 900913 if necessary. </p>
<p>				In addition, comments are no longer automatically defined for spatial reference systems and units of measure that are pre-defined in a newly created database or created using the sa_install_feature(&#39;&#39;st_geometry_predefined_srs&#39;) or sa_install_feature(&#39;st_geometry_predefined_uom&#39;).</p>
<p>				(*) The code 900913 is selected by these application because of the resemblance between 9 and lowercase g, giving (900913 == google).</p>
<p>http://www.google.com/webhp?hl=xx-hacker&amp;tab=iw</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623805">623805</a></td>
<td>The Relay Server State Manager (rshost) could have crashed if initialization failed before a log file was successfully created. Failure to create the log file, empty config file or missing required sections, were some of the conditions that could have lead to the crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR623891">623891</a></td>
<td>1) If:</p>
<p>				- the on_tsql_error database option was set to &#39;conditional&#39; or &#39;stop&#39;</p>
<p>				- the continue_after_raiserror database option was set to &#39;off&#39;</p>
<p>				- a RAISERROR statement was executed in a procedure with an exception handler </p>
<p>				- the exception handler executed a RESIGNAL statement</p>
<p>				then the procedure&#39;s caller would not have been able to obtain the error code used in the RAISERROR statement by examining the SQLCODE variable. The SQLCODE value would be -631 (SQLE_RAISERROR_STMT).</p>
<p>				2) If:</p>
<p>				- the on_tsql_error database option was set to &#39;conditional&#39; or &#39;stop&#39;</p>
<p>				- the continue_after_raiserror database option was set to &#39;off&#39;</p>
<p>				- a RAISERROR statement was executed in a trigger with an exception handler </p>
<p>				- the exception handler executed a RESIGNAL statement</p>
<p>				then the error would not have been seen by the statement which caused the trigger to fire.</p>
<p>				This has been fixed. In case 1 above, the value of SQLCODE will now be the error code used in the RAISERROR statement. In case 2, the error will now not be suppressed by the trigger.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624021">624021</a></td>
<td>The documentation erroneously indicated that for Windows and Windows CE, if no trusted certificates were provided, MobiLink clients would automatically load the certificates from the OS&#39;s trusted certificate store. This feature has now been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624034">624034</a></td>
<td>Clicking a column header name in the Results panel to sort the column when all of the rows had not been fetched yet, could have caused the Interactive SQL utility to report an internal error. The problem was timing-sensitive, and did not happen every time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624040">624040</a></td>
<td>In the Interactive SQL utility, the DESCRIBE CONNECTION command could have returned garbage characters if the connection string contained non-ASCII characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624041">624041</a></td>
<td>If the action command in the message handler did not contain any arguments, the MobiLink Listener may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624046">624046</a></td>
<td>A DML statement inside a derived table block (i.e. SELECT FROM (INSERT/UPDATE/DELETE/MERGE) REFERENCING (...)) could have failed to respect check constraints. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624047">624047</a></td>
<td>Validating or unloading an empty table could have caused the server to fail an assertion when the database had been started read-only. This would only have happened if the table contained an index, and a truncate table had just been done. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624179">624179</a></td>
<td>If an application executed an INSERT statement that contained a file name with escaped single quotes as follows:</p>
<p>				INSERT INTO directoryTab(file_name, contents) VALUES( &#39;he&#39;&#39;l&#39;&#39;lo.txt&#39;, 0x0 )</p>
<p>				where directoryTab was a directory access table, then the resulting file would incorrectly have been named &quot;he&#39;l&#39;lo.txtxt&quot;, instead of the expected name &quot;he&#39;l&#39;lo.txt&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624183">624183</a></td>
<td>As a result of the changes for Engineering case 585282, the maximum packet size for Open Client and jConnect applications was increased from 512 bytes to 4096 bytes. These changes have been extended to allow Open Client and jConnect applications to now negotiate a maximum packet size of 16000 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624185">624185</a></td>
<td>When using the ST_SnapToGrid overload that specifies an origin point and x/y/z/m grid sizes, the server could have used the wrong grid size for M coordinates. This has now been corrected.</p>
<p>				For example, the following query returned the wrong answer:</p>
<p>				select new ST_Point( 1, 2, 3, 4, 504326 ) </p>
<p>				.ST_SnapToGrid( new ST_Point( 3, 4, 504326 ), </p>
<p>				0.1, 0.2, 10, 10 )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624222">624222</a></td>
<td>On Windows Vista and later systems running with a language that was not English, the user needed to be a member of the Administrator group in order to start SQL Anywhere Monitor or configure Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624352">624352</a></td>
<td>When run on a Windows CE device, the QAnywhere Agent for UltraLite would have failed to connect with a MobiLink server running on the desktop through ActiveSync, if no -x option was specified. The QAnywhere Agent was using &quot;host=localhost&quot; for its stream parameters when no -x option was specified. Now, the agent does not specify stream parameters in this case, letting the UltraLite sync stream choose the default host IP address.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624373">624373</a></td>
<td>For a database created using pre-12.x software and then upgraded using 12.x beta software, Sybase Central would not have supported new 12.x features, such as spatial reference systems and sequences. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624404">624404</a></td>
<td>If an event made a call out to the Java external environment, then the Java environment would have leaked memory with every iteration of the event. The result would have been an eventual &#39;out of memory&#39; exception from the Java VM. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624405">624405</a></td>
<td>Adding a member to an empty destination alias would have caused a crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624555">624555</a></td>
<td>When adding a new table to the remote database schema in a synchronization model, if the remote schema was based on a consolidated database other than SQL Anywhere, and the table was referenced by foreign keys in other tables already copied from the consolidated schema to the remote schema, then an internal error would have occurred. This has been fixed.</p>
<p>				Note, a workaround is to add the table to the remote schema by using the Update Schema menu item to update the remote schema.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624574">624574</a></td>
<td>Attempting to connect to a newly created message store at the end of the Client Store wizard could have failed there already was network server running the computer and its &quot;-gd ALL&quot; option was not used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624586">624586</a></td>
<td>The Validate Index statement would have placed an exclusive lock on the table, preventing other connections from accessing the table. Alternatively, the connection performing the validate could have blocked waiting for exclusive access to the table. This has been changed so that Validate Index no longer places an exclusive lock on the table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624727">624727</a></td>
<td>Sybase Central could have crashed when opening the Procedures &amp; Functions folder. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624801">624801</a></td>
<td>An HTTP protocol option specifying a port with no value would have started a listener on the next available port. Specifying a port with no value, or providing a value of zero, is no longer accepted. All protocol options that take a numeric value will no longer accept an empty value as a zero default.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624809">624809</a></td>
<td>Support for .NET Framework 4 and Visual Studio 2010 has now been added to the SQL Anywhere ADO.Net provider. Three versions of the provider are installed. One for .NET 2.0 / 3.0, one for .NET 3.5, and one for .NET 4.0. Each version contains both assembly and policy files.</p>
<p>				Here is a list of the files:</p>
<p>				(1) .NET 2.0 / 3.0</p>
<p>				...\Assembly\V2\iAnywhere.Data.SQLAnywhere.config</p>
<p>				...\Assembly\V2\iAnywhere.Data.SQLAnywhere.dll</p>
<p>				...\Assembly\V2\iAnywhere.Data.SQLAnywhere.xml</p>
<p>				...\Assembly\V2\policy.11.0.iAnywhere.Data.SQLAnywhere.dll</p>
<p>				(2) .NET 3.5</p>
<p>				...\Assembly\V3.5\iAnywhere.Data.SQLAnywhere.v3.5.config</p>
<p>				...\Assembly\V3.5\iAnywhere.Data.SQLAnywhere.v3.5.dll</p>
<p>				...\Assembly\V3.5\iAnywhere.Data.SQLAnywhere.v3.5.xml</p>
<p>				...\Assembly\V3.5\policy.11.0.iAnywhere.Data.SQLAnywhere.v3.5.dll</p>
<p>				(3) .NET 4.0</p>
<p>				...\Assembly\V4\iAnywhere.Data.SQLAnywhere.v4.0.config</p>
<p>				...\Assembly\V4\iAnywhere.Data.SQLAnywhere.v4.0.dll</p>
<p>				...\Assembly\V4\iAnywhere.Data.SQLAnywhere.v4.0.xml</p>
<p>				...\Assembly\V4\policy.11.0.iAnywhere.Data.SQLAnywhere.v4.0.dll</p>
<p>				...\Assembly\V4\SSDLToSA11.tt</p>
<p>				The iAnywhere.Data.SQLAnywhere assembly reference can be added in Visual Studio with the Add Reference dialog. Use the one depending on the .NET project as follows:</p>
<p>				iAnywhere.Data.SQLAnywhere for .NET 2 should be used for .NET 2.0 / 3.0 projects </p>
<p>				iAnywhere.Data.SQLAnywhere for .NET 3.5 should be used for .NET 3.5 projects</p>
<p>				iAnywhere.Data.SQLAnywhere for .NET 4 should be used for .NET 4 projects</p>
<p>				SSDLToSA11.tt is used for generating database schema DDL for Entity Data Models. The SQL Anywhere installer copies this file to the Visual Studio 2010 directory. The DDL Generation property should be set to this file when generating database schema DDL for Entity Data Models.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624826">624826</a></td>
<td>Database corruption was possible when a null byte array was assigned to a host variable using the PreparedStatement set method. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624832">624832</a></td>
<td>The server could have failed to generate a valid internal representation for a Round Earth polygon of a particular shape if the polygon was crossed by equator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624956">624956</a></td>
<td>With dbisqlc, when invoking the &quot;OUTPUT TO&quot; statement without a FORMAT clause, or before explicitly setting the OUTPUT_FORMAT option at least once in a session, the generated output file would not have been in the expected &quot;TEXT&quot; output format (ie comma-separated values). This problem has been fixed.</p>
<p>				A related change has also been made to the values accepted for the SCREEN_FORMAT option by dbisqlc on UNIX platforms. Prior to this change, dbisqlc accepted both &quot;TEXT&quot; (for the default columnar display) and &quot;ASCII&quot; (for comma-separated values). These options have been renamed to COLUMNS and CSV respectively. The old values of TEXT and ASCII are still accepted but are deprecated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624960">624960</a></td>
<td>Each time a table or index was dropped, 16 bytes of store memory was leaked. This could have resulted in a slow growth of the database file over time with an application that created and dropped many tables or indexes. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624971">624971</a></td>
<td>The database server could have crashed when recovering a database with multiple dbspaces. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624974">624974</a></td>
<td>Following the changes for Engineering case 621443, if an application made an external environment call, and the external environment crashed during that call, then there was a very rare chance the server would also have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624986">624986</a></td>
<td>If the Interactive SQL fast launcher was enabled, and there was enough connection information on startup to attempt a connection, the main dbisql window could have, very occasionally, got into a state where it did not paint correctly. This has been fixed.</p>
<p>				There are a number of workarounds:</p>
<p>				- Minimize and then restore the dbisql window, or</p>
<p>				- Resize the window, or </p>
<p>				- Turn off the fast launcher for dbisql</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624989">624989</a></td>
<td>Statements containing predicates of the form T.X = R.X where T.X and R.X have different domains could have had poor performance due to a less than optimal access plan generated by the optimizer. Such predicates were not using a join histogram to estimate the selectivity of the predicate. This has been fixed so that join histograms are now built as long as the domains of the columns are both numeric data types. Numeric datatypes include the following:</p>
<p>				BIGINT</p>
<p>				BIT</p>
<p>				DECIMAL</p>
<p>				DOUBLE</p>
<p>				FLOAT</p>
<p>				INTEGER</p>
<p>				NUMERIC</p>
<p>				REAL</p>
<p>				SMALLINT</p>
<p>				TINYINT</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR624991">624991</a></td>
<td>If a table was created with a primary key column declared as GLOBAL AUTOINCREMENT when the global_database_id option was set to 0, a performance warning claiming that the column was not indexed would have been written to the server console. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625011">625011</a></td>
<td>The iAnywhere and SQL Anywhere JDBC drivers only supported the PreparedStatement methods addBatch() and executeBatch(). Support has now been added for the Statement methods addBatch(), clearBatch() and executeBatch(). Due to the fact that the JDBC specification is unclear on the behaviour of Statement.executeBatch(), the following notes should be considered when using this method with these JDBC drivers:</p>
<p>				1) Processing of the batch stops immediately upon encountering a SQL exception or result set. If processing of the batch stops, then a BatchUpdateException will be thrown by Statement.executeBatch(). Calling getUpdateCounts() on the BatchUpdateException will return an integer array of row counts where the set of counts prior to the batch failure will contain a valid non-negative update count; while all counts at the point of the batch failure and beyond will contain a -1. Casting the BatchUpdateCount to a SQLException will provide additional details as to why batch processing was stopped.</p>
<p>				2) The batch is only cleared when Statement.clearBatch() is explicitly called. As a result, calling Statement.executeBatch() repeatedly will re-execute the batch over and over again. In addition, calling Statement.execute( sql ) or Statement.executeQuery( sql ) will correctly execute the statement with the &quot;sql&quot; argument, but will not clear the underlying batch. Hence, calling Statement.executeBatch() followed by Statement.execute( sql ) followed by Statement.executeBatch() will execute the set of batched statements, then execute &quot;sql&quot; and then execute the set of batched statements again.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625189">625189</a></td>
<td>Repeatedly inserting and deleting rows with long strings may have lead to unconstrained database growth. This was more likely to occur if the server was continually under heavy load. In 11.x servers, snapshot isolation must have been enabled for this problem to have occurred. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625219">625219</a></td>
<td>A prepared statement was not being dropped when an exception occurred while calling the method SACommand.ExecuteReader. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625305">625305</a></td>
<td>Queries that reported warnings could have caused dbisqlc to crash, hang, report that the prepared-statement resource limit had been exceeded, or misbehave in a variety of other ways. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625314">625314</a></td>
<td>It is now possible to use the Script Execution utility (dbrunsql) to reload a database without displaying the GUI, but still log output messages (results) to a file. Previously, if the -q option was not used the dbrunsql gui was shown regardless of the -g setting. Now, the -q and -g switches work together. If -g- is specified, the GUI will not be shown except for error messages. The -q option now only controls if data and warning messages shall be output to the GUI, the console, and/or an output file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625325">625325</a></td>
<td>When using the Service utility to delete a service that was running, the warning &quot;The specified service is running. The service will be deleted when is is stopped.&quot; was reported. The warning should read &quot;The specified service is running. The service will be deleted when it is stopped.&quot; The wording has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625329">625329</a></td>
<td>The Service utility was not reporting the warning &quot;The specified service is running. The service will be deleted when it is stopped.&quot; when deleting a running service. It was failing to detect the running state of the service during the delete and failing to report the warning as expected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625353">625353</a></td>
<td>Code that attempted to prevent a divide-by-zero condition may have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625465">625465</a></td>
<td>When deploying SQL Anywhere using the Deployment wizard, the PHP Extenv DLLs: (php-&lt;PHP version&gt;_sqlanywhere_extenv11.dll) and PHP SQL Anywhere DLLs (php-&lt;PHP_version&gt;_sqlanywhere.dll) were included, but not the file dbcapi.dll. This has been corrected so that dbcapi.dll is now deployed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625466">625466</a></td>
<td>When run on a Windows 2008 Server (AMD64) machine, the Sybase Central fast launcher could have failed to re-launch Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_77.htm#CR625493">625493</a></td>
<td>If an application connected using a version of jConnect that did not support bigtime, and the application subsequently prepared a statement that consisted of a batch of insert and select statements, then there was a chance the server would have incorrectly inserted a value of 00:00:00.0 for the time value if one of the parameters to the insert was of type time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625496">625496</a></td>
<td>In some cases, the server could have incorrectly returned an overflow error when computing a division of DOUBLE values. This has been fixed. A workaround is to use the following server command line &quot;-hW OverflowError2&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625515">625515</a></td>
<td>Sybase Central did not allow stopping a Windows service in a &quot;Delete pending&quot; state. This is now fixed. The Stop menu item is now enabled for running services, regardless of</p>
<p>				whether a delete is pending.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625625">625625</a></td>
<td>Sybase Central would have generated an error when attempting to create a notifier, gateway or carrier with any of the following characters in its name: &#39;[&#39;, &#39;]&#39;, &#39;^&#39;, &#39;%&#39;, &#39;_&#39;. A similar error would have occurred when attempting to rename a notifier, gateway or carrier and any of these characters were used in the new name. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625641">625641</a></td>
<td>The Interactive SQL utility could have reported an error on some Windows computers that its preferences or history file could not be saved. The error message quoted a file name which typically included a directory under the &quot;Documents and Settings&quot; directory which was not the home directory of the current user. This has been fixed.</p>
<p>				Note, this same problem has the potential to affect Sybase Central, DBConsole, and MobiLink Monitor, though their symptoms are likely to be different.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625647">625647</a></td>
<td>Changing the timestamp_format option from its default value of &quot;YYYY-MM-DD HH:NN:SS.SSS&quot; could have caused a &quot;Cannot convert &#39;&lt;value&gt;&#39; to a timestamp&quot; error to have occurred when selecting the Events or Maintenance Plans folders in the tree. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625759">625759</a></td>
<td>When in the Procedure debugger, clicking on the header of the breakpoint icon column caused an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625800">625800</a></td>
<td>Registering the plug-in, but not loading it immediately, would have caused an exception to occur. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625819">625819</a></td>
<td>If checkpoints on a mirror server took a long time to complete, possibly due to a large cache with many dirty pages, then applications performing updates on the primary server could have been blocked until the checkpoint completed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625866">625866</a></td>
<td>A SQL statement whose text exceeded 64K could have caused a crash.This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR625933">625933</a></td>
<td>If an application that was connected to a server running on a big endian machine attempted to query data via the Remote Data Access feature with the 64-bit ASE ODBC driver, then there is a chance the server would have incorrectly reported a truncation error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626091">626091</a></td>
<td>When SQLAnywhere reported the ASE label for the &quot;Big5&quot; character set, it incorrectly reported &quot;Big5&quot;. SQLAnywhere now reports &quot;cp950&quot; as the ASE label for the Big5 character set. As far as SQL Anywhere and ICU are concerned, these two character sets are distinct (but very similar), but ASE makes no such distinction. The ASE version of the label is generally not used directly by SQL Anywhere, but is provided to users who need to use ASE libraries. Typically, a client would obtain the ASE label via a call such as db_extended_property( &#39;charset&#39;, &#39;ase&#39; ).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626145">626145</a></td>
<td>If the Stored Procedure Debugger was connected to a database, execution of SQL Anywhere Web Service procedures for that database could have been very slow. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626151">626151</a></td>
<td>If an application connected to an authenticated server made an external environment call, and the call took more than 30 seconds to complete, then the application would have hung. The check for ensuring that an external connection was properly authenticated was incorrect, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626209">626209</a></td>
<td>In very rare cases, the server may have crashed if a simple SELECT statement that bypassed optimization used a BETWEEN predicate with a high value that was not known until execution time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626241">626241</a></td>
<td>The UltraLiteJ Database Load utility (ULjLoad) would have failed with a syntax error for tables with a name that was a reserved word, and either it was involved in a foreign key, or it had data in the source XML file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626255">626255</a></td>
<td>If a statement in an event caused a deadlock or blocking error the first time it was executed, an assertion error (107001 Duplicate table in UPDATE statement) could have been given the next time the event was executed. Now an &quot;invalid statement&quot; error is given in this case. A workaround is to define the body of the event as a procedure and call the procedure from the event.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626295">626295</a></td>
<td>If a remote query that involved GROUP BY was executed in no-passthrough mode, and the server ran into a low memory situation, then there was a chance the query would have failed with an &quot;update operation attempted on non-updatable remote query&quot; error. This problem has now been fixed and the query will now successfully complete without error.</p>
<p>				Note that a workaround for this problem is to increase the amount of memory that is available to the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626420">626420</a></td>
<td>If the server executed a &#39;SET rowcount&#39; statement with a host variable inside a batch, then the server would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626459">626459</a></td>
<td>A UDP Gateway&#39;s property sheet would have shown the default destination port as -1. This has been corrected so that the correct value of 5001 is now shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626460">626460</a></td>
<td>With the Indexes folder selected in the tree, attempting to delete a foreign key and its primary constraint in a single delete operation could have crashed Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626469">626469</a></td>
<td>In rare situations, the UltraLite plugin could have caused Sybase Central to crash when being closed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626474">626474</a></td>
<td>The SQL cited in the &quot;ISQL Error&quot; window did not display blank lines. As a result, the line number in the database error message might not have corresponded to the displayed SQL if the statement contained blank lines. This has been fixed.</p>
<p>				Also, the line and column shown in the status bar of the main DBISQL window is no longer updated if the caret (insertion point) is moved in the text field that shows the SQL in the &quot;ISQL Error&quot; window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626480">626480</a></td>
<td>An extension to the TLS protocol for session renegotiation has been made to fix a recently discovered vulnerability (RFC 5746). Although SQL Anywhere software is not directly vulnerable, third-party servers that it communicates through may be vulnerable. SA clients now support this TLS extension which will allow vulnerable third-party servers to be secured.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626481">626481</a></td>
<td>The caret had to be within a statement&#39;s text for the &quot;single step&quot; menu item (SHIFT+F9) to work. This restriction has now been relaxed so that if the caret is in whitespace or a comment before a statement, &quot;single step&quot; executes the next statement. </p>
<p>				For example, consider the following code:</p>
<p>				/* </p>
<p>				Lorem ipsum</p>
<p>				*/</p>
<p>				select 123;</p>
<p>				If the caret is anywhere within the comment, or on the blank line before the SELECT statement, pressing SHIFT+F9 now executes the SELECT statement. Previously, an error message saying the caret was not on a statement would have been displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626617">626617</a></td>
<td>Synchronization requests from clients prior to version 11 that were using a UTF8-encoded database, would have failed against 64-bit MobiLink servers running on Unix systems. This has been fixed.</p>
<p>				Note, this problem does not occur with the 32-bit versions of the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626622">626622</a></td>
<td>If a spatial reference system was created with SRID a and then a subsequent SRS was created with SRID a (either by modifying or dropping/creating), then the stale settings from the first spatial reference system could have been used. The stale values would have persisted until the server was restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626662">626662</a></td>
<td>The Load Database wizard would crash on a second attempt if the first attempt failed, or was canceled, before completion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626666">626666</a></td>
<td>The UltraLite CustDB sample application About dialog incorrectly stated &quot;for Windows CE&quot; for all Windows platforms. This has been removed from the dialog text.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626769">626769</a></td>
<td>If old transaction log files on a primary server were deleted while the server was running, subsequent BACKUP/RENAME operations would not have resulted in the copies of these logs on the mirror server being deleted. This has been fixed.</p>
<p>				A workaround is to restart both servers and perform another BACKUP/RENAME.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626779">626779</a></td>
<td>Some harddisk drivers on Windows and Linux are known not to execute drive cache FLUSH commands when applications request them; however, all platforms may be affected by similar issues. When the database server shuts down because of a system shutdown, reboot or hibernate, the database server now delays a short while (3 seconds) after the last I/O is performed to allow a little bit of time for cached data in the drives to be written to the disk. On UNIX platforms, shutting down the server via SIGTERM is assumed to be due to a system shutdown or reboot.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR626951">626951</a></td>
<td>The iAS Oracle ODBC driver could not detect connection status correctly when a connection was forcibly disconnected by the server. Due to this problem, an application, such as the MobiLink server, might not re-establish a new connection and would have reported the same errors repeatedly. This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627054">627054</a></td>
<td>If the system procedure sa_describe_query() was executed with null as the query parameter then the server would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627061">627061</a></td>
<td>The table on the Synchronization Information page of the Database property sheet was editable, although changing the values had no effect. This has been corrected so that the table is now read-only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627062">627062</a></td>
<td>An INSERT ... ON EXISTING UPDATE DEFAULTS OFF statement did not update columns defined with DEFAULT LAST USER. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627167">627167</a></td>
<td>Because concatenation did not coerce operands to character, a ClassCastException could have been thrown when a non-character operand of concatenation was given. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627228">627228</a></td>
<td>Under very rare circumstances the server could have crashed at startup while updating the SYSHISTORY table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627238">627238</a></td>
<td>The Include directory reference for the UltraLite CustDB sample on Windows Mobile 6 platforms was incorrect. The Windows Mobile 6 platform Include directory pointed to the %sqlanyX%\h directory, but should have pointed to %sqlanyX%\SDK\Include. While correcting this, it was noted that there were inconsistencies in the quoting of the Include directory across the projects. Now all references are quoted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627266">627266</a></td>
<td>An &quot;Out of Memory&quot; assertion may have been raised by the SQL Anywhere OLE DB provider, which may have been indicative of heap corruption. This problem may arise when binding parameters that are described as DBTYPE_IUNKNOWN (a type used for LONG VARCHAR parameters). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627381">627381</a></td>
<td>The changes for Engineering case 619360 introduced a problem such that when creating a database on a BlackBerry SDCard, or flash file store (file:///store), and then releasing the database connection without doing any reads, a Null Pointer exception could have resulted.</p>
<p>				For example:</p>
<p>				conn = DatabaseManager.createDatabase( config );</p>
<p>				conn.release();</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627392">627392</a></td>
<td>Selecting from a DML derived table that used INSERT ON EXISTING UPDATE, would not have returned any rows for rows that were updated. However, the rows were still updated as expected. This has been fixed.</p>
<p>				Note, that you the OLD values for rows that have been updated were not visible; the INSERT derived table only supports the FINAL correlation. To see both the OLD and FINAL row values, use the MERGE statement instead of the INSERT statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627397">627397</a></td>
<td>In very rare cases the server may have crashed when releasing a query plan of a DML statement from the plan cache, and the statement had triggers and publications and used string or numeric values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627403">627403</a></td>
<td>If the Relay Server Outbound Enabler (RSOE) lost connectivity to the Relay Server, and was attempting to restart the worker threads at the same time that it was about to time out a thread working an active request, it was possible for the RSOE to have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627407">627407</a></td>
<td>.NET applications using the SQL Anywhere OLE DB provider may have failed with the following error for OleDbDataReader.Close():</p>
<p>				&quot;Reader Exception: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627526">627526</a></td>
<td>Attempts to create, edit, or modify Windows Mobile proxy ports from the &quot;Connect&quot; dialog would have silently failed on Windows Vista or Windows 7 if user access control (UAC) was enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627527">627527</a></td>
<td>Selecting from a DML derived table over a table that had computed columns, would have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627528">627528</a></td>
<td>If the Support utility (dbsupport) attempted to send an email, either by explicit command using the -cet option or when a crash occurred, and the configured mail server was either non-existent, running on a different port, or down at the time of the attempt (i.e. the connection to the mail server failed), then dbsupport would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627544">627544</a></td>
<td>When deploying a Synchronization Model to files, the generated .bat or .sh files would have invoked programs (such as dbisql and dbmlsync) without specifying the program&#39;s folder, relying on the execution search path to find the program. If an incompatible version of the program was found earlier in the path, it would have been used instead of the compatible version. A workaround was to put the compatible version earlier in the path. This has been fixed. Now the SQLANYnn environment variable (where &#39;nn&#39; is the version number) is used if it is defined. Also, if the 64-bit version of a program exists it will be used instead of the 32-bit version.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627580">627580</a></td>
<td>Calling ST_IntersectsRect would have returned incorrect results if the second point was not above and to the right of the first point.</p>
<p>				Example:</p>
<p>				In the following query, both expr1 and expr2 should return true (the docs state that they are equivalent).</p>
<p>				select ST_Geometry::ST_GeomFromWKT(&#39;Polygon ((1 1, 3 1, 3 3, 1 3, 1 1))&#39;, 0) rect1</p>
<p>				, new ST_Point( 0, 2, 0 ) p1</p>
<p>				, new ST_Point( 2, 0, 0 ) p2</p>
<p>				, new ST_Polygon( p1, p2 ) rect2</p>
<p>				, rect1.ST_Intersects( rect2 ) expr1</p>
<p>				, rect1.ST_IntersectsRect( p1, p2 ) expr2</p>
<p>				;</p>
<p>				Result:</p>
<p>				rect1,p1,p2,rect2,expr1,expr2</p>
<p>				Polygon ((1 1, 3 1, 3 3, 1 3, 1 1)),Point (0 2),Point (2 0),Polygon ((0 0, 2 0, 2 2, 0 2, 0 0)),true,false</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627631">627631</a></td>
<td>In rare cases, a database server used for mirroring could have crashed when the connection to its partner was dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627634">627634</a></td>
<td>The ODBC driver did not support setting of the SQL_ATTR_METADATA_ID attribute for connections using SQLSetConnectAttr(). This setting governs how the string arguments of catalog functions are treated. However, the driver does support this attribute at the statement level using SQLSetStmtAttr(). For SQLSetConnectAttr(), the ODBC driver returned a &quot;driver not capable&quot; error. This problem has been corrected.</p>
<p>				If the setting for SQL_ATTR_METADATA_ID is SQL_TRUE, the string argument of catalog functions are treated as identifiers. The case is not significant. For nondelimited strings, the driver removes any trailing spaces and the string is folded to uppercase. For delimited strings, the driver removes any leading or trailing spaces and takes literally whatever is between the delimiters.</p>
<p>				If the setting is SQL_FALSE, the string arguments of catalog functions are not treated as identifiers. The case is significant. They can either contain a string search pattern or not, depending on the argument. The default value is SQL_FALSE.</p>
<p>				The following example changes the default setting for the entire connection.</p>
<p>				rc = SQLSetConnectAttr( hdbc, SQL_ATTR_METADATA_ID, (SQLPOINTER)SQL_TRUE, SQL_IS_UINTEGER );</p>
<p>				This setting is important for case-sensitive databases. For example, the table name &quot;customers&quot; does not match the table name &quot;Customers&quot; in a function such as SQLPrimaryKeys() unless the SQL_ATTR_METADATA_ID attribute has been set to SQL_TRUE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627649">627649</a></td>
<td>The PHP driver would have crashed when trying to open multiple result sets using SASQL_USE_RESULT or sasql_real_query() and sasql_use_result(). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627657">627657</a></td>
<td>The list of SQL functions suggested by the editor&#39;s Text Completer was incomplete when connected to a version 11.0 database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627672">627672</a></td>
<td>Running the VALIDATE INDEX statement would have committed any previously uncommitted transactions. The VALIDATE INDEX statement no longer performs a COMMIT on its connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627679">627679</a></td>
<td>Queries which used a spatial predicate in any comparison other than &quot;= 1&quot; could have returned a subset of the correct result set. For example, queries using any of the following comparisons in the WHERE clause could have returned too few rows:</p>
<p>				geom1.ST_xxx( geom2 ) &lt;&gt; 1</p>
<p>				geom1.ST_xxx( geom2 ) = 0</p>
<p>				geom1.ST_xxx( geom2 ) = ( subquery )</p>
<p>				geom1.ST_xxx( geom2 ) = geom3.ST_yyy( geom4 )</p>
<p>				where ST_xxx and ST_yyy could be any of the following spatial predicates:</p>
<p>				ST_Intersects</p>
<p>				ST_IntersectsFilter</p>
<p>				ST_IntersectsRect</p>
<p>				ST_Overlaps</p>
<p>				ST_Contains</p>
<p>				ST_ContainsFilter</p>
<p>				ST_Within</p>
<p>				ST_WithinFilter</p>
<p>				ST_Covers</p>
<p>				ST_CoversFilter</p>
<p>				ST_CoveredBy</p>
<p>				ST_CoveredByFilter</p>
<p>				ST_Equals</p>
<p>				ST_EqualsFilter</p>
<p>				ST_OrderingEquals</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627756">627756</a></td>
<td>Copying and pasting a table in Sybase Central would have failed if the table had a primary key with a comment and the owner of the table was changed in the Table Duplicate dialog. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627776">627776</a></td>
<td>On big-endian machines, the 64-bit iAS ODBC driver could have returned random values when an application was trying to retrieve the following statement attributes:</p>
<p>				SQL_ATTR_METADATA_ID</p>
<p>				SQL_ATTR_ROW_NUMBER</p>
<p>				SQL_ATTR_ROW_ARRAY_SIZE</p>
<p>				SQL_ATTR_PARAMSET_SIZE</p>
<p>				SQL_ATTR_MAX_LENGTH</p>
<p>				SQL_ATTR_MAX_ROWS</p>
<p>				The driver was using SQLUINTEGER for these statement attributes. It has been corrected to now use SQLULEN.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627780">627780</a></td>
<td>The Start Server in Background utility (dbspawn) would have failed to start a database server if the full path to the server executable was given and that path contained a space. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627784">627784</a></td>
<td>When creating a Synchronization Model, clearing the Subscription Name field or the Synchronization Field would caused an inappropriate error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627788">627788</a></td>
<td>Selecting the database property &quot;name&quot; for viewing using the SQL Anywhere Console utility </p>
<p>				would have prevented the list of database properties from refreshing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627887">627887</a></td>
<td>Under certain circumstances, newly created MobiLink projects could have appeared twice in the list of projects. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627895">627895</a></td>
<td>Since the change made for Engineering case 616657, very large indexes (3 or more levels) may have become corrupted resulting in an illegal cast java error. When the page size was increased, the number of rows in the table required to trigger this problem increased significantly. A work around would be to increase the page size. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627956">627956</a></td>
<td>When executing a batch of statements, if an INPUT USING statement failed to connect to the source database, an error message was displayed, but execution continued unconditionally. Now, the &quot;on_error&quot; setting is respected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR627968">627968</a></td>
<td>If a FOR statement used a CALL PROCEDURE(), then the server could have crashed while executing the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628115">628115</a></td>
<td>Invalid options to ST_AsBinary() could have caused the server to crash with a stack overflow. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628127">628127</a></td>
<td>When creating a new remote database schema in a synchronization model from a SQL Anywhere consolidated database schema containing VARBIT or LONG VARBIT columns, those columns would be converted to VARCHAR and LONG VARCHAR columns. This has been fixed. Now VARBIT and LONG VARBIT columns are copied to new SQL Anywhere remote databases. UltraLite does not support VARBIT or LONG VARBIT types, so such columns are still converted for new UltraLite databases, but a warning is now given.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628176">628176</a></td>
<td>The changes for Engineering case 626303 caused the rollback after a synchronization failure to possibly corrupt the database. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628253">628253</a></td>
<td>The Interactive SQL utility option isql_print_result_set was being ignored. This has been corrcted so that it is once again respected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628256">628256</a></td>
<td>The Interactive SQL utility (dbisql) could have reported an internal error if a column header for a result was clicked, dbisql had not already cached the entire result and then fetching the remaining rows was canceled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628275">628275</a></td>
<td>Clicking Finish in the Load Database wizard would have caused Sybase Central to crash if a database id was not specified on the last page of the wizard. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628295">628295</a></td>
<td>Select from DML derived tables were allowed in two contexts that have now been excluded by this fix.</p>
<p>				One context was correlated subqueries. The semantics of a correlated DML statement are poorly defined and hard to implement. The following query is not allowed:</p>
<p>				select * from (insert into newids select outerproduct.id) referencing (final as insertedids), product as outerproduct</p>
<p>				The other context was common table expressions, again because the semantics are unclear.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628304">628304</a></td>
<td>If the MINIMUM TERM LENGTH setting of the text configuration used to build a text index was changed to a value greater than 1, prefix terms in phrase queries of full text search could have behaved differently depending on their position in the phrase. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628436">628436</a></td>
<td>In extremely rare timing dependent cases, if a communication error occurred on a mirror or diagnostic tracing server-to-server connection, the server could have crashed, failed an assertion or hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628443">628443</a></td>
<td>Reconfiguring the fast launchers (Interactive SQL and Sybase Central) could have caused the launchers to become unresponsive. The symptom was that there could have been multiple dbisql.exe / scjview.exe processes on the computer rather than just one. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628553">628553</a></td>
<td>Execution of an INPUT statement which used an explicit encocoding of &quot;utf-16&quot; would have worked if the input file had the same endianness as the platform, but would have failed if the endianess was different, even if the byte-order-mark was present in the file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628564">628564</a></td>
<td>The Interactive SQL utility would have returned a function sequence error when connected to an UltraLite database and a query was executed if the 揅ommit after every statement� option was checked (under Tools/Options/UltraLite/Commands). This has now been fixed.</p>
<p>				A workaround is to uncheck the 揅ommit after every statement� option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628573">628573</a></td>
<td>The system procedure xp_startsmtp may have returned error code 104 depending on the SMTP server being used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628587">628587</a></td>
<td>A multithreaded application could have failed to load the unmanaged dll. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628687">628687</a></td>
<td>When converting a string (EWKT or EWKB) to a geometry, the assertion 100103 could have failed if the embedded SRID was not known in the database. The assertion would have caused the current request to fail instead of returning an appropriate error message. This has been fixed; such conversions will now return the error: -1409 &quot;Unknown spatial reference system (%1)&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628705">628705</a></td>
<td>In some cases, the substitution parameters for error messages from spatial operations could have been incorrect.</p>
<p>				For example, the error message for the following query could incorrectly report:</p>
<p>				&quot;A geometry with SRID= is not supported for method 4326.&quot;</p>
<p>				select new st_point(0, 0, 4326) p</p>
<p>				from sys.dummy</p>
<p>				where p.ST_Envelope().st_intersectsfilter(p) = 1</p>
<p>				This has been fixed. The following message is now returned:</p>
<p>				&quot;A geometry with SRID=4326 is not supported for method ST_Envelope().&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628735">628735</a></td>
<td>A full text query with a non-alphanumeric character in a prefix string could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628836">628836</a></td>
<td>Shutting down a database could have caused an assertion failed error 104301 if a GRANT PROFILE had failed because the &quot;diagnostics&quot; user was not a group. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628843">628843</a></td>
<td>If an application connected to a 64-bit Linux server subsequently used the ASE ODBC driver to query proxy tables mapped to an ASE server, and the proxy tables contained long varchar or long binary data, then the long data might have been returned with extra characters or bytes. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628947">628947</a></td>
<td>When transforming a geometry using a Mercator-style projection, the transform could have failed with an error such as the following:</p>
<p>				Error -20 during transformation.</p>
<p>				For example, if the geometry contained points close to the poles of the Earth, this error could have been returned. This error could also have been returned when viewing a geometry in the spatial viewer.</p>
<p>				The Mercator projection (and other cylindrical projections) can not transform polar points because the y coordinate would need to be infinite (cylindrical projections treat the Earth as a rubber balloon in a glass cylinder and inflate the balloon; the projection is taken from the sides of the glass cylinder, and the polar points never touch the sides).</p>
<p>				This has been fixed; when transforming a geometry from a lat/long system to a Cartesian system, if a point close to the North or South pole fails to transform the server moves the latitude of the point a small distance away from the pole along the same longitude. The distance moved is slightly more than (1e-10 radians). This shifting is used only if the point fails to transform without shifting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR628952">628952</a></td>
<td>The MobiLink server would have shown the following error:</p>
<p>				Invalid Date-time segment. Year value out of range</p>
<p>				and aborted any synchronization requests, if the consolidated database was running on an ASE server with a database that was using a multi-byte charset, and the MobiLink server was running on a Windows system that was using a non-English Date format. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629053">629053</a></td>
<td>When sorting a column in the Data Details panel, an error could have occurred stating &quot;Error reading row. Accessing a closed connection object.&quot; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629056">629056</a></td>
<td>Attempting to connect with the connection parameter DatabaseName (DBN), but not DatabaseFile (DBF), to a database that was not running on a network server could have incorrectly resulted in the error &quot;Request to start/stop database denied&quot;. This error could have also occurred on the personal server if the -gd option was used. This has been fixed so that this now results in the &quot;Specified database not found&quot; error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629058">629058</a></td>
<td>A Java VM running inside the MobiLink server could have run out of memory if the server had many requests with different script versions and some sync scripts made calls to DBConnectionContext.getConnection(). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629073">629073</a></td>
<td>If a stored procedure or user-defined function contained a statement that referenced a connection level variable (created with CREATE VARIABLE), then it was possible for the statement to behave improperly if plan caching was used by the server. The statement could have used the NULL SQL value for the variable instead of giving an error if the variable were dropped, and the statement could have used incorrect type information if the variable was dropped and then recreated with a different data type. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629078">629078</a></td>
<td>Sybase Central could have run out of memory when displaying a view, trigger, procedure, event or external environment object in the right pane. This would normally have occurred only if the Tasks pane was showing in the left pane. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629153">629153</a></td>
<td>If an application attempted to start an external environment session, and other connections were being established, or were closing, at exactly the same time, then there was a very small chance that the server could have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629277">629277</a></td>
<td>The QAnywhere Standalone Clients would not synchronize when expected to in two cases.</p>
<p>				The first case occurred if a sync request was made while another synchronization was already taking place. It was expected that another sync will begin once the current one has finished, but this did not always happen.</p>
<p>				The second case occurred if a sync request was made while using a Transactional Manager. It was expected that only sync requests resulting from changes to the database will be delayed until the transaction is committed. However, this delay was occurring for other types of sync requests as well.</p>
<p>				These two cases have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629284">629284</a></td>
<td>The Visual Studio &quot;Add Connection&quot; wizard will display SQL Anywhere and Adaptive Server Anywhere ODBC Data Source names in the pick list when the SQL Anywhere .NET provider is used for the connection. SQL Anywhere integration with Visual Studio has been improved to also show Sybase IQ ODBC Data Source names in the pick list.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629304">629304</a></td>
<td>The values for DataSourceProductVersion and DataSourceProductVersionNormalized returned by the SAConnection.GetSchema method didn&#39;t match the ADO.NET specification. The normalized version string should have been like nn.nn.nn.nnnn. For example, SQL Server 2008 would return &quot;DataSourceProductVersion = 10.00.1600, DataSourceProductVersionNormalized = 10.00.1600&quot;. SQL Anywhere was returning &quot;DataSourceProductVersion = 12.0.0.1234, DataSourceProductVersionNormalized = 12.0.0&quot;. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629312">629312</a></td>
<td>When using the Python driver (sqlanydb.py), inserting a value larger than 2^32 into a BIGINT column would have resulted in a truncated integer value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629411">629411</a></td>
<td>The database option UUID_HAS_HYPHENS has been re-added. It can have the values On (default) and Off. If a uniqueidentifer value is converted to a string, then the string contains hyphens if the option value is On.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629415">629415</a></td>
<td>When deleting Agent events from a consolidated database there is a prompt for a date. Events that were created BEFORE this date are deleted. Messages ON this date would also have been deleted if their timestamp was before the current time of day when the user elected to delete the Agent events. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629417">629417</a></td>
<td>If an application attempted to execute a Java external environment procedure, and the target method was part of a class that had a private constructor, then calling the Java external environment procedure would have failed with an IllegalAccessException. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629437">629437</a></td>
<td>The user name in the status message in the Installing the MobiLink System Setup dialog would have been truncated if it was more than a few characters. This has been improved, although very long names may still be truncated. A workaround is to wait until the task finished, as the completion dialog shows the full name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629453">629453</a></td>
<td>when editing table data in the Results pane, clicking the &quot;Edit in Window&quot; menu item could have left the focus on the table rather than moving it to the resulting editing window. This has been fixed. This problem affected Linux systems only.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_78.htm#CR629458">629458</a></td>
<td>Clicking the Close button in the title bar of the Query Editor was considered equivalent to clicking the OK button. This was incorrect; it should have been equivalent to clicking the Cancel button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629534">629534</a></td>
<td>When executing stored procedures in the FROM clause, the performance of the statement was slower than previous versions. The effect was most significant for procedures that return many rows with very little execution cost in the procedure. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629569">629569</a></td>
<td>As of the changes made for Engineering case 568632, running a DESCRIBE statement in an Interactive SQL utility window always resulted in an error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629577">629577</a></td>
<td>For Unix versions, the server&#39;s usage display included incorrect values in the descriptions for the options -n, -p, -tl and -x. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629595">629595</a></td>
<td>Clicking the &quot;&gt;&quot; buttons on the Editor customization dialog&#39;s &quot;Print&quot; tab could have caused the resulting popup menus to appear on the wrong monitor if the computer had two monitors. The problem occurred only if the Options dialog was open on the secondary monitor, and only if the secondary monitor was logically positioned to the right of the primary monitor. This has been fixed.</p>
<p>				Note that this problem also affects Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629597">629597</a></td>
<td>The initial position of the main window for the MobiLink Monitor could have placed the window underneath the Windows task bar. This has been fixed.</p>
<p>				Note, this problem also affected the Interactive SQL utility, Sybase Central, and the SQL Anywhere Console utility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629606">629606</a></td>
<td>When using SQL Server Integration Services (SSIS), an attempt to migrate tables between SQL Anywhere/Sybase IQ and SQL Server databases would have failed. This problem has been corrected.</p>
<p>				Note, if the Data Flow consists of more than 10 tables that are to be migrated to SQL Server from a SQL Anywhere server, the Personal server should not be used since each table is moved asynchronously on a separate connection (i.e., more than 10 simultaneous connections will be made to the SQL Anywhere server and the number of simultaneous connections is limited with the Personal server).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629758">629758</a></td>
<td>The SAConnection.GetSchema method returned incorrect schema data for the DataTypes schema set and the DataSourceInformation schema set. This problem was found using the SQL Server Integration Service&#39;s Import and Export Wizard. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629759">629759</a></td>
<td>A query that made use of index only retrieval could have returned incorrect results (too few rows) in some cases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR629768">629768</a></td>
<td>The file browser that opened after clicking the &quot;Save&quot; button in the Index Consultant did not prevent interaction with the wizard while it was open. This has been corrected so that it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630040">630040</a></td>
<td>Messages in the Run Script window could have been truncated. The problem did not occur on all systems; it depended on the selected system font. The problem would have occurred on Windows for example, if &quot;MS UI Gothic&quot; was selected for the desktop icon font. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630073">630073</a></td>
<td>The contents of the combobox in the &quot;Schedule Editor&quot; window could have been truncated on some systems, depending on which font was being used by Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630082">630082</a></td>
<td>The &quot;Apply&quot; button in the client properties window (for a given server store) was not enabled correctly, and when it was enabled, it did not consistently apply the changes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630179">630179</a></td>
<td>On the Connected Users or All Connected Users tabs, if two or more connections were selected, and clicked on File-&gt;Disconnect, then Sybase Central would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630210">630210</a></td>
<td>If a GRANT or REVOKE statement was executed for a view which was currently invalid (e.g. because it referenced a table that has been dropped), an error indicating that the view was invalid might have been given. Now, the error is suppressed, but the view is still marked as invalid.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630219">630219</a></td>
<td>On non-Windows computers, a proportional font was used when displaying results as text in the Interactive SQL utility. This prevented the columns from lining up correctly. Now, a monospaced font is used. On Windows computers, a monospaced font has always been used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630225">630225</a></td>
<td>The sql error message for SQLE_ TOO_MANY_COLUMNS_DELETED (SQLCODE -124) &quot;More columns are being dropped from table &#39;%1&#39; than are defined&quot; was misleading. It has been changed to &quot;Dropping all columns from table &#39;%1&#39; is not allowed&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630226">630226</a></td>
<td>If an ALTER TABLE statement had a DROP or ALTER column clause, and the column did not exist,</p>
<p>				then an incorrect column name could have been reported in the error message. This only happened if there was another ADD, ALTER or DROP column clause in the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630338">630338</a></td>
<td>If the option row_counts was set to &#39;On&#39;, the system procedures sa_performance_statistics and sa_performance_diagnostics did not return a result set, and the procedure sa_describe_query caused an assertion failed 109512 error. These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630359">630359</a></td>
<td>The ASE label for the &quot;GBK&quot; character set has been changed from &quot;CP936&quot; to &quot;cp936&quot;, as character set names passed to ASE APIs such as cs_locale() are case sensitive. The ASE version of character set labels is generally not used directly by SQL Anywhere, but is provided to users who need to use ASE libraries. Typically, a client would obtain the ASE label via a call such as db_extended_property( &#39;charset&#39;, &#39;ase&#39; ).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630376">630376</a></td>
<td>If a database being mirrored had been enabled for auditing and the mirror servers were restarted, no auditing operations were recorded in the transaction log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630392">630392</a></td>
<td>The SQL Anywhere Console utility (dbconsole) would have displayed a message with the text &quot;java.lang.NullPointerException&quot; and an &quot;OK&quot; button if the &quot;Options&quot; window was opened before a connection had been opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630403">630403</a></td>
<td>Sybase Central would have crashed if the Agent Wizard was closed before any file browser that was opened from the wizard. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630408">630408</a></td>
<td>The method SAConnection.GetSchema() would have returned incorrect data. Database objects owned by system accounts were being included in the result sets. They are now excluded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630475">630475</a></td>
<td>If an application used the SQL Anywhere JDBC driver to obtain the ResultSet from a call to DatabaseMetaData.getPrimaryKeys(), then the driver would incorrectly return a ResultSet that was sorted by catalog, schema, table name and key sequence. This has now been fixed and the ResultSet is now sorted by column name instead.</p>
<p>				Note that this fix is only for the SQL Anywhere JDBC driver. The iAnywhere JDBC driver will continue to return a ResultSet based on ODBC sorting standards.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630519">630519</a></td>
<td>A query that referenced a view or derived table that contained a select list item that was not a table column could have caused a crash when executing using proxy tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630522">630522</a></td>
<td>The Interactive SQL utility (dbisql) could have crashed if more than one dbisql window was opened by clicking the &quot;Window/New Window&quot; menu item, the first window was close, then the &quot;Preferences&quot; item in the &quot;Interactive SQL&quot; menu was clicked. This bug also had the symptom of always showing the preferences for the first window, never for any of the subsequently opened windows. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630527">630527</a></td>
<td>The ApproximateCPUTime property would have grown in value for blocked connections if the property was queried. This problem was most noticeable for connections that were blocked for long periods of time and for whom this property was frequently queried. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630540">630540</a></td>
<td>The method SAConnection.ServerVersion() has been changed to return normalized version strings that match the strings returned by SqlConnection.ServerVersion().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630542">630542</a></td>
<td>In the SADataReader&#39;s schema table, , the SCALE property for Date, DateTime, DateTimeOffset, SmallDateTime, Time, Timestamp, and Timestamp with time zone columns, has been changed to 6.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630547">630547</a></td>
<td>When updating an Oracle consolidated database schema for a Synchronization Model which had used a subset of owners for schema loading, by default the schema would have been loaded for all owners. Now the default is to use the same owner subset.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630884">630884</a></td>
<td>On Mac OS X systems, the Interactive SQL utility was, in some cases, using reserved keystrokes for certain menu items and buttons. The following menu accelerators have been changed for Mac OS X only:</p>
<p>				Menu Item New Accelerator</p>
<p>				---------- ---------------</p>
<p>				SQL/History Ctrl+Command+H</p>
<p>				SQL/Previous SQL Ctrl+Command+LeftArrow</p>
<p>				SQL/Next SQL Ctrl+Command+RightArrow</p>
<p>				The following accelerators for buttons on the Spatial Viewer have been changed for OS X only:</p>
<p>				Button New Accelerator</p>
<p>				---------- ---------------</p>
<p>				History Ctrl+Command+H</p>
<p>				Previous SQL Ctrl+Command+LeftArrow</p>
<p>				Next SQL Ctrl+Command+RightArrow</p>
<p>				Save Image Command+S</p>
<p>				Hide SQL Shift+Command+H</p>
<p>				Zoom In Command+Plus</p>
<p>				Zoom Out Command+Minus</p>
<p>				Reset View Command+R</p>
<p>				Draw Outlined Polygons Command+P</p>
<p>				The tooltips for the above buttons now display the correct key name as well. Previouly, the tooltip displayed the Windows/Linux/Solaris accelerator key name instead of the Mac one.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630890">630890</a></td>
<td>In very rare situations, the server may have crashed when executing a statement that contained a large number of UNION, EXCEPT or INTERSECT clauses. This has been fixed. These statements will now return the sql error &quot;Statement size or complexity exceeds server limits&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630897">630897</a></td>
<td>If a SQL favorite contained a TAB character, it could have prevented some, or all, of the other favorites from being loading, and they would have been lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630909">630909</a></td>
<td>Calls to the method SADataAdapter.Update() in batch update mode would have hung when updating large tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630911">630911</a></td>
<td>Some result sets returned by by the method SAConnection.GetSchema() were not sorted. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR630913">630913</a></td>
<td>If some columns had been dropped from a table, SAConnection.GetSchema( &quot;Columns&quot; ) could have returned incorrect ORDINAL_POSITION values for that table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631004">631004</a></td>
<td>The range for a correlation coefficient is between -1 and +1, however the corr() system function returned only positive values. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631009">631009</a></td>
<td>Changes made to an agent&#39;s properties would not have been made permanent after clicking any of the items in the agent&#39;s &quot;Set&quot; menu. A similar problem affected changes made in the property sheet for a remote database to the description or the agent&#39;s connection string. These have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631017">631017</a></td>
<td>If an application attempted to create a proxy table to a Microsoft SQL Server table which contained a varbinary(max) column, then the server would have incorrectly mapped the varbinary(max) column to varbinary(1). This problem has now been fixed and the server now correctly maps varbinary(max) columns to long varbinary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631018">631018</a></td>
<td>A newly-created remote task command might not have been saved when a different tree item was selected. This happened very occasionally, and has been seen only on Linux computers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631019">631019</a></td>
<td>Two issues relating to using the INPUT and OUTPUT statements (and their corresponding wizards) to move data between SQL Anywhere and ASE have been fixed.</p>
<p>				Importing a table from ASE which had TIMESTAMP columns into a new table would have failed. The ASE TIMESTAMP type was being misinterpreted as being equivalent to the SQL Anywhere TIMESTAMP type, which is false. </p>
<p>				Exporting data from SQL Anywhere into ASE would have reported various conversion issues for SQL Anywhere DECIMAL values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631022">631022</a></td>
<td>When creating an ODBC DSN from the Connect dialog, the prompt that warned that the DSN already existed had a Cancel button. It should not have and has been removed.</p>
<p>				Also, clicking the close button (the &quot;X&quot; in the toolbar) aborted the entire process of creating the DSN; now, clicking the close button is the same as clicking the &quot;No&quot; button, which leaves the &quot;Saves as ODBC Data Source&quot; window open.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631023">631023</a></td>
<td>SA Clients on Mac OS X systems would have received the error &quot;TLS handshake failure&quot; (SQLCODE -829) when attempting to connect using TLS/RSA to a server running on a different operating system. This has been fixed.</p>
<p>				Note: Engineering case 626480 included new versions of the Certicom and OpenSSL libraries. This problem only affects Mac OS X clients with these new libraries connecting to servers on a different operating system also with these new libraries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631026">631026</a></td>
<td>When using the ADO.NET provider to insert long binary, varchar or nvarchar values with a SQL_BINARY, SQL_VARCHAR or SQL_NVARCHAR parameter type, the parameter type that is passed to the server will be changed to SQL_LONGBINARY, SQL_LONGVARCHAR or SQL_LONGNVARCHAR if the length of the value to be inserted is greater than 32767 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631028">631028</a></td>
<td>Creating the first user DSN by clicking the &quot;Save as ODBC Data Source&quot; Tools button could have silently failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631030">631030</a></td>
<td>Databases could not have been created on SD cards and the internal flash of some older RIM devices. There were two problems in the RIM Operating System late in the 4.2.1.x versions, extending to the 4.2.2.48 version, that would have caused problems creating databases on these devices. An input stream could not have been opened until something had been written to the file, and the database file would have been destroyed on the second write to the start of the file. These problems were resolved by reprogramming some of the support for these devices so that the problems were not encountered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631033">631033</a></td>
<td>Starting in version 12.0.0, on Windows computers numbers are now formatted with the thousands separator that is shown in the Windows Control Panel. With this fix, thousands separators are not shown at all if they have been turned off on the Control Panel. Previously, they were always shown. </p>
<p>				Note, this fix also affects the &quot;Data&quot; tab for tables and views in Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631045">631045</a></td>
<td>If an application attempted to establish a connection using the ASADataSource class available with the SQL Anywhere JDBC driver, then the application would have received a ClassCastException. This problem has now been fixed.</p>
<p>				Note that in addition to supporting the ASADataSource class, the SQL Anywhere and iAnywhere JDBC drivers now offer an SADataSource class as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631096">631096</a></td>
<td>If deleting a Remote Schema Name failed for any reason, it was still removed from the project. Now, it remains in the project. </p>
<p>				In a related issue, if the Remote Schema Name cannot be deleted because there are agents still managing databases with that Remote Schema Name, an error message is now shown explaining that condition as plainly as possible. Previously, the underlying error message from the consolidated database was displayed, which was not helpful.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631104">631104</a></td>
<td>Checking the &quot;Enable Agent logging&quot; checkbox on the &quot;Logging&quot; page of an Agent Configuration File property sheet enables six more check boxes allowing for specifying what kind of messages are to be logged. Previously, the options in the file were not read correctly so that none of those six checkboxes were ever checked, even though the configuration file was correct. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631113">631113</a></td>
<td>Attempting to execute a CREATE OR REPLACE PROCEDURE statement could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631119">631119</a></td>
<td>If the empty string was passed into an SQLNativeSQL or SQLPrepare function, it was possible for the iAS Oracle ODBC Driver to have crashed. This has been fixed. The SQLPrepare function will now return the error &quot;Invalid string or buffer length&quot;, and the SQLNativeSQL function will now simply set the out parameters to the empty string as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631122">631122</a></td>
<td>After right-clicking a procedure or function and selecting &quot;Execute from Interactive SQL&quot;, the resulting dialog where the parameters are specified had a row height for the table that was too small. This caused text to be clipped in the &quot;Value&quot; column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631141">631141</a></td>
<td>Clicking the &quot;Data&gt;Show Results as Scrollable Table&quot; or &quot;Data&gt;Show Results as Text&quot; menu items did not make the setting permanent, which could have lead to the wrong format being used when disconnecting and then reconnecting without stopping Interactive SQL. This has been fixed, now these menu items exactly correspond to the &quot;Scrollable table&quot; / &quot;Text&quot; options in the &quot;Options&quot; window, which was the original intent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631147">631147</a></td>
<td>When creating or altering a spatial reference system, the catalog table SYSSPATIALREFERENCESYSTEM.storage_format column contained the case of type from the statement instead of the normalized case. For example, with a statement such as the following the server would have stored &#39;oRiginal&#39; instead of &#39;Original&#39;.</p>
<p>				create or replace spatial reference system &quot;WGS84_orig&quot;</p>
<p>				identified by 50000</p>
<p>				type round earth</p>
<p>				storage format &#39;oRiginal&#39;</p>
<p>				This has been corrected so that the case is normalized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631148">631148</a></td>
<td>When Sybase Central is shut down, it closes any Interactive SQL windows which were opened from within Sybase Central. Part of that closing process may prompt the user to save unsaved changes, or may remind them that closing Interactive SQL will also close any Plan Viewer or Spatial Viewer windows. On Linux systems, if the Interactive SQL window was obscured by Sybase Central when Sybase Central was closed, the prompts could have been hidden by the Sybase Central window. Unless the Interactive SQL window was activated, or the Sybase Central window was moved, the prompts would have been hidden and Sybase Central would not have closed. Now, the Interactive SQL windows are activated and any prompts should appear on top of the Interactive SQL window(s).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631234">631234</a></td>
<td>It was possible to create a Remote Task with an empty name (which is generally not allowed) by pasting it and then clearing the Name field in the resulting &quot;Paste&quot; dialog. The same problem also affected the pasting of groups. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631249">631249</a></td>
<td>The result sets returned by calls to SAConnection.GetSchema( &quot;Columns&quot; ) and SAConnection.GetSchema( &quot;DataTypes&quot; ) could have been incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631253">631253</a></td>
<td>In the property sheet for a Relay Server farm, if a custom command line for the Relay Server Outbound Enabler was specified, it was not displayed when the property sheet was subsequently opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631269">631269</a></td>
<td>The Interactive SQL utility could have reported an internal error if the SRID was changed on the &quot;Spatial Preview&quot; tab in the column value window. The problem was most likely to happen if the SRID was changed faster than the database server was able to render the spatial value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631280">631280</a></td>
<td>The MobiLink Server could have hung or crashed on MacOSX 10.6 systems when the server was run as a daemon (using the -ud command line option). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631330">631330</a></td>
<td>Some inconsistencies between SQL Anywhere OLE DB column metadata information and run-time column information caused problems with accessing tables via the Microsoft SQL Server &quot;Linked Server&quot; mechanism. These problems affected NCHAR, NVARCHAR,LONG NVARCHAR, VARBIT, LONG VARBIT, and TIMESTAMP WITH TIME ZONE columns. The TIMESTAMP WITH TIMEZONE data type is new to version 12.0.0. These problems have been fixed. Table rows inserted using the OLE DB OpenRowset/InsertRows methods are now done with autocommit turned off. Once the inserts are completed, the rows are committed.</p>
<p>				For the complete fix to this problem, use the Upgrade utility (dbupgrad) to upgrade existing databases with fixes for the OLE DB schema rowset support (metadata support).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631404">631404</a></td>
<td>The NOT NULL FOREIGN KEY clause was misdiagnosed as invalid in ALTER TABLE statement. This was been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631405">631405</a></td>
<td>If a result set contained a column with ROWID values, the iAnywhere Oracle driver would have returned invalid OUT parameters from calls to SQLColAttribute for the SQL_COLUMN_TYPE and SQL_DESC_DISPLAY_SIZE identifiers. As a workaround, the select statement could use ROWIDTOCHAR(ROWID) instead of ROWID. This has been fixed so that the calls to SQLColAttribute will now describe the column in the result set as a SQL_WCHAR of length 18.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631475">631475</a></td>
<td>Calls to some system procedures may have caused an server crash if null arguments were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631479">631479</a></td>
<td>Spatial methods could have been used in queries in contexts that should not have been allowed, and no error was given. Instead, an invalid answer was returned.</p>
<p>				For example, the following query was permitted while it should be rejected:</p>
<p>				select count(*), geometry.ST_Envelope()</p>
<p>				from ( select row_num, new ST_Point( row_num, row_num, 0 ) geometry from rowgenerator ) D</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631482">631482</a></td>
<td>On Linux systems, the main DBConsole window would still have been active when the initial &quot;Connect&quot; window was displayed. This would have allowed two &quot;Connect&quot; windows to be open at the same time; the subsequent behavior was not well-defined. This has been fixed so that the main window is now not active when the &quot;Connect&quot; window is open.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631484">631484</a></td>
<td>Execution of an ALTER TABLE statement, could have corrupted the table after deleting and committing some rows from it. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631493">631493</a></td>
<td>Clicking a variable name, after clicking the &quot;Variables&quot; button in the Remote Task wizard or property sheet, would have incorrectly resulted in a beep. Now, clicking the variable name inserts the variable name into the &quot;SQL Condition&quot; field.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631525">631525</a></td>
<td>If a cursor was opened over a query containing a call to the system procedures sa_rowgenerator() or sa_reserved_words(), and the cursor was moved forward and backwards, the server could have returned inconsistent results. The scrolling could have happened implicitly as a result of prefetch and re-fetching columns (for example, using GET DATA). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631633">631633</a></td>
<td>The width of the &quot;Search&quot; field in the Deploy Remote Task wizard could have been so small that the component was unusable. This did not happen on all computers, and was dependent on which font (and size) the computer was configured to use. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631640">631640</a></td>
<td>In very rare cases, the server could have crashed if a database shutdown request was received at the same time that an active connection on the same database executed an external environment call. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631643">631643</a></td>
<td>Changes made for Engineering case 585456 caused the queue lengths in the Utilization Graph of the MobiLink Monitor, the RAW_TCP_STAGE_LEN, STREAM_STAGE_LEN, HEARTBEAT_STAGE_LEN, CMD_PROCESSOR_STAGE_LEN metrics printed by the -ppv option, and the queue lengths available in the SQL Anywhere Monitor, to possibly have been reported as larger than they actually were. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631647">631647</a></td>
<td>On Linux systems, opening a window to view a long column value could have caused increased CPU usage, or could have caused dbisql to crash. This problem was intermittent, and depended on how busy the system was when the window was opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631669">631669</a></td>
<td>Attempting to deploy a remote task to a consolidated database to which connection was not possible wou8ld have resulted in an assertion failure message. This has been fixed so now an error message is displayed saying that the connection failed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631672">631672</a></td>
<td>In the Create MobiLink Agent wizard, if creating agents from a file was elected and the file was previewed, then a different file was selected, the preview page was not updated to show all of the agent names in the new file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631731">631731</a></td>
<td>When starting the MobiLink Monitor with the -o or -c command line options, the result of the session should have been saved when the MobiLink server terminated, or the user manually disconnected from the MobiLink server. In the latter case, the output was not being saved and the Monitor was not shutting down. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631733">631733</a></td>
<td>When connecting the MobiLink Monitor to a MobiLink server, any authentication error resulted in a poor error message from the Monitor, like: </p>
<p>				&quot;Got unexpected data when receiving authentication result. Check version of MobiLink server (opcode=0)&quot;</p>
<p>				This has been fixed to provide more information on the problem. The most common authentication error is now:</p>
<p>				&quot;Invalid userid or password (auth_status=NNNN)&quot;</p>
<p>				Other errors, for example due to an expired password, are similar.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631774">631774</a></td>
<td>The server could have crashed if lock contention was high. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631777">631777</a></td>
<td>The Command Editor was inadvertently shown after clicking &quot;Select All&quot; while a tab other than &quot;Commands&quot; was selected for a deployed remote task. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631781">631781</a></td>
<td>The text completer could have failed to suggest column names at the end of a dotted expression if the SQL statement spanned more than one line. For example, if the completer was opened at the end of the following statement:</p>
<p>				SELECT * FROM customers C</p>
<p>				WHERE C.</p>
<p>				it should have suggested the columns in the &quot;Customers&quot; table, but it did not. This has been fix so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631797">631797</a></td>
<td>If a column CHECK constraint was defined using references to other columns, it was not being handled as a table CHECK constraint. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631798">631798</a></td>
<td>The Procedure Browser window could have crashed if there were no procedures listed, and the mouse was moved over the empty list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631800">631800</a></td>
<td>Queries involving spatial predicates ST_Intersects or ST_IntersectsRect would have missed certain optimization oppotunities when operating over small geometries, or geometries with minimal surface area. This has been fixed. For example, performance of the following query was likely to improve as a result of this change:</p>
<p>				select geometry</p>
<p>				from table_containing_ST_Curves</p>
<p>				where geometry.ST_IntersectsRect( new ST_Point( 0, 0 ), new ST_Point( 10, 10 ) ) = 1;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631890">631890</a></td>
<td>If an outer join had a materializing operator on the null-supplying side (for example a work table or a sort), then the performance could have been slower than it could have been because expressions from the tables under the null-supplying side were materialized when they were not needed above the join.</p>
<p>				Also, the server could have crashed while executing a plan with an outer join if the null-supplying side contained an IN-list with either NUMERIC or string values. </p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631897">631897</a></td>
<td>In extremely rare timing dependent cases, if a communication error occurred on a connection with the dedicated_task option set in a mirroring configuration, the server could have crashed, asserted or hung. The fix for Engineering case 628436 missed this situation, which has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631904">631904</a></td>
<td>If a server or database was started with a space in the name, then attempting to start external environments would have failed. This problem is specific to servers running on Windows based systems, and has now been fixed..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR631946">631946</a></td>
<td>An error on startup of the MobiLink server on Mac OS X systems, would have displayed text that was prefixed by random characters and/or yellow highlighting. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632040">632040</a></td>
<td>On 64-bit systems, it was possible for the JDBC driver to crash if some statement attributes were queried. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632048">632048</a></td>
<td>If a view or derived table was used on the null-supplying side of an outer join it was possible for the expression to return a non-NULL value for a row of the view that should have been null-supplied. This would have occurred if one of the view columns contained one of the following expressions:</p>
<p>				- user-defined function</p>
<p>				- argn</p>
<p>				- http_header</p>
<p>				- http_response_header</p>
<p>				- http_variable</p>
<p>				- isdate</p>
<p>				- isnumeric</p>
<p>				- next_connection</p>
<p>				- next_database</p>
<p>				- next_http_header</p>
<p>				- next_http_response_header</p>
<p>				- next_http_variable</p>
<p>				- next_soap_header</p>
<p>				- patindex</p>
<p>				- soap_header</p>
<p>				- stuff</p>
<p>				For example, the following queries would have incorrectly returned a non-NULL value for the column &quot;b&quot; of the derived table &quot;D&quot;:</p>
<p>				select *</p>
<p>				from rowgenerator left join ( select dummy_col , argn( 1, 137, dummy_col ) b from sys.dummy ) D on 1=0</p>
<p>				where row_num=1</p>
<p>				select *</p>
<p>				from rowgenerator left join ( select dummy_col , isnumeric( dummy_col ) b from sys.dummy ) D on 1=0</p>
<p>				where row_num=1</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632050">632050</a></td>
<td>If a Java external environment had been started for a particular database, and a connection on that database accidentally attempted to drop the SYS.DUMMY table, then the connection would have hung instead of giving the expected &quot;permission denied&quot; error. This problem has now been fixed.</p>
<p>				Note that this problem does not exist for external environment other than Java.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632174">632174</a></td>
<td>The Foreign Key wizard could have caused Sybase Central to crash when creating a second</p>
<p>				foreign key on a table, if the creation of the first foreign key on the table had automatically added a new column to the foreign table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632177">632177</a></td>
<td>The text completer would not have suggested any names following a string of the form &quot;owner.partialTableName&quot; if &quot;owner&quot; was the same as &quot;partialTableName&quot;. This would have occurred when trying to complete the name of a system table, e.g.:</p>
<p>				SELECT * FROM sys.sys</p>
<p>				This problem would have affected text completion in SELECT, DELETE, and UPDATE statements and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632219">632219</a></td>
<td>The MobiLink server running in a server farm against the cluster edition of a consolidated database, would have shutdown too quickly when the node the MobiLink server was connecting to was killed or shut down. This problem has been fixed. When the MobiLink server detects the database connection unusable, it will now attempt to re-establish a connection and pause for 1 second before each retry. By default, the number of retries is 3. Therefore, it would allow the ODBC driver to switch the MobiLInk server database connections to another node within 3 seconds. If the failover of the consolidated database takes more than 3 seconds, the MobiLink server command line option -cr &lt;num&gt; can be used to change the number of retries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632314">632314</a></td>
<td>When the server is started with no command line arguments, a &quot;server startup options&quot; dialog is presented which includes a &quot;Browse...&quot; button to choose the database file. When Browse... was clicked, a non-modal file-open dialog was launched which meant that the &quot;server startup options&quot; dialog could be closed while the file-open dialog was still open. The file-open dialog is now modal and must be closed first.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632315">632315</a></td>
<td>The START JAVA statement would have failed when the server was started through the GUI (DBLauncher) on Mac OS X 10.6. This has been fixed. Servers started via the command line interface (Terminal.app) do not have this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632340">632340</a></td>
<td>Executing a LOAD TABLE statement on Mac OSX systems would have failed with the error -134 (feature not implemented). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632342">632342</a></td>
<td>Under rare circumstances, the server may have hung while diagnostic tracing was enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632353">632353</a></td>
<td>If the server acting as the primary server in a mirroring system was shut down at the same time as it lost quorum due to a dropped mirror connection, the database on the primary could have been improperly checkpointed, resulting in a failure to recover on the next startup. Also, if a mirror server was starting at the same time the primary server was stopping or restarting, the mirror server could have received log operations that were not written on the primary. This would have resulted in an &quot;incompatible files&quot; message the next time the mirror connected to the primary, and would have forced the database and log to be manually recopied. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_79.htm#CR632359">632359</a></td>
<td>For 11.0.1, ECC curve support for MobiLink end-to-end encryption has been reduced to the same 7 ECC curves supported by the createcert and createkey utilities and by SA&#39;s TLS support.</p>
<p>				For 12.0.0, ECC curve support for end-to-end encryption, the createcert and createkey utilities, and for the TLS protocol for both MobiLink and SA, has been extended to support the 15 curves recommended by NIST:</p>
<p>				sect163k1 sect283k1 sect571k1 secp256r1</p>
<p>				sect163r2 sect283r1 sect571r1 secp384r1</p>
<p>				sect233k1 sect409k1 secp192r1 secp521r1</p>
<p>				sect233r1 sect409r1 secp224r1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632362">632362</a></td>
<td>If a connection set the dedicated_task option to &#39;On&#39;, then there was a chance a request for this connection would have hung. This was more likely for connections where many requests are sent one after the other. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632401">632401</a></td>
<td>The SQL Anywhere JDBC driver has provided support for PreparedStatement.setBlob(), ResultSet.getBlob() and ResultSet.getClob() for some time now; but support for PreparedStatement.setClob() was not available in the SQL Anywhere JDBC driver until now. The SQL Anywhere JDBC driver now supports two of the three PreparedStatement.setClob() methods. They are:</p>
<p>				PreparedStatement.setClob( int parameterIndex, Clob x ), and</p>
<p>				PreparedStatement.setClob( int parameterIndex, Reader reader, long length )</p>
<p>				However, support for the method:</p>
<p>				PreparedStatement.setClob( int parameterIndex, Reader reader )</p>
<p>				is still not available in the SQL Anywhere JDBC driver.</p>
<p>				It should be noted that when using the PreparedStatement.setClob( int parameterIndex, Clob x ) overload, the user supplied Clob implementation only needs to support the Clob.length() and Clob.getCharacterStream() methods. Also, for large strings and large character streams, the new PreparedStatement.setClob() methods within the SQL Anywhere JDBC driver are preferable over the PreparedStatement.setString() and PreparedStatement.setCharacterStream() methods in terms of both performance and memory usage.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632413">632413</a></td>
<td>On Vista and later versions of Windows, the Windows Performance Monitor utility (perfmon) could not have monitored a database server which was running as a Windows service. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632417">632417</a></td>
<td>If a Java or CLR external environment had been started, and an application then attempted to execute an &quot;alter database upgrade&quot; command, or if the Upgrade utility (dbupgrad) was run, then the upgrade would have failed due to the fact that the database was still in use by the external environment(s). This problem has now been fixed and the external environments will now be shut down provided they are idle at the time the database upgrade is attempted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632434">632434</a></td>
<td>Version 11.x of the Relay Server is not compatible with version 7 of Microsoft&#39;s Internet Information Server (IIS7). The Relay Server has now been updated to support IIS7. New IIS7 set up instructions will be available in %sqlany11%\MobiLink\RelayServer\IIS\iis7_setup.txt.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632435">632435</a></td>
<td>When copying cells from a result set, a newline character was inadvertently added to the copied value, even if cells from a single row were copied. This newline has been removed in those cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632436">632436</a></td>
<td>The Tip of the Day which referred to the Connect Assistant has been removed. The Connect Assistant was removed in version 12.0.0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632438">632438</a></td>
<td>When running the Unload utility to create a new database with the same settings (dbunload -ar), it may have immediately failed with the error &quot;Too many connections to database being replaced&quot;. This would have been rare, and retrying the unload would likely have resulted in success. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632446">632446</a></td>
<td>The MobiLink server stream options set in the Deploy Synchronization Model wizard would not have been set in the batch file created to run the MobiLink server. This has been fixed. A workaround is to edit the generated batch file to add the stream options.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632488">632488</a></td>
<td>If the option Optimization_goal had the setting &#39;First-row&#39;, then validating a table would have been extremely slow, whether validating with the Validation utility, or with a VALIDATE statement. This has been fixed</p>
<p>				A work-around is to set the optimization goal to &#39;All-rows&#39; before validation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632516">632516</a></td>
<td>The Remote Task wizard offered three unsupported options for the battery level condition: &quot;Less than 25%&quot;, &quot;Less than 50%&quot; and &quot;Less than 75%&quot;. These options have now been removed from the wizard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632519">632519</a></td>
<td>Changes made to INOUT script parameters in .NET scripts were ignored unless the script accepted all the possible parameters for the event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632526">632526</a></td>
<td>The Plan Viewer window could have opened with a width that was wider than the monitor if the &quot;SQL Statements&quot; field contained a SQL statement which was itself longer than could be displayed on the monitor. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632530">632530</a></td>
<td>The UltraLiteJ Database Unload utility (ULjUnload) would have output control characters (other than \t \r \n) or non-ASCII characters (&gt;= \u007f) into its XML output without escaping them. This would have made the resulting XML file unreadable by many tools, including the UltraLite Load XML to Database utility (ulload). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632538">632538</a></td>
<td>If an error window (or any other modal window) was open, it was impossible to close any Interactive SQL window, even if the error window was not owned by the Interactive SQL window that was attempting to be closed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632545">632545</a></td>
<td>Pressing a non-character key (e.g LeftArrow, Alt, Space, etc.) could have inserted a hollow box character to the SQL Statements field. This has been fixed.</p>
<p>				This problem was more readily seen on Linux systems than on Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632608">632608</a></td>
<td>The performance for fetching BLOB columns was much slower compared with the managed OLE DB provider. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632612">632612</a></td>
<td>The iAnywhere ODBC driver for Oracle could have crashed, if an application made a request to convert an invalid SQL statement (for instance, a SQL statement containing a &#39;{&#39; that was not followed by &#39;call&#39;) to native SQL by calling SQLNativeSQLW. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632627">632627</a></td>
<td>Database documentation that was generated from the SQL Anywhere plug-in for Sybase Central would not have shown scroll bars when viewed with the Safari browser. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632640">632640</a></td>
<td>When deploying a Synchronization Model to an UltraLite database on Mac OS X systems, it would have failed with the error &quot;Cannot create an UltraLite database because the ulinit utility can only be run on Windows and Linux.&quot; Mac OS X systems are supported, so this error is no longer raised, and the message has been updated to include Mac OS X as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632732">632732</a></td>
<td>On Unix systems, the Performance Statistics utility (dbstats) could not have monitored a database server that was running under a different user id. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632736">632736</a></td>
<td>On Mac OS X systems, Sybase Central would have crashed when importing a configuration file and clicking the &quot;Save&quot; button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632739">632739</a></td>
<td>On Mac OS x systems, the &quot;...&quot; button in the result set table was several times wider than it should have been. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632743">632743</a></td>
<td>The text fields on the second page of the Index Consultant were too narrow to display even their default values. This problem was most apparent on Mac OS X systems, although it could also have occurred on any platform if the font used by the application was sufficiently large, or if the look-and-feel for that platform had a wide border for text fields. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632766">632766</a></td>
<td>The Table Mapping editor was missing a &quot;Download Delete Subset&quot; cascading menu, which meant it was not possible to set the download delete subset setting for multiple table mappings in a single operation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632770">632770</a></td>
<td>When deploying a configuration file to multiple servers, the window titled &quot;Deploy Configuration&quot; could have stayed open indefinitely with the last status line &quot;Checking Relay Server configurations&quot;. This would have happened if the security token for any backend server was empty. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632776">632776</a></td>
<td>The descriptions for Relay Servers were always shown as empty in the &quot;Deploy Configuration File&quot; window, even if they were not empty. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632869">632869</a></td>
<td>Using the -ppv command line option (&quot;print periodic performance values&quot;) could have degraded the MobiLink server&#39;s performance if there were many unsubmitted error reports. This was most noticable when using -ppv 1, and there were more than one thousand unsubmitted reports. This has been fixed by removing the NUM_UNSUBMITTED_ERROR_RPTS value from the -ppv output. The number of unsubmitted error reports can still be found by using the SQLAnywhere Monitor for MobiLink, or by counting the lines output by &quot;dbsupport -lc&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632873">632873</a></td>
<td>Concurrent updates to an IMMEDIATE REFRESH text index may have corrupted the index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632874">632874</a></td>
<td>Under very rare circumstances, sequential scans of tables that had rows deleted within the past minute may have returned too few rows. Subsequent scans of the table would have returned the correct number of rows.</p>
<p>				This has been fixed.</p>
<p>				Note, this problem was extremely rare in builds prior to the changes made for Engineering case 625189, it would have been slightly more likely in later builds, due to increased frequency of cleaner invocation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632875">632875</a></td>
<td>The server would have crashed if a client application attempted to connect while the </p>
<p>				server was shutting down after failing to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632880">632880</a></td>
<td>On Mac OS X systems, the Add, Edit, Delete, Update and Cancel Row toolbar buttons were too small (16x16 rather than 32x32). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632889">632889</a></td>
<td>When using the iAS Oracle ODBC Driver, a call to SQLGetStmtAttr that queried the SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_CURSOR_SENSITIVITY or SQL_ATTR_QUERY_TIMEOUT attributes could have returned a random value for the attribute. The driver now throws an &quot;Optional feature not implemented&quot; error (SQL State HYC00) for the SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, and SQL_ATTR_CURSOR_SENSITIVITY attributes. When the SQL_ATTR_QUERY_TIMEOUT is queried, a zero is returned, and no error is reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632893">632893</a></td>
<td>The MobiLink replay utility could have crashed when concurrent connections to the MobiLink server were made on non-Windows systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632902">632902</a></td>
<td>Attempting to add or update a row in a table by using a file to supply a column value, could have crashed Sybase Central (or silently failed with the Interactive SQL utility), if the file contents were larger than the database column could hold. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632984">632984</a></td>
<td>Use of the -f (or --filedir) command line option on the UltraLite Unload Database utility (ulunload) would have mangled the specified directory. This would have prevented the utility from functioning properly, and generated an error similar to the following:</p>
<p>				Error: Cannot open data file �&lt;mangled characters&gt;� for table T</p>
<p>				This has now been fixed. A workaround is to store BLOB/CLOB data in the current directory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR632988">632988</a></td>
<td>It was possible for the MobiLink Server Log File Viewer to crash when selecting the &quot;Messages&quot; or &quot;Summaries&quot; tab for the first time. This crash would have happened only very rarely, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633000">633000</a></td>
<td>When editing a DECIMAL value, the editor could have truncated some of the least significant digits from the initial value. Now, those digits are preserved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633003">633003</a></td>
<td>Attempting to execute an UPDATE statement on a table with multiple indexes and lazy loading, could have failed in various ways by throwing Java exceptions. This was corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633007">633007</a></td>
<td>The following English error message could have been logged in the MobiLink server log on a non-English system:</p>
<p>				&quot;Error canceling message. Cannot cancel a message that has already been downloaded to its recipient or is in a final state.&quot; This message has now been localized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633011">633011</a></td>
<td>The Login Mapping wizard&#39;s last page did not always display the current login_mode option setting correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633015">633015</a></td>
<td>If an application called a Java external environment procedure that returned result sets, then those result sets would not have been cleaned up for a long time after the application was done with them. The result sets now get cleaned up in a more timely fashion.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633019">633019</a></td>
<td>It was not possible to edit BIT values in the &quot;Results&quot; panel. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633021">633021</a></td>
<td>When using the external system procedure xp_startsmtp, if the SMTP authentication failed the server would not have closed the TCP connection to the SMTP server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633031">633031</a></td>
<td>Sybase Central could have silently crashed on startup if an OEM.INI file was installed which contained an entry before a section header. This has been fixed; the entry is now ignored.</p>
<p>				Note, this problem also affected the Interactive SQL and Console utilities, as well as the MobiLink Monitor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633032">633032</a></td>
<td>Replicating a &quot;Point EMPTY&quot; geometry object via Mobilink could have reported errors. In particular &quot;Spatial library error: 25&quot; could have been reported. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633041">633041</a></td>
<td>When running the UltraLite sample application on a Windows desktop, if no employee ID had been entered, a dialog is presented where one can be specified. Clicking on 揅ancel� would have resulted in nothing happening. Now, the dialog box will be canceled when 揅ancel� is clicked.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633117">633117</a></td>
<td>The following issues have been fixed for queries that bypass the optimizer:</p>
<p>				1. the number of cached pages for an index was not saved for the graphical plans</p>
<p>				2. complex expressions used in the WHERE clause may have produced different errors than the optimizer</p>
<p>				3. predicate selectivities were not normalized, this was a different behaviour than the optimizer</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633118">633118</a></td>
<td>The Deployment Wizard did not deploy V3.5 and V4.0 .Net assemblies. They have now been added to the list of files we deploy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633120">633120</a></td>
<td>Microsoft&#39;s SQL Server 2005/2008 Replication software allocates a 0x200 byte buffer for the TYPE_NAME column of the DBSCHEMA_PROVIDER_TYPES rowset. It then creates a DBBINDING structure identifying the length of the buffer as 0x300 bytes. When the SQL Anywhere OLE DB provider initializes the buffer with nulls, a stack overrun occurs and Microsoft&#39;s Replication software faults. As a work-around for Microsoft&#39;s bug, the SQL Anywhere OLE DB provider will no longer initialize the consumer&#39;s buffer with nulls.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633125">633125</a></td>
<td>Improvements to the DBSCHEMA_PROVIDER_TYPES rowset have been made to make it more consistent with Microsoft SQL Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633132">633132</a></td>
<td>If the Interactive SQL utility, Sybase Central, or the Console utility had been redeployed (i.e. installed by any means other than the standard SQL Anywhere product installer), the ability to check for software updates was still presented to the user, but there was no way for it to make the check. Attempting to check for updates would have opened a status window which would say that it was analyzing the installed software, but would never have completed. Checking for software updates is supported only from the Interactive SQL utility, Sybase Central, or the Console utility which has been installed by the SQL Anywhere installer. Now, if redeployed software is run, the following changes to the user interface will be made:</p>
<p>				1. (All) The Help menu items related to checking for updates are removed</p>
<p>				2. (Interactive SQL utility) In the &quot;Options&quot; window, the &quot;Update Checker&quot; tab is removed for SQL Anywhere and UltraLite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633147">633147</a></td>
<td>Text indexes are now supported on materialized views. </p>
<p>				The following syntax is used to create a text index on an an immediate or a manual materialized view:</p>
<p>				CREATE TEXT INDEX [ IF NOT EXISTS ] text-index-name </p>
<p>				ON [ owner.]imv-name( column-name, ... ) </p>
<p>				[ IN dbspace-name ]</p>
<p>				[ CONFIGURATION [ owner.]text-configuration-name ]</p>
<p>				[ IMMEDIATE REFRESH ]</p>
<p>				Once a text index on a materialized view is created, it cannot be refreshed or truncated. The only</p>
<p>				operation a user can perform on the text index is DROP. The text index on a materialized view will</p>
<p>				be maintained by the server whenever the underlying materialized view is refreshed or updated.</p>
<p>				If the materialized view is altered - for example, immediate materialized view is converted to manual -</p>
<p>				the text index changes accordingly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633152">633152</a></td>
<td>The window used to display a single cell value in a result set could have been too narrow to view the components it contains. The text which gives the length of the value could be abbreviated with an ellipsis, or hidden altogether on a system using a Japanese character set. The same thing could have happened regardless of the character set if certain large sized fonts are used as the computer&#39;s default font. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633155">633155</a></td>
<td>When deploying a Synchronization Model on Linux, Unix or Mac systems, the .sh files generated for the MobiLink server, remote database, synchronization client and consolidated database could have failed if command-line options (such as a connection string) or deployment options (such as the MobiLink server name) contained spaces. This has been fixed. The options are now quoted in the generated .sh files. A workaround is to edit the generated files to quote the options with spaces.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633229">633229</a></td>
<td>Execution of a SELECT ... INTO table_name statement would have failed with &quot;Syntax error near &#39;(&#39;&quot; if the source query contained UNIQUEIDENTIFIER columns and the statement was attempting to create a permanent table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633232">633232</a></td>
<td>The server could have crashed under certain circumstances where malformed data existed in the database, and an attempt was made to generate statistics over this data either implicitly or explicitly. Customer applications that do not insert this malformed data are not likely to be impacted. The server now treats malformed data as NULL for the purpose of statistics collection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633243">633243</a></td>
<td>If an ASE consolidated database was added to a project, it would have been shown as a &quot;SQL Server&quot; database in the user interface. Now, the database type text is &quot;Adaptive Server Enterprise&quot;. </p>
<p>				This affects the following parts of the UI:</p>
<p>				1. The &quot;Product&quot; column on the &quot;Consolidated Databases&quot; tab</p>
<p>				2. The property sheet for a consolidated database</p>
<p>				3. The &quot;Display Name and Description&quot; page of the Add Consolidated Database Wizard</p>
<p>				4. The &quot;Consolidated Database Schema&quot; page of the Create Synchronization Model Wizard</p>
<p>				5. The &quot;Consolidated Database Deployment Destination&quot; page in the Deploy Synchronization Model Wizard</p>
<p>				6. The &quot;Consolidated Database Schema&quot; page of the Update Schema Wizard</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633257">633257</a></td>
<td>When synchronizing a table with NOT NULL LONG BINARY or NOT NULL LONG VARCHAR columns, downloading an update to such a column could have resulted in an UljException -300 &quot;Run time SQL error -- fatal&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633268">633268</a></td>
<td>The changes for Engineering case 632526 may have caused the &quot;SQL&quot; field in the Plan Viewer window to become unusably short after the &quot;Get Plan&quot; button was clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633269">633269</a></td>
<td>Attempting to deploy a task containing characters that were not supported by the consolidated database, would have crashed Sybase Central. For example, setting a task description containing Japanese into a latin1252 database. The crash has been fixed. The new behavior in this situation depends on the consolidated database. In most cases the string will be degraded with the unsupported characters replaced. MYSQL will raise an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633275">633275</a></td>
<td>If a database mirroring server was shut down via the console (or via a HUP signal on Unix), it could have hung. This has been fixed. As a workaround, use the Stop Server utility (dbstop) to stop the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633364">633364</a></td>
<td>The Moblink server could have randomly, although rarely, reported the error:</p>
<p>				&quot;Stream Error: Mismatched end-to-end encryption keys&quot;</p>
<p>				when establishing an end to end encryption link with Ultralite on the iphone. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633371">633371</a></td>
<td>The Interactive SQL utility (dbisql) would not have started when using the -nogui command line option on a Linux computer which did not have a graphical environment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633373">633373</a></td>
<td>If a procedure used in the FROM clause of a statement was inlined, crashes or incorrect errors may have been reported if the following conditions hold:</p>
<p>				1. the procedure contains a single statement having common table expressions (CTEs) defined using WITH [RECURSIVE] clause.</p>
<p>				2. the procedure parameters are used inside the CTEs in any expression (e.g., WHERE predicate, select list item, etc.)</p>
<p>				3. the procedure parameters are outerreferences in the FROM clause</p>
<p>				This has been fixed. The workaround is to add an extra statement inside the procedure to make it not a candidate for inlining (e.g., &quot; if 1 = 0 then return end if;&quot;)</p>
<p>				CREATE PROCEDURE CRASH ( @databaseid INTEGER, @tableid INTEGER, @rowid BIGINT )</p>
<p>				WITH RECURSIVE SIMPLE</p>
<p>				( databaseid, tableid, rowid, mtableid, mrowid, stableid, srowid ) AS </p>
<p>				(</p>
<p>				SELECT databaseid, tableid, rowid, stableid, srowid, stableid, srowid </p>
<p>				FROM ATABLE</p>
<p>				WHERE databaseid = @databaseid AND stableid = @tableid AND srowid = @rowid</p>
<p>				UNION ALL </p>
<p>				...</p>
<p>				SELECT databaseid, changeno, rowchangeno</p>
<p>				FROM T rc</p>
<p>				WHERE EXISTS (SELECT * FROM CRASH( rc.databaseid, rc.tableid, rc.rowid ) )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633376">633376</a></td>
<td>In the Create Synchronization Model wizard, if a download subset was setup by user or remote ID using a joined table, and the joined table was also synchronized, then the download subset clause generated for that table would have joined the table to itself. This has been fixed. A workaround is to change the download subset in the table mapping editor to not use a joined relationship table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633379">633379</a></td>
<td>The Interactive SQL utility would have crashed if the &quot;Approximate&quot; box in the Spatial Viewer window was checked before a query had been entered. This has been fixed by disabling the box when appropriate.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633465">633465</a></td>
<td>Under rare circumstances, Application Profiling or diagnostic tracing could have caused the server to crash when the application being profiled used UPDATE statements with complex FROM clauses. This has been fixed.</p>
<p>				A workaround is to avoid capturing the PLANS_WITH_STATISTICS level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633470">633470</a></td>
<td>The SQL Anywhere Monitor launcher now includes support for a new switch, &quot;-t&quot;, which will start the Monitor Developer Edition with TLS (i.e. HTTPS). In order to use this new feature, you an encryption certificate is needed along with its associated password. </p>
<p>				The parameters for this switch are as follows: </p>
<p>				-t &lt;Encryption Certificate&gt; &lt;Certificate Password&gt; </p>
<p>				Where &lt;Encryption Certificate&gt; is the fully-qualified path to an encryption certificate and &lt;Certificate Password&gt; is the password for the certificate.</p>
<p>				For example: </p>
<p>				C:\&gt; samonitor.exe -d C:\path\to\db\samonitor.db -t C:\path\to\cert\cert.cer myPassword </p>
<p>				Note that this switch is not supported with the Production (i.e. Standalone) Edition of the Monitor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633486">633486</a></td>
<td>Dragging and dropping within the Favorites sidebar did not work consistently and have been fixed. Specifically, the following actions did work correctly:</p>
<p>				1. Dropping at the end of the list did nothing. Now the dragged item is moved to the end of the list.</p>
<p>				2. Dropping an item to a location farther down the list would move it one higher than the indicated drop location. Now items are dropped where indicated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633488">633488</a></td>
<td>On Unix systems, a process&#39;s address space can be limited by using &quot;ulimit -v&quot; or by various methods of setting system-wide defaults that are dependent on the version of Unix. The 64-bit SQL Anywhere server was not taking that limit into account when computing a maximum cache size and insufficient address space would have been left available for the server&#39;s other address space needs. This problem has been fixed.</p>
<p>				Note, this issue is similar to Engineering case 586837, but only affects version 12.0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633490">633490</a></td>
<td>The samonitor.sh file used to start and stop the SQL Anywhere Monitor on Linux was missing a &quot;launch&quot; option in the Developer Edition. This has been fixed. The &quot;launch&quot; option can be used to both start the SA Monitor and open up a web browser to the Monitor&#39;s web interface at the same time, rather than requiring the user to go through two separate steps.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633503">633503</a></td>
<td>When attempting to name or rename a task, if the new name contained characters that were not allowed in a file name (e.g. &quot;\&quot; or &quot;?&quot;), the property sheet for the remote task would simply refuse to close without explanation. This has been fixed so that an error message is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633520">633520</a></td>
<td>The &quot;Rows awaiting upload&quot; checkbox was enabled in the property sheet for a Remote Task even if that task was associated with a Remote Schema Name for a SQL Anywhere database. Now, the checkbox is disabled in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633524">633524</a></td>
<td>When running application profiling, or manually diagnostic tracing with host variables, the server may have hang. This has been fixed. A workaround is to avoid enabling the host-variable tracing level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633527">633527</a></td>
<td>When creating a Remote Task or when setting a task&#39;s properties checking the &quot;AC Power&quot; checkbox, and selecting &quot;Computer is running on AC power&quot; from a combobox, was required to specify that a task should run only when the remote computer was running on AC power. Now, the combobox has been removed and the checkbox text simply says &quot;Computer is running on AC power&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633600">633600</a></td>
<td>Some Visual Studio integration related problems were not handled by SetupVSPackage.exe, but were problems caused by SA installer when installing the SA ADO.NET provider and the SA Visual Studio Integration Package. Some of these problems were</p>
<p>				1. Incorrect machine.config file.</p>
<p>				2. SA ADO.NET provider assemblies were not added to GAC.</p>
<p>				3. SA ADO.NET provider assemblies did not show up in Visual Studio Add Reference dialogbox.</p>
<p>				4. Visual Studio failed to create DataSets or Entity Framework Models using SA data sources.</p>
<p>				Re-installation of SQL Anywhere was usually required to fix these problems. Now all Visual Studio integration related code has been implemented in SetupVSPackage.exe, and any Visual Studio integration problem should be fixed by running SetupVSPackage. It will perform the following tasks:</p>
<p>				1. Add / Remove assemblies of SA ADO.NET provider and integration package to / from GAC.</p>
<p>				2. Register or unregister SA ADO.NET provider in machine.config. </p>
<p>				3. Create registry keys for SA integration package</p>
<p>				4. Create registry keys for Visual Studio Add Reference dialogbox.</p>
<p>				5. Copy / Remove SSDLToSA12.tt to / from Visual Studio 2010 folder (%VS_DIR%\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen).</p>
<p>				6. Register or unregister SA ADO.NET provider in %SQL Server 2008 DIR%\100\DTS\ProviderDescriptors\ProviderDescriptors.xml which is used by SQL Server Integration Service.</p>
<p>				7. Setup Visual Studio IDE for SA integration package.</p>
<p>				SetupVSPackage.exe is executed by the SQL Anywhere installer when installing or uninstalling SQL Anywhere, but SetupVSPackage.exe can be run separately. Two versions of SetupVSPackage.exe will be installed:</p>
<p>				1. %SQLANY%\Assembly\V4\SetupVSPackage.exe - This version is built using .NET Framework 4, this version should be used if .NET Framework 4 is installed.</p>
<p>				2. %SQLANY%\Assembly\V2\SetupVSPackage.exe - This version is built using .NET Framework 2, this version should be used if .NET Framework 4 is not installed.</p>
<p>				A performance issue when running SetupVSPackage.exe for Visual Studio 2008 and 2010 has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633610">633610</a></td>
<td>The &quot;Find/Replace&quot; dialog could have failed to find text when the &quot;Look in selection&quot; box was checked. This was most likely to happen if the selection started far from the start of the text, and ended close to the end of the text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633633">633633</a></td>
<td>When attempting to start the server on a machine with 256 or more processors, the server would have failed to start with assertion failure 109511: &quot;Memory allocation size too large&quot;. This has been fixed. A workaround is to reduce the number of processors used by the server with the -gt or -gtc command line options.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633636">633636</a></td>
<td>The messages pane height was not being set to the number of lines specify in the Options dialog. This has been fixed. At the same time, the components related to the Messages pane height are now disabled in the Options dialog until the &quot;Show separate Message pane&quot; box is checked, since the height is used only when this box is checked.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633643">633643</a></td>
<td>The &quot;Deploy Configuration File&quot; window indicated that a Relay Server URL was to be entered, which was not correct. What was supposed to be entered was the URL suffix (everything after the host and port number). The label for the field has been changed to &quot;Relay server URL suffix&quot; and an example has been added under the field to illustrate typical values.</p>
<p>				Also, the code which was supposed to populate the &quot;Relay Server URL suffix&quot; field with whatever value was used previously was incorrect, and has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633685">633685</a></td>
<td>Under rare situation, the Relay Server Outbound Enabler (RSOE) may have crashed during channel renewal. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633740">633740</a></td>
<td>Blobs and Clobs in temporary tables were not always being freed. This has been corrected, truncation of temporary tables will now free blobs within the freed rows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633744">633744</a></td>
<td>On Mac OS X systems, the name of a saved history file was given the extension &quot;..sq&quot;, rather than &quot;.sql&quot;, when an explicit file extension was not entered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633747">633747</a></td>
<td>Unsetting the public option Oem_string would have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633753">633753</a></td>
<td>If an application deleted a row from a table with a unique index, then subsequently called an external environment procedure, and the external environment procedure then re-added the row using the server-side connection, the application would have received an assertion failure (200112) message on rollback. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633758">633758</a></td>
<td>The MobiLink Replay utility (mlreplay) had an unnecessary stack size restriction that could have caused it to crash with a stack overflow error if large objects and arrays were placed on the stack when using the replay library. This stack size restriction has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633773">633773</a></td>
<td>The method used for an internal database server timer on Linux to support request timing (-zt option,) and row access times in the graphical plan with statistics, was unreliable. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633775">633775</a></td>
<td>Exporting source control commands from the &quot;Custom Source Control Options&quot; window could have caused the Interactive SQL utility to crash on Mac OS X systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633784">633784</a></td>
<td>The &quot;Tools&quot; button on the &quot;Connect&quot; window, and any toolbar buttons in Sybase Central which have drop-down arrows, were drawn without the usual button border and background gradient on Linux and Solaris computers. This has now been fixed so that they have the correct background and border.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633795">633795</a></td>
<td>Under rare circumstances, a query with a CONTAINS clause or predicate could have returned incorrect results when executed on a connection with snapshot isolation. For the problem to have occurred, the query would have had to have used an IMMEDIATE text index with a high volume of updates. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR633799">633799</a></td>
<td>The &quot;Find/Replace&quot; window could have opened without any components if it was opened from a window used to view a stored procedure or view. The window typically contained only a grey or white rectangle. The problem happened only when opening a file in the editor window, or when clicking &quot;File/New&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634029">634029</a></td>
<td>Pressing Shift+F10 while a syntax-highlighting editor had focus should have opened its context menu, but did not happen consistently. This has now been fixed.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634032">634032</a></td>
<td>The &#39;Find/Replace&#39; toolbar button did not work in an editor window if the toolbar had been undocked. This has been fixed by preventing the toolbar from being undocked.</p>
<p>				A workaround is to use the menu item or F3 key to open the &#39;Find/Replace&#39; window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634033">634033</a></td>
<td>When loading shapes into a round-earth spatial reference system, certain valid shapes may have incorrectly generated the error &quot;Invalid polygon: multiple exterior rings&quot; (Error Code -1451) This would have occurred for polygons with holes (i.e., polygons defined by two or more rings), and was most likely to occur when the hole appeared near the edge of the exterior ring. There was a small possibility that the reported error could instead have been &quot;Invalid polygon nesting&quot; (Error Code -1450), &quot;Invalid polygon: no exterior ring&quot; (Error Code -1449), or that any of these errors could occur for a valid polygon (with or without holes) whose exterior ring crossed the equator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634055">634055</a></td>
<td>When editing a stored procedure or view in a separate window, the &quot;Undo&quot; toolbar button was not enabled following a paste. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634180">634180</a></td>
<td>Selecting multiple columns in the Data tab for a table in an UltraLite database was not possible. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634181">634181</a></td>
<td>The amount of data in CHAR, NCHAR or BINARY variables could have exceeded the declared length of the variable when data was appended using the string concatenation operator (||). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634184">634184</a></td>
<td>The MobiLink agent for central administration of remotes could not be configured as a Windows service with dbsvc. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_80.htm#CR634189">634189</a></td>
<td>If a connection string was made up of parameters coming from the connection string and from the data source, and the UID and PWD/ENP parameters were not all in the connection string or all in the data source, the PWD/ENP parameters would have been ignored. For example, if DSN &quot;foo&quot; contained a UID but no PWD, then the connection string &quot;DSN=foo;PWD=secret&quot; would ignore the PWD field. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634191">634191</a></td>
<td>If an application made an external C environment call with a NULL argument, and the external C environment routine subsequently called get_value() to retrieve the NULL argument, then the environment would have incorrectly returned a status of 0 indicating failure to the external C environment routine, rather than returning a non-zero status. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634195">634195</a></td>
<td>Synchronization model generated event scripts with errors or warnings could have included lines starting with #ERROR or #WARN, instead of having commented error or warning messages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634196">634196</a></td>
<td>When editing data in a scrollable table, the first keystroke pressed in a cell whose value was &quot;(NULL)&quot; or &quot;(DEFAULT)&quot; was being inadvertently ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634198">634198</a></td>
<td>When deploying a Synchronization Model with Java or .NET table scripts, the scripts would not have been added. Instead of having the SQL to define such scripts, the generated SQL file would have included an error message &quot;Scripts of type &#39;x&#39; not supported&quot; where &#39;x&#39; was Java or .NET. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634289">634289</a></td>
<td>Attempting to upgrade a database would on rare occasions have failed with a &#39;database in use&#39; error, even though there was no other connection active on the database. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634293">634293</a></td>
<td>The Interactive SQL utility could have crashed when sorting a large result set which returned tens of thousands of rows. This would have occurred in the following situation:</p>
<p>				1. Click the column header to sort by that column </p>
<p>				2. Click &quot;Yes&quot; when asked to fetch the remaining rows</p>
<p>				3. Cancel fetching the rows</p>
<p>				4. Click a different column header to sort by some other column</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634294">634294</a></td>
<td>Due to a bug in some BlackBerry OS versions, an UltraLiteJ application may have failed to create a database on some simulators and devices. Typically, the result would have been an I/O or access control error. This condition may have occurred more frequently if UltraLiteJ was uninstalled and re-installed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634302">634302</a></td>
<td>The Interactive SQL utility could have crashed when sorting a result set which returned tens of thousands of rows. This would have occurred in the following situation:</p>
<p>				1. Click the column header to sort by that column</p>
<p>				2. click &quot;Yes&quot; (or press Enter) when asked to fetch the remaining rows</p>
<p>				3. Immediately press the F5 key.</p>
<p>				The crash will occur once the entire result set had been read. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634313">634313</a></td>
<td>If Ultralite for Mac OS X or IPhone attempted to synchronize through a proxy host while using HTTPS or TLS, the connection would not have been established, and the sync would have failed. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634324">634324</a></td>
<td>The Timeout parameter of the system procedure xp_startsmtp() was being ignored. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634327">634327</a></td>
<td>The server may have hung while running the Validation utility (dbvalid), or the equivalent VALIDATE DATABASE statement. This was only possible if multiple connections were open to the database, at least one of which is doing DDL (such as an ALTER TABLE statement), and a checkpoint or connection attempt was made during the validate. This has now been fixed.</p>
<p>				Note, it is recommended that the database server not be servicing other connections while database validation is taking place.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634330">634330</a></td>
<td>Kerberos server principals needed to be of the form: server_name@REALM (for example myserver@SYBASE.COM). There was no way to specify a Kerberos server principal of the industry standard form: server_name/hostname@REALM (for example myserver/mymachine.sybase.com@SYBASE.COM). Now the Kerberos server principal can be specified with the server -kp option. The server principal specified by -kp must have been extracted to the Kerberos keytab file on the machine running the database server. Note that only one of -kp or -kr can be specified.</p>
<p>				-kp dbengX/dbsrvX server option: </p>
<p>				Specifies the Kerberos server principal and enable Kerberos authenticated connections to the database server.</p>
<p>				Syntax: </p>
<p>				-kp server-principal</p>
<p>				Applies to: </p>
<p>				all OSes except Windows Mobile</p>
<p>				Remarks:</p>
<p>				This option specifies the Kerberos server principal used by the database server. Normally, the principal used by the database server for Kerberos authentication is server-name@default-realm, where default-realm is the default realm configured for the Kerberos client. Use this option if you want to use a different server principal, such as the more standard format server-name/hostname@myrealm. If OpenClient or jConnect Kerberos authenticated connections are made to the server, the server principal must be specified by the application (see SERVICE_PRINCIPAL_NAME for jConnect).</p>
<p>				The -kr option cannot be specified if the -kp option is specified.</p>
<p>				Specifying this option enables Kerberos authentication to the database server.</p>
<p>				See also: </p>
<p>				&lt;same list as -kr option documents, with the addition of the -kr option&gt;</p>
<p>				Example: </p>
<p>				The following command starts a database server that accepts Kerberos logins and uses the principal myserver/mymachine.sybase.com@SYBASE.COM for authentication. </p>
<p>				dbeng12 -kp myserver/mymachine.domain.com@MYREALM -n myserver C:\kerberos.db</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634340">634340</a></td>
<td>Synchronizations that worked fine on a BlackBerry Bold 9700 with OS 5.0.0.351, failed when the device was upgraded to 5.0.0.743. The application did not use BES or BIS communication, but tried Direct TCP, WAP 2.0 and WAP 1.x. When using BES or BIS communication, there was no issues with synchronization. This problem has been report to Research In Motion since it was discovered that calls to InputStream.read() had an additional 10 seconds overhead with OS 5.0.0.743 when using WAP 2.0 (and simillar delay with DirectTCP and WAP 1.x). UltraLiteJ has now been patch edto reduce the impact of this issue. </p>
<p>				For the most reliable synchronization, a device should be paired with a BES (BlackBerry Enterprise Server) or the application should use BIS communication (application provider can join RIM partner program for free and then apply to use the BIS protocol).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634437">634437</a></td>
<td>Selecting a database&#39;s Locks tab would have caused Sybase Central to crash if there were any ReadPK or WriteNoPK locks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634440">634440</a></td>
<td>In the Table Editor, a primary key column could have been marked for deletion by selecting the column and pressing the Delete key, even though the Delete menu item and Delete toolbar button were disabled. In such cases, attempting to save the table could have caused Sybase Central to crash. This has been fixed so that now pressing the Delete key does nothing when one or more of the selected columns is in the primary key.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634445">634445</a></td>
<td>As a side-effect of the changes made for Engineering case 627780, the Start Server in Background utility (dbspawn) on Windows no longer allowed the database server start line to be passed as a single quoted string. This behaviour has now been restored to its previous state on Windows only, and only for versions 10.0.1 and 11.0.1. Version 12 will retain </p>
<p>				the new behaviour as per the documentation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634453">634453</a></td>
<td>When attempting to export a large number of metrics (typically in the range of 50+ metrics and/or 1 million+ points), the SQL Anywhere Monitor could have reported &quot;Error #2038&quot;, or a java.lang.OutOfMemoryError. In an effort to prevent this, the SA Monitor now limits the amount of data that can be exported at one time. As of this fix, only a maximum of 25 metrics or 1 million points may be exported at once.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634489">634489</a></td>
<td>The Interactive SQL utility (dbisql) would have required the exact case for identifiers to be used when connecting to a SQL Anywhere case-sensitive database. This was incorrect for SQL Anywhere, as case-sensitivity affects string comparisons not identifiers, and has now been corrected. </p>
<p>				This general problem affected a number of other aspects of dbisql behavior, and have also been corected:</p>
<p>				1. The &quot;Lookup Table Name&quot; window, the &quot;Lookup Procedure Name&quot; window, and the text completer made case-sensitive searches for matching object names if connected to a case-sensitive SQL Anwyhere database. </p>
<p>				2. The INPUT USING statement would have failed if the table name in the FROM clause did not match the exact case of an existing table in the case-sensitive database from which data was being imported.</p>
<p>				3. In the Query Editor, the list of available columns did not show any columns unless the table name matched the case of the database table name (affects: &quot;Columns&quot;, &quot;GROUP BY&quot;, and &quot;ORDER BY&quot; tabs; &quot;Expression Editor&quot; window). Also, the &quot;Table pattern&quot; field on the &quot;Tables&quot; tab was applied in a case-sensitive way.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634503">634503</a></td>
<td>When completing the name of a column in a SELECT statement following the FROM clause, the completed text could have included the owner name for the table which contained the column, but not the table name. This was not valid SQL. Now, the owner name is not part of the inserted text.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634504">634504</a></td>
<td>SQL Anywhere ODBC data sources were not listed in Visual Studio&#39;s Add Connection dialogbox on 64 bit Windows systems. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634532">634532</a></td>
<td>Connections to a database using a large cache on Windows Mobile devices, could have failed with the error SQLE_DYNAMIC_MEMORY_EXHAUSTED. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634556">634556</a></td>
<td>For a Synchronization Model using server-initiated synchronization and a SQL Anywhere consolidated database, the generated publication_non_blocking_download_ack event script would have included a GO delimiter that caused an error when the script executed. This has been </p>
<p>				fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634559">634559</a></td>
<td>Upgrading a version 10 Synchronization Model with server-initiated synchronization enabled would have lead to the ml_set_sis_sync_state stored procedure being called in two events, because the old end_publication script was not removed when the replacement publication_nonblocking_download_ack event script was generated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634612">634612</a></td>
<td>When F5 was pressed, or View -&gt; Refresh Folder was selected, while creating a new table in the Table Editor and No selected when prompted to save the table, then the prompt to save dialog would have been shown again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634664">634664</a></td>
<td>The Microsoft SQL Server Reporting Services 2008 application uses the Linked Server mechanism to communicate via OLE DB to a SQL Anywhere server. It can send EXEC statements of the following form to the SQL Anywhere OLE DB provider:</p>
<p>				EXEC owner.procedure_name :parm1, :parm2, ...</p>
<p>				where :parm1, etc. are bound parameters.</p>
<p>				The SQL Anywhere OLE DB provider has been improved to now handle this syntax.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634675">634675</a></td>
<td>Sybase Central could have crashed when attempting to view the data of a table after dropping the table&#39;s primary key by some means other than Sybase Central (for example, via the Interactive SQL utility), and then refreshing the Sybase Central viewer via F5 or View -&gt; Refresh. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634724">634724</a></td>
<td>With the option Blocking set to &#39;off&#39;, any attempts to modify a row that is locked by another user will result in an error message. Occasionally, this error message would have contained the string &#39;another user&#39;, instead of a valid user name. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634728">634728</a></td>
<td>If a simple statement had one of the following forms and a table hint was used in the FROM clause, it was possible for subsequent statements from the same connection with the same form, but with different hints, to use the hints from the earlier statement.</p>
<p>				1) SELECT {table columns} FROM {table} WHERE {primary key col1 = val1, primary key col2 = val2, ... }</p>
<p>				2) UPDATE {table} SET ... WHERE {primary key col1 = val1, primary key col2 = val2, ... }</p>
<p>				3) DELETE FROM {table} SET ... WHERE {primary key col1 = val1, primary key col2 = val2, ... }</p>
<p>				This has been fixed. As a work-around, the statements can be change to include &quot;OPTIONS( FORCE OPTIMIZATION )&quot;, or the server can be started with the following command line switch: &quot;-hW AllowSimpleUserCache&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634765">634765</a></td>
<td>When an alert widget attempted to display a large number of alerts, it was possible that the web browser would have become unresponsive. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634775">634775</a></td>
<td>Execution of a CREATE TEXT INDEX &lt;name&gt; ON &lt;table_name&gt;(...) statement on a proxy table could have failed silently without giving an error. The creation of text indexes on proxy tables is not allowed, and the statement now gives the appropriate error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634785">634785</a></td>
<td>When applying an MSI install built using the deployment wizard, and specifying the target directory similar to the following:</p>
<p>				msiexec /i sqlany11.msi SQLANYDIR=&quot;{path to install directory}\xxx xxxxxxxx xx&quot;</p>
<p>				the install could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634791">634791</a></td>
<td>Sybase Central could have displayed a server twice in the tree. This could eventually have caused a crash when disconnecting from a database running on the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634883">634883</a></td>
<td>Connections which had communication compression enabled could have been dropped, resulting in the &quot;Connection was terminated&quot; error. This was more likely to occur if the connection had both communication compression and simple encryption enabled. If the server -z log and the client LOGFILE log was used, the message &quot;Failed to decompress a compressed packet&quot; would have appearred in one or both of the logs when this problem occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634894">634894</a></td>
<td>When modifying a character column value after selecting &quot;Edit in Window&quot; from the &quot;...&#39; menu, if there was a database error with the value, the value could have been corrected with a new value, but the old value was resent by mistake. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634898">634898</a></td>
<td>The wrong year could have been selected after clicking the &quot;Calendar&quot; button in a task&#39;s property sheet, or in the &quot;Delete Agent Events&quot; window. The problem occurred only if a date in a year other than the current one was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634900">634900</a></td>
<td>The server may have become deadlocked while acquiring shared latches. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634906">634906</a></td>
<td>Setting the &quot;Show results from each statement&quot; option would have resulted in incorrect behavior: Attempts to sort, select all, or copy column data would have resulted in an attempt to fetch more rows if required. That attempt should not have been made. When &quot;Show results for each statement&quot; is On, only the rows already fetched can be sorted. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634908">634908</a></td>
<td>In the Developer Edition, the SQL Anywhere Monitor required a reboot for System Tray - &gt; Browse Data to work. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634919">634919</a></td>
<td>The utility SetupVSPackage.exe did not modify the Global Assembly Cache (GAC) or the machine.config file if Visual Studio was not installed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634921">634921</a></td>
<td>When a ping synchronization took place, the MobiLink server needed to check the status of the connection to the consolidated database, and would have done so by executing a query to count the number of rows in the ml_scripts_modified table, but MobiLink would not have committed or rolled back this query when the ping synchronization was complete, leaving the transaction open. If the consolidated database used snapshot isolation, this open transaction would have resulted in the MobiLink server sending an older last modified timestamp than was necessary to remote databases until this transaction was closed, which would not happen until another non-ping synchronization re-used the same connection in the connection pool. While this did not result in any data loss, it could result in the same rows being downloaded to the remote databases multiple times. The MobiLink server no longer leaves this transaction open after a ping synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634933">634933</a></td>
<td>Deploying a Synchronization Model with the &quot;Run this wizard initialized with last deployment settings&quot; option would have given an empty field for the location of the UltraLite database file, instead of using the location from the last deployment. A workaround is to use the Browse button to pick the previously deployed UDB file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634934">634934</a></td>
<td>If a computer was configured to display numbers with a thousands separator, and a NUMERIC, REAL, FLOAT, or DECIMAL value that contained a thousands separator was edited, the editor would have started empty and the bell would ring. Now the thousands separator is stripped out, and the resulting string is used as the initial editor value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR634938">634938</a></td>
<td>The Task Wizard would have crashed if the &quot;This task requires or creates a remote database&quot; checkbox was checked, but no Remote Schema Names had been added to the project. The crash happened when the &quot;Finish&quot; button was clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635035">635035</a></td>
<td>While very rare, it was possible for the Server Enumeration utility (dblocate) to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635062">635062</a></td>
<td>The Relay Server Outbound Enabler (RSOE) could have failed to connect to an Apache Relay Server, with the error message &quot;HTTP chunk length too long&quot;. The same RSOE would not have reproduced this error with a Microsoft IIS webserver. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635066">635066</a></td>
<td>When Snapshot isolation was enabled, deleted rows might not have been physically removed in some cases. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635072">635072</a></td>
<td>Specifying a single, empty authentication parameter on the dbmlsync commandline, or using a synchronization profile, would have caused dbmlsync to report &quot;out of memory&quot;. For example specifying the following on the commandline would have caused the error:</p>
<p>				-ap &quot;&quot;</p>
<p>				This problem has been fixed. </p>
<p>				Note, a workaround is to specify the parameter using a single comma. For example -ap , This passes a single empty authentication parameter but does not cause the &quot;out of memory&quot; error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635078">635078</a></td>
<td>If the preferred language was &quot;Simplified Chinese&quot;, the date picker would not have displayed the month names when attempting to set a date range on the Export Metrics dialog. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635085">635085</a></td>
<td>Attempting to create or interact with a database on an attached Windows CE device using the desktop tools (i.e. Sybase Central or command line utilities), using a WCE:\... database filename, would have fail. The WCE:\... paths have now been special cased when qualifying filenames.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635120">635120</a></td>
<td>In exceptionally rare conditions, the server may have crashed while reading a row of a table that had a very large number of columns. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635166">635166</a></td>
<td>If a user had a Resource List Widget that was sorted based on resource status, and a resource updated its status, the widget would not have been re-sort. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635167">635167</a></td>
<td>Database connections acquired from the HTTP connection pool may have incorrectly referenced Global Temporary tables. Typically, a procedure that inserted data would have failed with a (SQLCODE -207) &quot;Wrong number of values for INSERT&quot; on subsequent HTTP requests. This has been fixed. A work-around is to disable HTTP connection pooling with the following database option: set option Public.http_connection_pool_basesize=0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635168">635168</a></td>
<td>If a read-only user logged in to the SQL Anywhere Monitor and attempted to close a SQL Anywhere connection using the Connection Widget, it would have failed silently. This has been fixed. Read-only users can now successfully close connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635175">635175</a></td>
<td>When there was a design problem in the Notifier property (e.g. user defined a request_cursor referencing an unknown column), the Notifier would have reported the SQLException on MobiLink server startup, but the error report did not contain enough context information to pinpoint the issue efficiently. The Notifier would also have produced repeated NullPointerException in the MobiLink log after it failed to start. This has been fixed to add context information in addition to the SQLException and stop the Notifier from running if it has encountered a design problem.</p>
<p>				The following is an example output after the fix.</p>
<p>				&lt;Main&gt; [-10133] java.lang.Exception: Notifier(Simple).request_cursor: Failed to prepare request cursor</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.notifier.Notifier.connectDB(Notifier.java:390)</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.notifier.Scheduler.connectDB(Scheduler.java:360)</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.notifier.Scheduler.run(Scheduler.java:428)</p>
<p>				&lt;Main&gt; [-10133] at java.lang.Thread.run(Thread.java:619)</p>
<p>				&lt;Main&gt; [-10133] Caused by: java.sql.SQLException: [Sybase][ODBC Driver][SQL Anywhere]Column &#39;bogus_content&#39; not found</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.jdbcodbc.IConnection.nativePrepareStatement(Native Method)</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.jdbcodbc.IConnection.prepareStatement(IConnection.java:554)</p>
<p>				&lt;Main&gt; [-10133] at ianywhere.ml.notifier.Notifier.connectDB(Notifier.java:388)</p>
<p>				&lt;Main&gt; [-10133] ... 3 more</p>
<p>				&lt;Main&gt; &lt;SISI&gt;&lt;Scheduler(0:1)&gt;: Shutdown</p>
<p>				&lt;Main&gt; &lt;SISI&gt;&lt;Scheduler(0:1)&gt;: Disconnected from database</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635300">635300</a></td>
<td>The text displayed by an evaluation version of the MobiLink server was truncated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635322">635322</a></td>
<td>The cleaner may not have completely cleaned pages in some situations. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635336">635336</a></td>
<td>The MobiLink Server Log File Viewer would have shown empty user names and remote IDs in its &quot;Synchronizations&quot; and &quot;Details&quot; panels when running on a non-English Solaris, Mac OS X, or French Linux system, and Sybase Central was set up to run in that non-English language. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635353">635353</a></td>
<td>The server could have hung when a connection disconnected, or was dropped. This was more likely to have occurred if the server was under heavy load. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635356">635356</a></td>
<td>The server could have crashed under certain specific circumstances when executing the DROP STATISTICS statement. This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635357">635357</a></td>
<td>A deleted row with a blob column could have been created with an invalid format when using the MobiLink Replay utility&#39;s replay API if the code generated by mlgenreplayapi was modified so that the blob value can be passed to the Delete method of the MLReplayUploadTable_&lt;table name&gt; class. The result of trying to synchronize this deleted row would have been a failed synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635419">635419</a></td>
<td>Attempting to retrieve the uid_has_hyphens option setting through the SNMP interface would always have returned NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635433">635433</a></td>
<td>Attempting to change the type of an existing command would have put the &quot;Commands&quot; panel in Sybase Central in a state where it was not possible to modify the command unless some other item was selected in the &quot;Folders&quot; pane, then the remote task again was selected again. Other symptoms included the drop-down list for the &quot;Command type&quot; flashing briefly before disappearing. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635442">635442</a></td>
<td>The MobiLink Agent for central administration of remotes could have failed to upload its log file if the file upload command used the variable &#39;agent_log&#39; for the filename. The failure would have occurred if the full filepath of the log file was long (more than 100 bytes). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635443">635443</a></td>
<td>When not connected to a database in the SQL Anywhere Console utility (dbconsole), the &quot;File/Options&quot; menu is disabled. The &quot;Options&quot; context menus for the &quot;Connections&quot;, &quot;Properties&quot;, and &quot;Messages&quot; panels were not disabled. This has been corrected so that now they are disabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635466">635466</a></td>
<td>When making a TCP connection to a remote machine that was unavailable (i.e. powered off, network cable unplugged, etc.), the time taken to time out could have been far longer than the value of the TIMEOUT parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635468">635468</a></td>
<td>On Mac OS X systems only, the names of favorites in the Favorites sidebar would have disappeared when the mouse was moved over them. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635618">635618</a></td>
<td>When converting a string to a time using the CONVERT function and an explicit format-style, SQL Anywhere 10.0 and above could have rejected conversions permitted by earlier versions.</p>
<p>				For example, the following statement is accepted by version 9.0, but rejected by version 10.0 and above:</p>
<p>				select convert( time, &#39;11:45am&#39;, 14 ) tm_conv </p>
<p>				The behavour of converting from strings to TIME changed from version 9.0 of SQL Anywhere to version 10.0 and later, with version 10.0 and later applying the same rules that conversions from string to timestamp used. The string &#39;11:45am&#39; does not precisely match the format style 14 (hh:nn:ss:sss) because it contains an &quot;am&quot; indicator that is not present in the style. </p>
<p>				Parsing of formatted time strings has been enhanced so that the time portion of a string is accepted provided that it matches the format [hh:nn:ss.ssssssAA]. The time string must specify the hour digits, but all other time parts are optional. The AM/PM indicator is always accepted whether or not time parts are omitted. Note that this now permits up to six digits to represent microseconds after the seconds. This change affects the conversion of string to TIME and also to TIMESTAMP, so there is a consistent parsing. The following is rejected after this change, even though it was accepted in 9.0:</p>
<p>				select convert( time, &#39;1991-02-03 11:45&#39;, 101 )</p>
<p>				The string does not match the style format 101 (mm/dd/yyyy).</p>
<p>				Further, in some cases it was possible to generate invalid timestamps with string conversions. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635629">635629</a></td>
<td>If the Platform field on the Overview page had a long name, the horizontal splitbar could not be moved to view it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635652">635652</a></td>
<td>When working with the Recommendations panel within Profiling, its suggestions may sometimes have contained a very long line, which it would have shown in the text area without any line wrapping. This meant that scrolling from left to right was required to view its contains. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635655">635655</a></td>
<td>If -xs was used to start the HTTP or HTTPS server on a Windows machine with IPv6 enabled, and the port number to be used was already in use by an IPv4-only application, the server would have reported a bind error (&quot;Could not bind to address 0.0.0.0:80&quot;) but would have started anyway. This has been fixed - the server will refuse to start in this situation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635660">635660</a></td>
<td>When choosing columns to add to a delete shadow table in the Download Delete Subset tab for a table mapping, the expression for which the columns were required was not shown when the download delete subset option was &quot;Same&quot; and the download subset option was &quot;Custom&quot;. Changing to the Download Subset tab was required to see the expression. This has been fixed. Now the custom download subset table list and SQL expression are displayed as </p>
<p>				read-only in the Download Delete Subset tab when the download delete subset option is &quot;Same&quot; and the download subset option is &quot;Custom&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635800">635800</a></td>
<td>The error, SQLE_TOO_MANY_CURSORS, would have been reported when there were more than 32 prepared statements for a cursor, each of which had a parameter set. The limit should have been 64 prepared statements. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635803">635803</a></td>
<td>Diagnostic tracing databases, or databases created by the automatic Application Profiling Wizard, would have failed to start if the original database had auditing enabled. This has been fixed.</p>
<p>				A workaround is to temporarily disable auditing on the main database, create the tracing database, and then re-enable it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635809">635809</a></td>
<td>The server&#39;s memory usage could have been more than expected. Some memory allocations that could have been from the server&#39;s cache, came from the heap instead. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635815">635815</a></td>
<td>If Java or other external environment objects were installed in a database, and the database failed to shut down cleanly before the next checkpoint, then it was likely that the Java or external environment objects would have needed to be re-installed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635956">635956</a></td>
<td>A query with a CUBE, ROLLUP, or GROUPING SETS clause and HAVING predicates may have returned an incorrect result set. The query must not have had any aggregate functions, and the grouping sets must have contained the grand total which should have been filtered by the HAVING predicates, but instead it was returned as a valid row. </p>
<p>				For example: </p>
<p>				select n_comment from nation group by cube (n_comment) HAVING n_comment like &#39;alw%&#39;;</p>
<p>				The result set would have contained all the rows with n_comment for which the predicate &quot;n_comment LIKE &#39;alw%&#39; is TRUE, but also the row &quot;(NULL)&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635960">635960</a></td>
<td>Attempting to using Integrated Login, or Kerberos, with the NodeType connection parameter could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635961">635961</a></td>
<td>Attempting to connect using Integrated Login to a mirror server, or copy node, would have failed with the error &quot;Integrated login failed&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635977">635977</a></td>
<td>The MobiLink server could have hung if it was shutdown after the consolidated server was shutdown or the consolidated server had crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR635991">635991</a></td>
<td>Attempting to unload and reload a 12.0.0 database which was configured for mirroring or read-only scale-out, could have resulted in a syntax error during reload. The syntax error would have occurred on a SET MIRROR OPTION or ALTER MIRROR SERVER statement. This has been fixed.</p>
<p>				As a work around, the reload.sql file can be edited to double the embedded quotes and escape other characters requiring escaping in these statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636018">636018</a></td>
<td>Queries involving indexes containing long values could have returned incorrect results. Index corruption was possible, but not likely. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636082">636082</a></td>
<td>UltraLite should generate an error if a column in a primary key was dropped, but this situation was not being properly diagnosed. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636289">636289</a></td>
<td>Under rare circumstances, the server could have hung when synchronizing (or rarely, fetching) large blobs or spatial data. This has been fixed.</p>
<p>				A partial workaround is to decrease the frequency of checkpoints; the hang is most likely to occur during a checkpoint. Of course, decreasing the checkpoint frequency will increase recovery time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636304">636304</a></td>
<td>Opening the Domain, Web Service or Spatial Reference System property dialogs could have caused the Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636305">636305</a></td>
<td>When the transaction log contained many entries, sorting of the audit table could have been very slow. This has been fixed by no longer allowing the audit table to be sortable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636307">636307</a></td>
<td>A simple UPDATE statement that affected a large number of rows could have consumed memory proportional to the number of rows if the statement used one of the following features:</p>
<p>				- results from a user-defined function with numeric Expression Caching (any data type)</p>
<p>				- a LIKE predicate</p>
<p>				- a CAST of a string to an approximate number (REAL, DOUBLE, or FLOAT)</p>
<p>				- the SORTKEY or COMPARE builtin function</p>
<p>				- the REMAINDER or MOD builtin functions with arguments of type NUMERIC or DECIMAL</p>
<p>				- the MEDIAN aggregate function</p>
<p>				- a spatial data type</p>
<p>				If the memory usage exceeded what was allowed for one connection, the statement would have failed with a dynamic memory exhausted error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636310">636310</a></td>
<td>In the &quot;Connect&quot; window, &quot;Tools/Save as ODBC Data Source&quot; can be clicked to save the contents of the window as a DSN. That window was not closing when the Esc key was pressed. This has been fixed so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636312">636312</a></td>
<td>Selecting &#39;Undo&#39; or &#39;Redo&#39; (or typing Ctrl-Z or Ctrl-Y) while viewing a spatial reference system&#39;s Definition tab, a system trigger&#39;s SQL tab, a Java class&#39;s Description tab, or an external environment object&#39;s Contents tab, would either have caused Sybase Central to crash or hang, when selecting another object in the tree. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636315">636315</a></td>
<td>A database could have been corrupted when run with Lazy Loading and a prepared query, which required a temporary table, was reused. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636316">636316</a></td>
<td>If an application connected to a database that had either been initialized or upgraded with version 12 software, and subsequently made several external environment calls, then in very rare cases, the application might have received an empty result from the external environment and the error:</p>
<p>				Permission denied: you do not have permission to execute the procedure &quot;sajvm_JavaWorker&quot;</p>
<p>				would have been reported in the server console. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636421">636421</a></td>
<td>Tested and reproduced with Interactive SQL 11.0.1 2430 from PC Client 15.5</p>
<p>				Interactive SQL reaches 100% CPU when larger sql files are opened and scrolled. Depending on the machine processor (Pentium IV or older Pentium D), the performance gets very bad, or, according to customer&#39;s test, DBISQL can even hang.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636422">636422</a></td>
<td>The Interactive SQL utilirt can show results as a scrolling table, or as plain text. Changing this option using the &quot;Show Results as&quot; items in the &quot;Data&quot; menu, could have resulted in the option changing unexpectedly when disconnecting and reconnecting. The problem was that the option was not being saved consistently when it was changed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636438">636438</a></td>
<td>The exception &quot;ianywhere.ultralitej.implementation.JrException: UltraLiteJ Error[-280]: Publication &#39;ul_no_pub&#39; not found&quot; may have been reported for Connection.resetLastDownloadTime(Connection.SYNC_ALL_DB_PUB_NAME). A workaround would be to call Connection.getLastDownloadTime(Connection.SYNC_ALL_DB_PUB_NAME).getTime() prior to the call to resetLastDownloadTime(). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636442">636442</a></td>
<td>If a server in a read-only scale-out system redirected a connection to another server due to the NodeType connection parameter, the internal count for the number of client connections could have been incorrect. This could have caused the server to:</p>
<p>				- incorrectly prompt that there were active connections when shutting down the server</p>
<p>				- incorrectly determine if an unconditional dbstop or STOP SERVER was required</p>
<p>				- incorrectly enforce the -gm connection limit</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636508">636508</a></td>
<td>Attempting to use an unnamed multi-column unique constraint as an index hint in the FROM clause, would have caused the error &quot;Cannot find index named&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636520">636520</a></td>
<td>Indexes may have become corrupt when performing delete operations. The corruption was more likely to occur on multi-column indexes when the data in the index consisted of disjoint sets of highly clustered data, and may manifest itself by causing assertions such as 106200, 106201, 106216, 106217, or as errors from dbvalid. This has now been fixed, Rebuilding the affected indexes using a server with this fix, by executing the &quot;ALTER INDEX REBUILD&quot; statement, should be done when experiencing indexing related problems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636535">636535</a></td>
<td>When building a text index using an external prefilter or term breaker, the server</p>
<p>				could have recorded the length of the document before prefiltering as the final length. This could have caused the scores reported by the CONTAINS queries to differ (in most cases be lower) than expected. The problem did not affect the text indexes built using no external libraries.</p>
<p>				For example: If the following two values (documents)</p>
<p>				&#39;&lt;html&gt;&lt;body&gt;A &lt;b&gt;very&lt;/b&gt; nice day...&lt;/body&gt;&lt;/html&gt;&#39;</p>
<p>				&#39;&lt;html&gt;&lt;body&gt;Peace and quiet at home&lt;/body&gt;&lt;/html&gt;&#39;</p>
<p>				were indexed using a tag-removing prefilter, the lengths of the actual text were not equal, but the lengths recorded by the index would have included the lengths of the tags, making the document lengths equal. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636544">636544</a></td>
<td>There is a tool in the &quot;Connect&quot; window which creates an ODBC DSN from the contents of the window. If a DSN had been selected in the window, its contents were not included in the newly created DSN which usually made the new DSN useless. Now, the new DSN contains the parameters of the selected DSN.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636549">636549</a></td>
<td>The file in which custom source control settings were saved was incorrectly named &quot;.sybSourceControl999&quot;. It is now called &quot;.sybSourceControl610&quot;, and has been moved into the same directory as the other configuration files for the Interactive SQL utility. If a custom source control system has already been configured, it will have to be reconfigured after this change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_81.htm#CR636555">636555</a></td>
<td>Editing NCHAR, NVARCHAR, or LONGNVARCHAR values would have resulted in an error message of the form &quot;The row could not be inserted. Column ... not found&quot;. This has been fixed.</p>
<p>				Note, this problem would also have affected the &quot;Data&quot; tabs in Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636557">636557</a></td>
<td>Attempting to delete properties and transmission rules from the clients defined within a Server Message Store, could have failed either with or without an error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636558">636558</a></td>
<td>All of the items in the &quot;File&quot; menu (and others) would have been disabled after clicking a source control-related menu item, if that source control action failed. This would have occurred when using the &quot;custom&quot; source control option. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636565">636565</a></td>
<td>The TCP/IP protocol option table on the &quot;Network&quot; tab of the &quot;Connect&quot; dialog could have become disabled under some circumstances. The table was being disabled only if a parameter was entered on the &quot;Network&quot; or &quot;Advanced Options&quot; tabs, the tabs were hidden by clicking the &quot;Advanced&quot; button, then clicking &quot;Connect&quot; or &quot;Tools/Test Connection&quot; and declining to use the hidden connection parameters. This has been fixed, now the table is never disabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636568">636568</a></td>
<td>The QAManagerBase.close method could have hung when using a SQL Anywhere database as a message bus (ie. the message store is initialized with qaagent -sil). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636572">636572</a></td>
<td>If an application executed a remote query, and the query involved an IF or CASE expression in the select list, then the query would always have been processed in partial or no passthru mode, even if there was only one remote server involved. This restriction has now been relaxed such that remote queries containing IF or CASE expressions in the select list will now be executed in full passthru whenever possible, but only if the remote server is another SA server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636651">636651</a></td>
<td>The use of START AT or FIRST in a subquery may have resulted in incorrect results. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636654">636654</a></td>
<td>The Validation utility, or a VALIDATE INDEX statement, may have failed spuriously when run on indexes with 33 to 64 columns, if any columns beyond the 32nd were sorted in ascending order. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636655">636655</a></td>
<td>The server may have crashed when defining foreign keys that auto-created columns in the referencing table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636660">636660</a></td>
<td>SQL Anywhere web server required that the last boundary of a multi-part/formdata HTTP request be terminated with a carriage-return line-feed. This restriction has now been relaxed, the server will now accept the last boundary as valid even if it is not terminated with a CR/LF.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636664">636664</a></td>
<td>When connected to a 10.x or 11.x database running on a 12.x server, selecting the Procedures &amp; Functions folder in the tree would have caused Sybase Central to crash if objects owned by the user dbo were not being filtered out. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636694">636694</a></td>
<td>The Host parameter (hostname:port) was not being written, or updated, in the registry entry for a DSN created using the ODBC administrator and the &quot;Start and connect to a database running on another computer&quot; option on the Login tab. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636715">636715</a></td>
<td>The iAS ODBC driver for Oracle would have returned a wrong value for a parameter indicator through the ODBC API, SQLBindparameter( ..., c_type, ..., param_type, ..., &amp;indicator ), if it was called with the following parameters:</p>
<p>				1) the C data type of the parameter was SQL_C_WCHAR or SQL_C_CHAR</p>
<p>				2) the type of parameter was SQL_PARAM_INPUT_OUTPUT, but the corresponding parameter used in the SQL statement was input-only</p>
<p>				Due to this problem, the data for the user-defined named parameters in the MobiLink server may have been truncated after each use when the named parameter was defined as {ml u.varname} and the parameter used in the SQL statement was input-only. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636767">636767</a></td>
<td>In exceptionally rare conditions, the server may have crashed when expanding a very large view definition that contained a UNION, INTERSECT, or EXCEPT query node and the available cache was too small. This has been fixed. The server will now return a SQLSTATE_SYNTACTIC_LIMIT error in these cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636770">636770</a></td>
<td>If the database option Chained was set to OFF, upgrading the database would have failed with the error: &quot;COMMIT/ROLLBACK not allowed within atomic operation&quot;. This has been fixed by temporarily setting the option to ON within the upgrade script when needed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636780">636780</a></td>
<td>If a NO MINVALUE clause was explicitly specified in a CREATE SEQUENCE or ALTER SEQUENCE statement, the minvalue for the sequence would have been set at zero, instead of the documented default, 1. If a NO MAXVALUE clause was explicitly specified, the maxvalue would have been set to zero, instead of the default, 2^63-1. In both cases, the problem can be worked around by simply removing the NO MINVALUE or NO MAXVALUE clause if the default values are desired. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636801">636801</a></td>
<td>Unloading a version 9 database with a table with named primary key constraint could have failed if the primary key was referenced by an index hint in a view. This has been fixed.</p>
<p>				Also, unloading a version 10 or later database containing a table with a primary key index that had been renamed would have failed to preserve the new name for the index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR636807">636807</a></td>
<td>The MobiLink Agent for central administration of remotes could have allowed a regular task to run concurrently with a high priority task. This was incorrect, since a high priority task is supposed to run when no other tasks are running and exclude other tasks from starting while it is present on the agent. The incorrect behavior would only have occurred if at least two regular tasks were running concurrently, and then a high priority task was deployed to the agent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637026">637026</a></td>
<td>Characters from a charset other than the one the computer usually operates in could have been displayed as boxes in the text above the tabs in the right pane. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637036">637036</a></td>
<td>In the ODBC Administrator&#39;s datasource configuration dialog, the encryption field should have been treated like a password field, displaying it as a collection of asterisks, but instead it was being displayed in plain text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637037">637037</a></td>
<td>When a stored procedure was invoked through the Microsoft SQL Server Linked Server mechanism using an &quot;EXEC&quot; statement and specifying parameters, the call would have failed with a syntax error. The following is an example of a SQL Server query that is forwarded to a SQL Anywhere server: </p>
<p>				SELECT * FROM openquery(SALINK, &#39;exec test_proc 1&#39;) </p>
<p>				This problem has been fixed. When parameters are present in the SQL query, the statement is passed unchanged to the server. When no parameters are present, the OLE DB provider rewrites the &quot;exec&quot; statement using CALL and appends parameter marker place holders (in order to support ADO&#39;s ADODB.CommandTypeEnum.adCmdStoredProc).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637047">637047</a></td>
<td>The minimum width for the Plan Viewer window could have been less than 1024 pixels, and thus not completely visible on smaller monitors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637049">637049</a></td>
<td>In certain rare cases, the Connection List widget could have failed to populate. A race condition between the request for connection information and the establishment of a connection has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637057">637057</a></td>
<td>If the network connection between a primary server and a mirror server was temporarily broken, the primary server could have stopped sending updates to the mirror server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637063">637063</a></td>
<td>During a soft shutdown, the MobiLink server did not stop accepting new requests. This has been fixed. Now, when a new request connects during shutdown, the server will abort the request and print a new error, -13074: &quot;Aborting request that started during shutdown&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637125">637125</a></td>
<td>If an application executed a remote query that required the server to make a remote connection to another SA database, then there was a very rare chance that the server would have incorrectly failed the remote connection with the error: &quot;unable to connect, server definition is circular&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637146">637146</a></td>
<td>Two xml mapping files have been added to support SQL Server 2008 Integration Services:</p>
<p>				- MSSqlToSA.xml --- mapping SQL Server 2008 data types to SA data types.</p>
<p>				- SAToMSSql10.xml --- mapping SA data types to SQL Server 2008 data types.</p>
<p>				These files will be installed to &quot;%SA%\Assembly\V2&quot; folders. The utility SetupVSPackage.exe will copy them to, or remove them from, the &quot;%SQL Server 2008 Dir%\DTS\Binn&quot; folder.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637165">637165</a></td>
<td>The following defects related to the menu bar, which occurred only on Mac OS X systems, have now been fixed:</p>
<p>				- The &quot;Check for Software Updates&quot; menu item was missing</p>
<p>				- The text for submenus were indented more than was required</p>
<p>				- There were a number of spurious separators at the end of certain menus.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637169">637169</a></td>
<td>Starting with Visual Studio 2010, class libraries built with with the default project settings will no longer work with a MobiLink server running with its default CLR version.&nbsp; There are two workarounds for this: </p>
<p>				1) Change the target Framework of the VS project.</p>
<p>				When creating a new project, there is a drop down above the list of project types that contains &quot;.NET Framework 4&quot;; change this to &quot;.NET Framework 2.0&quot;, &quot;.NET Framework 3.0&quot;, or &quot;.NET Framework 3.5&quot;.&nbsp; If a version 4 project has already been created, change the target framework by right-clicking on the project in the Solution Explorer, and selecting &quot;Properties&quot; in the context menu.&nbsp; The target framework can be set on the &quot;Application&quot; tab.燱hen changing the target framework, there is no longer access to .NET 4.0 features; to use newer features, use the next workaround. </p>
<p>				2) Tell the MobiLink server to load the version 4 framework.</p>
<p>				To do this, add -clrVersion=v4.0.30319 to the -sl dnet options.&nbsp; The &quot;30319&quot; is the specific build number of the framework installed and may be different on your machine.&nbsp; To find the correct version, look in the .NET install location, which is typically &quot;c:\WINDOWS\Microsoft.NET\Framework\&quot;.&nbsp; The clrVersion to specify is the v4.0 sub-directory there.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637174">637174</a></td>
<td>If a file was inserted using the &quot;Edit/Insert File&quot; menu item, the file would have been locked by dbisql until dbisql was closed. If the Fast Launcher option was turned on, the file was locked until the Fast Launcher also shut down (which by default happens after 30 minutes of inactivity). Now, the file is unlocked as soon as its text has been added to the &quot;SQL Statements&quot; field.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637200">637200</a></td>
<td>If a user with DBA authority granted usage permissions on a sequence not owned by it to another user, that user with DBA authority could not have been dropped unless the permissions were also revoked; a foreign key violation error would have been reported. By contrast, permissions on other database objects granted by a user who is about to be dropped are revoked automatically. This has been fixed so that the necessary sequence permissions are also revoked automatically.</p>
<p>				A workaround is to manually revoke any sequence permissions granted by the user about to be dropped, then re-grant them from a user that will not be dropped. The original grantor can then be dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637203">637203</a></td>
<td>The column alignment used by the OUTPUT statement for the FIXED file format was often inappropriate for the data type. In general, numbers should be right-aligned, while everything else is left-aligned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637290">637290</a></td>
<td>On a machine with IPv6 enabled but not configured, the function property(&#39;TcpipAddresses&#39;) would have returned &quot;(::):2638&quot; as one of the addresses. This is the IPv6 INADDR_ANY address, and it is not useful to clients for making connections. If HTTP or HTTPS was in use, the functions property(&#39;HttpAddresess&#39;) and property(&#39;HttpsAddresses&#39;) would have had the same problem. This has been fixed so that now this address will no longer be listed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637309">637309</a></td>
<td>The MobiLink server could have crashed at the end of a version 9 or earlier synchronization request, or while processing the upload stream from a version 10 or later synchronization request.</p>
<p>				Also, the MobiLink server was not able to distinguish between empty strings in varchar(8) or smaller columns, binary(16) or smaller values made of only 0s, the integer 0, and null values when filtering the download. This could have caused rows to be incorrectly filtered from the download. For example, if an empty string was uploaded in a row, and the only difference between a downloaded row and that uploaded row was that the empty string became null, the row would have been ommitted from the download and the remote would not have received that update.</p>
<p>				These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637313">637313</a></td>
<td>When copying a number from a result set to the clipboard, the thousands separator was included in the copied number. This has been corrected so that the separator is removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637326">637326</a></td>
<td>An error could have occurred when deploying a Synchronization Model for an ASE consolidated database when a synchronized table had a MONEY or SMALLMONEY column and conflict resolution was enabled for the table mapping. ASE would have reported the error &quot;Can&#39;t specify a length or scale on type &#39;money&#39;&quot; when deployment tried to create a temporary table for conflict resolution, and incorrectly specified the length and scale for MONEY columns. This would also have occurred for a Microsoft SQL Server consolidated database with a synchronized table having a MONEY or SMALLMONEY column, and for an IBM DB2 consolidated database with a synchronized table having a LONG VARCHAR column. These problems have been fixed. Now the generated SQL does not specify length or scale for MONEY or SMALLMONEY columns with ASE and Microsoft SQL Server, or for LONG VARCHAR with IBM DB2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637333">637333</a></td>
<td>When using the ADO.NET Provider with a .NET Framework 4.0 Client Profile, Visual Studio 2010 generated some compile errors. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637336">637336</a></td>
<td>Dropping a text index used within a view could have caused the assertion failure message: &quot;Unable to delete row from SYSTABLE&quot;. This could have happen when the view definition contained a CONTAINS predicated that could have be satisfied by the text index. This has been fixed. A workaround is to drop the view, then drop the text index.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637340">637340</a></td>
<td>If a Unix server was started with a server name longer than 32 bytes, shared memory connections to it may have been dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637445">637445</a></td>
<td>The splash screens for the SQL Anywhere Console utility (dbconsole), the MobiLink Monitor, and the SQL Anywhere Monitor contained program names that were always in English. These mane have now been localized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637446">637446</a></td>
<td>Exporting TIME values to a DB2 database with an OUTPUT USING statement in the Interactive SQL utility would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637447">637447</a></td>
<td>The ALT left cursor and ALT right cursor keys on Solaris systems control the desktop and cannot be used to view executed SQL statements. The get around this limitation, the keys used now for viewing previous and next SQL statements on Solaris systems are the keys CTRL-up cursor and CTRL-down cursor respectively.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637453">637453</a></td>
<td>With the changes for Engineering case 576252, support for SQL Anywhere Explorer and SQL Anywhere Toolbar was disabled for Visual Studio version 2010. Now, SQL Anywhere Explorer and SQL Anywhere Toolbar have been disabled for Visual Studio versions 2005 and 2008 as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637456">637456</a></td>
<td>Attempting to import NCHAR types from ASE using the INPUT statement or the Import Wizard, would have failed with the message &quot;Cannot convert &#39;&#39; to a varbit&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637464">637464</a></td>
<td>As of version 10.0, the database server started accepting a number of new values for the request level logging option, SQL, PLAN, HOSTVARS, etc. The Console utility though still only allowed the older YES and NO values. This has now been corrected so that the Console utility now accepts these new values. These new options appear on the &quot;Console&quot; page in the &quot;Options&quot; dialog.</p>
<p>				Note that the logging options are presented as if they are separate, independent options, even though there are underlying dependencies between some of the them. For example, logging triggers also logs procedures and SQL. This is a server behavior rather than a Console utility behavior.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637476">637476</a></td>
<td>Importing data from a database that was not a SQL Anywhere or UltraLite database into an UltraLite database, using the Interactive SQL INPUT statement or the Import Wizard, could have failed. This would have occurred if a new table was to be created for the imported data and the data contained one or more INTEGER columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637481">637481</a></td>
<td>UltraLite client message stores created from Sybase Central did not have their store IDs set, even if a store ID was given in the Client Message Store wizard. Lack of the store ID would have caused a warning message to be displayed when attempting to disconnect from the database and stop the agent from Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637487">637487</a></td>
<td>In very rare cases, the MobiLink server would have generated the error: &#39;Function sequence error&#39; and aborted the synchronization request, when an upload stream contained spatial data. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637505">637505</a></td>
<td>Opening the property sheet for an article that referenced a subset of a table&#39;s columns and clicking the Cancel button to close it, would have caused the subset of columns to not have been displayed the next time the property sheet was opened. Pressing F5, or selecting View -&gt; Refresh in the main Sybase Central window, was required to get the property sheet to correctly display the set of columns in the article. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637620">637620</a></td>
<td>In rare circumstances, the server could have crashed while handling multiple TLS connections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637621">637621</a></td>
<td>If an application executed an INSERT statement that contained multiple VALUES lists, and the insert statement involved a remote table, then the server would have failed the INSERT with a &quot;remote server not capable&quot; error. The server will now push the multiple VALUES lists to the remote server, provided the remote server is another SA server and the INSERT statement can be processed in full passthru mode. It should be noted that if the remote SA server is an older version which does not support inserts with multiple values lists, then the remote SA will return a syntax error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637725">637725</a></td>
<td>The Available objects list would have been empty when creating SQL Server Integration Services data source view. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637743">637743</a></td>
<td>Calls to SQLGetTypeInfo() would have returned the wrong UNSIGNED_ATTRIBUTE column value for TINYINT. The TINYINT datatype is an unsigned type so the column should have contained a 1 rather than a 0. This problem has been fixed so that the UNSIGNED_ATTRIBUTE column result now agrees with the result returned by SQLColAttribute(SQL_DESC_UNSIGNED) for a TINYINT column.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637744">637744</a></td>
<td>Options set on the Advanced page of the ODBC administrator could not have been deleted. Options could have been changed, but to delete them it was necessary to recreate the ODBC datasource, or remove the options manually from the registry. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637745">637745</a></td>
<td>If an application executed a remote statement, and the remote statement required the server to execute the statement in either partial or no passthrough mode, then there was a chance the server would have crashed when the statement was overly complex, or if the server cache was exhausted. This problem has now been fixed by reporting an error in this situation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637769">637769</a></td>
<td>As part of the fix for Engineering case 632873, a problem was introduced where, under rare circumstances, an IMMEDIATE text index could have become corrupt. The corruption may manifest itself by preventing some documents from being found by matching queries. This has been fixed, but it is recommended that IMMEDIATE text indexes that are under heavy contention be recreated following applying this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637861">637861</a></td>
<td>When migrating data from a previous SQL Anywhere Monitor install while applying an EBF on Linux systems, it was possible that errors arising during the migration process would not have been reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637874">637874</a></td>
<td>When computing the VARIANCE, VAR_SAMP, VAR_POP, STDDEV, STDDEV_SAMP, or STDDEV_POP functions, the server could have incorrectly returned a negative value or NULL. This could have happened if the data was in a non-exact numeric column (that is, of type DOUBLE or FLOAT) and there was extremely little actual variance across the values. It most likely could only have happened when all the values were exactly the same. This has now been fixed.</p>
<p>				A workaround is to adjust the value over which the variance function is computed so that a tiny amount of variance is introduced. For example, instead of:</p>
<p>				SELECT VARIANCE(mycolumn) FROM mytable</p>
<p>				use:</p>
<p>				SELECT VARIANCE(mycolumn + 0.00000001*myprimarykey) FROM mytable</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637877">637877</a></td>
<td>When completing column names for tables that have aliases, the alias is now displayed in the completion list, and the alias is now used in the completed text. For example, if the completer is opened after &quot;Comp&quot; in the following statement:</p>
<p>				select Comp from customers C1, customers C2</p>
<p>				the completer will include &quot;Company (C1 - customers)&quot; and &quot;Company (C2 - customers)&quot;. If the second item is selected, the completed text will read:</p>
<p>				select C2.CompanyName from customers C1, customers C2</p>
<p>				Previously, &quot;Comp&quot; would be replaced by &quot;CompanyName&quot;, which was ambiguous.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637881">637881</a></td>
<td>When executing a remote query that required partial or no passthru processing, and the query made heavy usage of aliases, then the server could have incorrectly returned error &quot;-890 statement size or complexity exceeds server limits&quot;. This problem has now been fixed and the -890 error will now only be returned if the statement size or complexity really does exceed server limits.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637897">637897</a></td>
<td>On SUSE 10 systems, the server could have failed to start a database if the database file was mounted on an NFS share. The error given would be something like:</p>
<p>				&quot;Error: Database cannot be started -- /mnt/share/demo.db is not a database&quot;</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637901">637901</a></td>
<td>The Interactive SQL utility (dbisql) could have failed to connect to an UltraLite database specified on the command line (with -c) under the following conditions:</p>
<p>				- the UltraLite engine (uleng12) was started from one directory and dbisql was launched from another</p>
<p>				- the -c option to dbisqlL specified a relative path</p>
<p>				The result would have been that dbisql would have displayed the connection dialog, when it should have immediately connected to the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637909">637909</a></td>
<td>Executing a stored procedure and fetching the result set would have thrown the exception &quot;Index was outside the bounds of the array&quot; if the stored procedure selects results from a local temporary table with blob columns. The provider was determining the row buffer length prior to opening the cursor, this has been corrected so that it is done after the cursor has been opened.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637988">637988</a></td>
<td>If an incorrect password was supplied in the saldap.ini file, the server could have hung when attempting to register with LDAP. Also, SA client libraries could have hung when using LDAP to find servers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR637991">637991</a></td>
<td>The Interactive SQL utility could have crashed when completing a DELETE statement, if a table alias was given. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638001">638001</a></td>
<td>Attempting to start an external environment on a server machine that was overloaded or incorrectly configured, could have resulted in the error &quot;External environment could not be started, &#39;main thread&#39; not found&quot;. Quite often this problem was due to the external environment failing to establish a connection with the server within a specific timeout, either due to the server (or server machine) being overloaded, or due to incorrect configuration. The error message has now been changed to give a more meaningful reason for the failed START EXTERNAL ENVIRONMENT request.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638003">638003</a></td>
<td>A C/C++/Objective-C UltraLite application using a static runtime library would have always linked in the synchronization code, even if the application didn&#39;t use, or didn&#39;t enable, synchronization. On Mac OS X and iPhone, database applications not using synchronization would have still needed to link to the core, security, and network frameworks. This has been corrected so that only applications which enable synchronization will now include synchronization code. On Mac OS X and iPhone, the core, security, and network frameworks are now only required when using synchronization. As a consequence of this change, synchronization must be enabled to use the ML_GET_SERVER_NOTIFICATION() SQL function.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638011">638011</a></td>
<td>In certain circumstances it was possible that importing SQL Anywhere resources could have failed to report some errors, making it appear that the import was successful when in reality, one or more resources failed to import. This has been fixed. An error will now correctly be reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638021">638021</a></td>
<td>When the legacy option &quot;Pressing the Esc key clears SQL Statements...&quot; was on, and the Text Completer was open, pressing Esc would have both closed the completer and cleaed the SQL Statements field. Now, it just closes the completer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638147">638147</a></td>
<td>1. SyncParms.setAuthenticationParms( &quot;,a,,b,&quot; ) was interpreted as only having two authentication parameters (&quot;a&quot; and &quot;b&quot;) when it should be interpreted as 5 parameters ( &quot;&quot;, &quot;a&quot;, &quot;&quot;, &quot;b&quot; and &quot;&quot; ). This has been fixed. Blank parameters are now correctly processed.</p>
<p>				2. The documentation states that only the first 128 characters of each parameter are sent to the MobiLink server, but no limit was actually enforced. This resulted in corrupt data being sent to the MobiLink server if a value was excessively large. This has been fixed. Extremely large strings (greater than 21K characters) are now truncated prior to sending to the MobiLink server, and the MobiLink server will however report an error now if the authentication parameters&#39; lengths exceed the server&#39;s limit of 128 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638148">638148</a></td>
<td>When running on systems other than Linux, if the Relay Server State Manager (rshost) was not running and a client made a request invoking the client module, this request could have crashed the module. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638153">638153</a></td>
<td>If none of the $SATMP, $TMP, $TMPDIR or $TEMP environment variables were set and the Relay Server State Manager (rshost) was started without the -o command line option specified, rshast would have failed to start. Under these conditions, rshost uses &#39;/&#39; as the root directory and fails due to write premissions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638160">638160</a></td>
<td>Typing a Ctrl-V while viewing a spatial reference system&#39;s Definition tab, a system trigger&#39;s SQL tab, a Java class&#39;s Description tab, or an external environment object&#39;s Contents tab, would have caused Sybase Central to either crash or hang when another object was selected in the tree. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638161">638161</a></td>
<td>When double-clicking a search result for an item in the Fragmentation tab, Sybase Central would have selected the item in the Fragmentation tab, but then would have reported &quot;The result could not be shown because it no longer exists&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638207">638207</a></td>
<td>A LOAD TABLE statement would have failed assertion 111706 &quot;Attempting to store invalid string value in table &quot;{table name}&quot;, column &quot;{column name}&quot; if the table had a column with user datatype uniqueidentifier. The problem only happened if a user datatype was used. This has been fixed. </p>
<p>				To fix such tables in existing databases the table needs to get recreated or a database upgrade needs to be run.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638231">638231</a></td>
<td>The property SAConnection.State would have indicated that the connection was still open even after the connection had been dropped. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638242">638242</a></td>
<td>In rare situations, when multiple instances of the MobiLink client (dbmlsync) were run concurrently on the same machine, one or more of the instances may have crashed. It was possible that this problem might also have manifest itself as corrupt data sent to the MobiLink server, but that would have been extremely unlikely. This behaviour has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638260">638260</a></td>
<td>If a database with multiple dbspaces failed to start (for any of a variety of reasons such as an invalid log file), the server could have erroneously reported:</p>
<p>				&quot;Assertion failed: 201117 Attempt to close a file marked as dirty&quot;.</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638268">638268</a></td>
<td>When connecting a device that supports the OMA Device Management protocol directly to an Apache based Relay Server, the device would have displayed an error stating 揑nvalid Host Address�. The Afaria Server still provisions the device, but the Afaria OMA-DM Server logs state: &quot;... authentication: no credentials in message �. When sending the response back to the client, the Relay Server (when run on systems other than Linux) was incorrectly setting the content-type header as text/plain instead of application/vnd.syncml.dm+wbxml. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638271">638271</a></td>
<td>The methods ResultSet.getTimestamp() and ResultSet.setTimestamp() quietly manipulated the database timestamp value as UTC. As a result, the javascript methods Date.toString() and ResultSet.toString() would have reported different values offset by the timezone difference. These methods now manage timetamps in localtime relative to ULPOD. Databases with timestamp values stored prior to this fix might contain values that were UTC based.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638273">638273</a></td>
<td>While connected using the SQL Anywhere or iAnywhere JDBC drivers, attempting to use setNull() in a batch update may have caused the JDBC driver to throw a datatype mismatch SQLException if the datatype specified within the setNull() call differed from other non-null set calls to the same column within the batch update. This problem has now been fixed and the datatype mismatch will now only be thrown if a non-null set call of a different type is made on the same column within a batch update.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638360">638360</a></td>
<td>The task status uploaded by the MobiLink Agent to the consolidated database may not have been processed. This could have meant that tasks would still have been shown in the MobiLink plug-in for Sybase Central as active, when they had in fact been completed. Task results and execution counts would also not have been updated. After applying this fix, any lost status will be recovered. The trigger for this problem appears to have been random, but was more likely when many tasks were run in a short period of time.</p>
<p>				To patch a MobiLink system setup</p>
<p>				1. Shut down ML servers</p>
<p>				2. execute the sql in %SQLANY12%\MobiLink\Setup\syncmss_ebf.sql</p>
<p>				The patch only updates stored procedures, no data will be disturbed by this script. If the MobiLink system setup was installed using 12.0.0.2566 or later then this patch does not need to be applied.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638365">638365</a></td>
<td>Execution of a DESCRIBE INDEX statement could have failed with a &quot;table not found&quot; error when connected to a case-sensitive database and the table (or owner) name differed from the database object name only by case. For example, when connected to a case-sensitive database, the following DESCRIBE TABLE statement would have failed:</p>
<p>				CREATE TABLE Test ( c INT PRIMARY KEY );</p>
<p>				DESCRIBE INDEX FOR TABLE test;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638368">638368</a></td>
<td>Spurious &quot;109200 Can&#39;t parallelize bloom filter&quot; could have been observed which were incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638374">638374</a></td>
<td>The MobiLink Replay utility (mlreplay) could have been run with less than 1 simulated client (using the 杗 option), which could have caused a 揗emory allocation failed� error, or for mlreplay to have crashed. This has been fixed so that if mlreplay is run with less than 1 simulated client, it simply prints the usage message (which states the minimum number of simulated clients is 1) and exits.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638468">638468</a></td>
<td>As of Engineering case 637453, support for the SQL Anywhere Explorer and SQL Anywhere Toolbar were removed for Visual Studio 2005 and 2008. A new command line option &#39;/sae&#39; has now been added to the SetupVSPackage.exe utility, to install SQL Anywhere Explorer and SQL Anywhere Toolbar if desired. The default is to still not install the SQL Anywhere Explorer and SQL Anywhere Toolbar.</p>
<p>				For example:</p>
<p>				SetupVSPackage.exe /i --- not install SQL Anywhere Explorer and SQL Anywhere Toolbar </p>
<p>				SetupVSPackage.exe /i /sae --- install SQL Anywhere Explorer and SQL Anywhere Toolbar</p>
<p>				Note, this new option only applies to Visual Studio 2005 and 2008. SQL Anywhere Explorer and SQL Anywhere Toolbar are still disabled for Visual Studio 2010. The SetupVSPackage.exe utility always install or uninstalls both the SQL Anywhere Explorer and SQL Anywhere Toolbar together. The &#39;/sae&#39; option only applies to &#39;/i&#39;, use of the &#39;/u&#39; option always removes everything.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638473">638473</a></td>
<td>If a Relay Server Outbound Enabler (rsoe) was successfully connected to a Relay Server, and the Relay Server was restarted while the rsoe was still running, then the server extension of the Relay Server could have crashed upon receiving the rsoe&#39;s new up channel connect request. This crash would have occurred if the rsoe tried to connect with configurations that invalidated the (already running) rsoe authentication, such as changing the farm or server id, that the rsoe was using. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638477">638477</a></td>
<td>In extremely rare circumstances, servers answering queries with keyset cursors may have become unstable, leading to an eventual crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638481">638481</a></td>
<td>The server could have returned an incorrect name for a temporary connection, or in rare cases the server could have crashed. The crash was more likely when using diagnostics on a mirrored server. The incorrect connection name could have been returned by a call to connection_property( &#39;Name&#39; ), listed in diagnostic tracing&#39;s sa_diagnostic_connection table, or shown in an error such as &quot;User &#39;&lt;user name&gt;&#39; has the row in &#39;&lt;table name&gt;&#39; locked&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638482">638482</a></td>
<td>If diagnostic tracing was enabled on a database and a query used intra-query parallelism, the server may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638484">638484</a></td>
<td>Larger tables with a clustered index that had a significant number of rows inserted at the end of the clustering index, could have exhibited poor local clustering. This could have caused the optimizer to pick sub-optimal plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638492">638492</a></td>
<td>For MobiLink clients, except UltraLiteJ, it was possible to receive an &quot;Out of memory&quot; or STREAM_ERROR_MEMORY_ALLOCATION error during TLS or HTTPS synchronizations. Incorrectly attempting a very large memory allocation has bee fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638494">638494</a></td>
<td>Attempting to start an external environment when the server machine was incorrectly configured would have caused the application to wait up to 15 seconds before receiving an error from the server. An incorrectly configured server usually results in the external environment process terminating immediately upon startup; hence the server will now report an appropriate error as soon as it detects that the external environment process terminated while starting up.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638596">638596</a></td>
<td>The use of START AT or FIRST in a subquery may have resulted in incorrect results. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638600">638600</a></td>
<td>When connected using the SQL Anywhere JDBC 4.0 driver, calling DatabaseMetaData.getProcedureColumns() would have returned a result set with the DATA_TYPE column in the metadata result set containing an incorrect JDBC data type for nchar, nvarchar and longnvarchar columns. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638648">638648</a></td>
<td>Round Earth polygons with long edges crossing equator could have been interpreted incorrectly, causing queries over such geometries to return incorrect results. This has been fixed.</p>
<p>				Database with this problem will need to have the affected geometries re-inserted after applying this fix.</p>
<p>				This change also fixes the interpretation of parameters to the ST_Polygon( ST_Point, ST_Point ) constructor. Previously, if the parameter points were close to the International Date Line, an invalid polygon (with edges longer than 180 degrees) could have been constructed. This has been fixed.</p>
<p>				For example, consider: ST_Polygon( new ST_Point( 170, 10, 4326 ), new ST_Point( -170, 20, 4326 ) ). Now, this will be interpreted as equivalent to: new ST_Polygon( &#39;Polygon((170 10, -170 10, -170 20, 170 20, 170 10))&#39;, 4326 ) which is a polygon crossing the date line.</p>
<p>				In general, the constructor will choose the interpretation that generates the polygon that fits into a single hemisphere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638738">638738</a></td>
<td>Windows CE applications, including SA utilities, requiring aygshell.dll to be present on the device or they would not have loaded. This worked fine on Windows Mobile 5 and later devices, but not for non-Windows Mobile CE 5.0 and 6.0 devices. This has been corrected by trying to dynamically load aygshell.dll if it is present, and skip these functions otherwise. For non-Windows Mobile CE devices, buttons are displayed on the main window for shutdown/hide/etc, instead of relying on creating menus accessible via softkeys since this would require aygshell.dll.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638755">638755</a></td>
<td>When an ODBC application made a SQLTables() call, the TABLE_TYPE column in the result set identified materialized views as MATERIALIZED VIEW. While doing so was not against the ODBC specification, there was nevertheless a problem with applications like Microsoft Access and Crystal Reports, which filter out anything that is not marked as TABLE, VIEW, SYSTEM TABLE, ALIAS, SYNONYM, GLOBAL TEMPORARY or LOCAL TEMPORARY. Therefore, the TABLE_TYPE value returned for materialized views has been changed to be VIEW.</p>
<p>				In addition, a new connection parameter has been added to ODBC which allows a specific string to be defined that is returned in the SQLTables() result set for materialized views. This new connection parameter is called MATVIEW, and is a string that will be returned in the TABLE_TYPE column for materialized views.</p>
<p>				For example, to have the SQLTables() function return materialized views as type TABLE, connect as follows:</p>
<p>				uid=dba;pwd=sql;eng=...;matview=table</p>
<p>				This new option can be used to override this default and return to the previous behaviour. The same string is also used when SQLTables() is called with an explicit TableType filter.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638764">638764</a></td>
<td>In rare cases, a server participating in a mirroring system could have hung temporarily, and then resumed processing requests, when dynamic tuning of the server&#39;s multi-programming level was enabled . This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638770">638770</a></td>
<td>When using the Dbmlsync API (either the C++ or .Net version), events are retrieved using the GetEvent method. One of the events that might be returned is DBSC_EVENTTYPE_PROGRESS_INDEX, which includes an integer that is supposed to be between 0 and 1000 and indicates how close the current phase of synchronization is to completion. This value is intended to be used to update a progress indicator. Occasionally, the DBSC_EVENTYPE_PROGRESS_INDEX events would have been generated with values greater than 1000. This happened during the log scan phase of synchronization, when the -x command line option or the LogRenameSize sychronization profile option was used. It could also happen if operations were occurring to the remote database during synchronization. This has been fixed. The index should now always be between 0 and 1000.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_82.htm#CR638771">638771</a></td>
<td>Some incorrect connection strings could have autostarted a database server, but left the autostarted server running after the connection returned an error.</p>
<p>				For example:</p>
<p>				dbping -d -c &quot;start=dbeng10;eng=server_name&quot;</p>
<p>				would have returned an error, but leave a server named server_name running. This has been fixed so that the autostarted server is now stopped if the connection fails.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638835">638835</a></td>
<td>Calls to the system function property(&#39;platform&#39;) would have returned &#39;WindowsVista&#39; </p>
<p>				when the server was running on Windows 7, Windows 2008, or Windows 2008 R2. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638848">638848</a></td>
<td>A few improvements have been made to ADOX/OLEDB table creation. </p>
<p>				Long types are now mapped to SQL Anywhere long types. For example, an adLongVarChar column is now mapped to &quot;LONG VARCHAR&quot; instead of &quot;CHAR(0)&quot;. </p>
<p>				Wide types are now mapped to SQL Anywhere nchar types instead of char types. For example, adWChar is now mapped to &quot;NCHAR&quot; and adLongVarWChar is now mapped to &quot;LONG NVARCHAR&quot;. </p>
<p>				An adSingle column with no specifed precision will now default to REAL rather than FLOAT(0), which generated a syntax error. </p>
<p>				An adDecimal column with no specified precision and scale will now default to DECIMAL rather than DECIMAL(0,0), which generated a syntax error. </p>
<p>				An adNumeric column with no specified precision and scale will now default to NUMERIC rather than NUMERIC(0,0), which generated a syntax error. </p>
<p>				An adLongVarBinary column will map to the IMAGE type rather than BINARY(0), which generated a syntax error. </p>
<p>				An adCurrency column is now supported and will map to a column of type MONEY. </p>
<p>				An adDate column is now supported and will map to a column of type DATETIME. </p>
<p>				If a table or column name is not defined, OLEDB will no longer fault with a NULL pointer reference. Instead, the name &quot;undefined&quot; will be used. </p>
<p>				The following code fragment is a VBScript example for creating a table using ADOX statements. </p>
<p>				Set db = CreateObject( &quot;ADOX.Catalog&quot; ) </p>
<p>				Set ntable = CreateObject( &quot;ADOX.Table&quot; ) </p>
<p>				ntable.Name = &quot;testTable&quot; </p>
<p>				ntable.Columns.Append &quot;Col_1&quot;, adNumeric </p>
<p>				ntable.Columns.Append &quot;Col_2&quot;, adDate </p>
<p>				ntable.Columns.Append &quot;Col_3&quot;, adChar, 32 </p>
<p>				ntable.Columns.Append &quot;Col_4&quot;, adVarChar, 32767 </p>
<p>				ntable.Columns.Append &quot;Col_5&quot;, adLongVarChar </p>
<p>				ntable.Columns.Append &quot;Col_6&quot;, adLongVarWChar </p>
<p>				db.Tables.Append ntable</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638849">638849</a></td>
<td>Statements which CREATE, DROP or ALTER synchronization profiles were not being recorded in the transaction log. If a database server needed to recover the effects of one of these statements, recovery could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638854">638854</a></td>
<td>The Server Licencing utility (dblic) has a limit on the length of the user name and company name that it stores in the license file. When it truncated the name, it could have done so in the middle of a multi-byte character resulting in a mangled name. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638856">638856</a></td>
<td>The Interactive SQL utility, the Console utility, and Sybase Central, could have terminated without an error message. This could have happened when closing an &quot;Options&quot; dialog, and possibly at other points, due to an uninitialized variable. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638859">638859</a></td>
<td>When connection parameters were specified on the MobiLink Monitor command line, the splashscreen did not close. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638862">638862</a></td>
<td>The Interactive SQL utility would have crashed if a file was imported and then subsequently text was pasted into the editor. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638896">638896</a></td>
<td>The MobiLink Agent for central adminstration of remote databases could have displayed unlocalized messages in its output window when running at v4 or higher verbosity. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638897">638897</a></td>
<td>The result set display format (Scrolling Table versus Text) was ignored when disconnecting from one type of database (e.g. SQL Anywhere), and then connecting to another (e.g. UltraLite). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638899">638899</a></td>
<td>The Options window had a set of radio buttons (&quot;Show only the first result set&quot; and &quot;Show all result sets&quot;) which determined which result sets were displayed for statements that return more than one result set. UltraLite statements can return at most a one result set, so this option has ignore, and has now been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638900">638900</a></td>
<td>If a certain statement was prepared and described that returned no result set, and then a DDL statement caused the same statement to return a result set, client statement caching could have caused the statement to be redescribed incorrectly. This was a client statement caching peformance optimization, and before this change, there was no way to disable this incorrect behavior. For example, the following statements executed in dbisql would have returned an error on the second call foo() statement:</p>
<p>				create or replace function foo() returns int begin return 1; end;</p>
<p>				call foo();</p>
<p>				create or replace procedure foo() begin select 2; end;</p>
<p>				call foo();</p>
<p>				This has been fixed so that if client statement caching is disabled by setting the max_client_statement_cached option to 0 for the connection, such a statement is now described correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638903">638903</a></td>
<td>A race condition in the server could have caused it to crash on shutdown. This problem only affected Solaris (Intel and SPARC), HP, AIX and Mac OS X. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638982">638982</a></td>
<td>Creating an external procedure with a CREATE PROCEDURE statement that contained both a RESULT and LANGUAGE clause, but that did not contain a DYNAMIC RESULT SETS clause, would have incorrectly defaulted the number of dynamic result sets to 0 instead of 1. This problem has now been fixed and the dynamic result sets (if not specified) will now default to 0 if no result clause exists, and will otherwise default to 1 if a RESULT clause does exist. Note that as before, the DYNAMIC RESULT SETS value is only meaningful if a LANGUAGE clause is specified.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR638986">638986</a></td>
<td>The Query Editor could have crashed if the last time it was opened a join had been added to the query, but the join type was left unspecified (blank). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639002">639002</a></td>
<td>Changes made to the WHERE and HAVING tabs in the Query Editor were ignored after the Options button was clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639012">639012</a></td>
<td>The script events publication_nonblocking_download_ack, nonblocking_download_ack and generate_next_last_download_timestamp may have incorrectly been passed the client Remote ID. This would have occurred for non-SQL scripts as well as SQL scripts that used the question mark notation. This has been fixed so that the Remote ID is no longer passed to these scripts.</p>
<p>				Note that the documentation is correct.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639016">639016</a></td>
<td>Attempting to execute queries that used the FOR XML clause, may have caused the server to crash when failures were encountered while fetching data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639018">639018</a></td>
<td>The Query Editor could have crashed when opened if the initial SELECT statement contained &quot;*&quot; and at least one explicit column name in the column list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639021">639021</a></td>
<td>The server may have become unresponsive when an error occurred that should have been ignored. This has been fixed. The following console message was sometimes, but not always observed on Windows 7: &quot;TCP Listener shutting down (64)&quot;.</p>
<p>				This change also includes the following enhancements:</p>
<p>				- When a listener terminates, it now always writes a console message identifying the protocol and the network address, ie. HTTPS, {::}:443</p>
<p>				- An IgnoreCodes protocol option has been added to HTTP and HTTPS protocols</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639028">639028</a></td>
<td>Conversion of some time strings to a timestamp would have failed.</p>
<p>				A time specified as hours followed by the AM/PM designator could not have been converted to a timestamp. For example: </p>
<p>				select cast( &#39;11am&#39; as time ); </p>
<p>				The work-around is to include minutes:</p>
<p>				select cast( &#39;11:00am&#39; as time ); </p>
<p>				A time that included microseconds, but did not include seconds could not have been converted to a timestamp. For example: </p>
<p>				select cast(&#39;00:00:.930&#39; as time) </p>
<p>				The work-around is to include seconds:</p>
<p>				select cast(&#39;00:00:00.930&#39; as time) </p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639107">639107</a></td>
<td>In a mirroring system it was possible for the mirror server to get the error: &quot;*** ERROR *** Assertion failed: 100904 (10.0.1.4075) Failed to redo a database operation (page number and offset) - Error: Table in use&quot;. This could also have occurred when dropping a global temporary table, or during database recovery, without using a high availability environment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639139">639139</a></td>
<td>In SQL Anywhere 12 the new read-only scale-out feature was introduced which allows creation of an arrangement of read-only copy nodes to offload reporting or other operations that require read-only access to the database. Now, customers can obtain at-a-glance information about the health and availability of their scale-out configuration by using the SQL Anywhere Monitor. When monitoring a SQL Anywhere resource, a new widget option is available, &quot;SQL Anywhere Scale-Out Topology&quot;. When monitoring the root node in the scale-out system, the new Topology Widget provides an overview of the parent/child relationships of Nodes in the scale-out system, as well as basic health and availability information.</p>
<p>				The information displayed in the Topology Widget is as follows: </p>
<p>				Server Name - The name of the node given when creating the scale-out system. See &quot;CREATE MIRROR SERVER statement&quot; in the docs http://dcx.sybase.com/index.html#1200en/dbreference/create-mirror-server-statement.html*d5e37248 </p>
<p>				Type - The node type defined when creating the scale-out system. See &quot;CREATE MIRROR SERVER statement&quot; in the docs http://dcx.sybase.com/index.html#1200en/dbreference/create-mirror-server-statement.html*d5e37248 </p>
<p>				State - The connection status of the node. Can be one of &quot;connected&quot; or &quot;disconnected&quot;. See &quot;sa_mirror_server_status system procedure&quot; in the docs http://dcx.sybase.com/index.html#1200en/dbreference/sa-mirror-server-status-sysproc.html*d5e70531 </p>
<p>				Connections - The current number of connections to this node. See &quot;sa_mirror_server_status system procedure&quot; in the docs http://dcx.sybase.com/index.html#1200en/dbreference/sa-mirror-server-status-sysproc.html*d5e70531 </p>
<p>				Last Updated - The time the server information was last updated. See &quot;sa_mirror_server_status system procedure&quot; in the docs http://dcx.sybase.com/index.html#1200en/dbreference/sa-mirror-server-status-sysproc.html*d5e70531. Note that this value is not necessarily the same as the last time the Monitor fetched topology information for this scale-out system.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639140">639140</a></td>
<td>When the Options window was opened from the Query Editor, all of the options for the Text Completer would have been inadvertently turned off. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639159">639159</a></td>
<td>In some cases, calling the system procedure sa_get_request_times() may have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639238">639238</a></td>
<td>In very rare cases, doing full validation on a table may have caused the server to crash. For this to have occurred, the following conditions had to hold:</p>
<p>				1) Validation was being done online.</p>
<p>				2) The table contained blobs.</p>
<p>				3) Table blobs were being heavily modified by other concurrent requests.</p>
<p>				4) The right timing happened between the validation process and the blob update </p>
<p>				process.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639289">639289</a></td>
<td>The Relay Server extension for the Apache webserver now supports Apache 2.2.15 on Linux. Apache 2.2.15 now offers more security enhancements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639298">639298</a></td>
<td>Creating a server message store would have fail when attempting to create a new, encrypted SQL Anywhere database for the store. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639373">639373</a></td>
<td>When migrating a SQL Anywhere Monitor from 11.0.1 to 12.0.0 it was possible that alert thresholds for the new 12.0.0 alerts could have been incorrect for the migrated resources. This has been fixed. When the new alert thresholds were added, their columns in the database were given default values. Unfortunately, during the reload process DEFAULTS ON was not being specified. Defaults have now been turned on.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639397">639397</a></td>
<td>The MobiLink Agent for central adminstration of remote databases may not have shut down, or may not have shut down in a timely manner, when retrying a task that had a large number of retries or a large retry delay. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639535">639535</a></td>
<td>Queries that did a sequential table scan could have failed to return all the rows in the table. This would usually only have happened when doing a DELETE over a non-transactional temporary table. This could also have happened to regular base tables with concurrent deleters as well, but the chances of this would have been very low in practice.</p>
<p>				A workaround is to issue deletes over a non-transactional temporary table multiple times.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639646">639646</a></td>
<td>A new alert has been added to the SQL Anywhere Monitor to provide users with notification if their scale-out system has a large percentage of disconnected nodes. The new &quot;Scale-out Nodes Disconnected&quot; alert takes a user-supplied threshold value. If during data collection it is detected that this threshold of disconnected nodes is exceeded, an alert is raised. The alert also contains a list of all the servers currently disconnected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639651">639651</a></td>
<td>The typing completion feature has been improved.</p>
<p>				1. The text completer now opens automatically when typing. This can be turned off from the Options window by clearing the &quot;Open automatically&quot; box on the &quot;Text Completion&quot; page.</p>
<p>				2. SQL statements and keywords are now included in the list of suggestions.</p>
<p>				3. The completer now correctly handles databases where strings are treated as case-sensitive but identifiers are not.</p>
<p>				4. Performance has been improved.</p>
<p>				5. The keyboard accelerators for use when the completion list is open have changed:</p>
<p>				Old Accelerator New Accelerator Function</p>
<p>				Tab Ctrl+A Show a context-free list of matches</p>
<p>				+ Ctrl+Plus Add the item with its parameter list</p>
<p>				* Ctrl+Asterisk Add the item with its parameter and type list</p>
<p>				&quot; Ctrl+Apostrophe Add the item enclosed in quotation marks</p>
<p>				6. In addition to the Enter key, pressing the Tab key while the completer list is open accepts the selected item and closes the completer.</p>
<p>				7. Columns from internal text tables are no longer shown.</p>
<p>				8. Completed database object names, which are also SQL keywords, are automatically quoted.</p>
<p>				9. If a function key is pressed, or if the menu bar is used while the completer is open, the selected completion item is added, the completer is closed, and then the function key (if any) is processed.</p>
<p>				10. The &quot;Text Compeleter&quot; tab in the Options window has been clarified. Options to control whether tables, views, stored procedures, and SQL functions have been removed; the SQL parsing in good enough to guide the selection of the suggested items.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639656">639656</a></td>
<td>In some cases the Start Server in Background utility (dbspawn) could have returned the generic error, -80 (Cannot start server), instead of returning the real error. In other cases, the server could have crashed on shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639657">639657</a></td>
<td>The server may have picked an unoptimal best plan for queries requiring a reversed index scan if they bypassed the SA Optimizer (i.e., the bypass was used for optimizing the query). This has been fixed.</p>
<p>				For example:</p>
<p>				create index idx on T(X);</p>
<p>				select max(T.X) from T;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639704">639704</a></td>
<td>When performing arithmetic on DOUBLE values, if one of the inputs was NULL, an arithmetic overflow error could have been spuriously reported instead of computing the NULL value properly. The problem only affected 32-bit platforms, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639706">639706</a></td>
<td>The startup error messages &quot;Failed to become a daemon&quot; and &quot;&#39;%1&#39; is not a valid engine name&quot; were not localized on UNIX systems. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639712">639712</a></td>
<td>The OLE DB provider&#39;s TABLES, TABLES_INFO, and VIEWS schema rowset support procedures do not identify MATERIALIZED VIEWs and TEXT CONFIGURATION objects correctly. Materialized views are now reported as &quot;VIEWS&quot;, and text configuration objects are now identified as &quot;TEXT&quot;, in the TABLE_TYPE column. </p>
<p>				Also, the OLE DB provider&#39;s TABLES schema rowset included an unnecessary and undocumented column &quot;PREFIXSYSOWNED&quot;. This column has been removed from the rowset to match similar behavior of the stored procedure than produces theTABLES_INFO schema rowset. </p>
<p>				The OLE DB provider&#39;s TABLE_CONSTRAINTS schema rowset support procedure fails with the error &quot;Column &#39;check&#39; not found&quot;. This has been fixed.</p>
<p>				The Upgrade utility (dbupgrad) should be used to update the OLE DB schema rowset support in any database used with ADO, ADOX or OLE DB.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639814">639814</a></td>
<td>In rare circumstances, performing spatial operations could have caused the server to crash, corrupt server memory, and possibly corrupt database file contents. The problem was more likely to occur when spatial operations were active at a time when both cache pressure was high and operations such as checkpoints or cache shrinking occurred. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639825">639825</a></td>
<td>The 32-bit authentication value sent to MobiLink clients was being truncated to 16-bits. This has been fixed. In order to use this fix, both clients and server must be updated. If the use of this fix is not required, it is not necessary to upgrade both the clients and server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR639836">639836</a></td>
<td>A SQL Anywhere &quot;root&quot; web service did not resolve a URL when the database name was provided without a terminating slash, i.e. http://localhost/dbname. The server would have returned a 404 &quot;Not Found&quot; HTTP status. The following URL forms were also rejected with a 404 &quot;Not Found&quot;:</p>
<p>				http://localhost/dbname?arg</p>
<p>				http://localhost/dbname/?arg</p>
<p>				The problem existed for both secure and insecure services, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640008">640008</a></td>
<td>The following enhancements have been made to the typing completer:</p>
<p>				- The owner name is no longer added to completed table, view, or procedure names if there is only one object in the system catalog with the given name.</p>
<p>				- A new option has been added: &quot;The Enter key completes text&quot;. When the option is checked, pressing the Enter key completes the text with the selected item. When the option is not checked, pressing Enter will insert a newline into the text editor, but will not complete any text. This option is checked by default. If multi-line SQL statements are usually typed, it may be that leaving this option unchecked will result in fewer inadvertent completions being done.</p>
<p>				Note: If the arrow keys are used to change the selection in the completer list, or one of the list items is selected, pressing Enter will complete the text with the selected item. In all cases, pressing the Tab key will close the completer and complete the text in the editor. </p>
<p>				- The completer can now complete method names for spatial columns. e.g. if the insertion point immediately follows &quot;ST_&quot; in any of the following statements, the completer will show only methods for the spatial column &quot;Shape&quot;:</p>
<p>				select S.Shape.ST_ from SpatialShapes S</p>
<p>				select Shape.ST_ from SpatialShapes S</p>
<p>				delete from SpatialShapes where Shape.ST_</p>
<p>				delete from SpatialShapes S where S.Shape.ST_</p>
<p>				update set Description=&#39;x&#39; from SpatialShapes S where S.Shape.ST_</p>
<p>				(Note: This is not a complete list of supported syntaxes)</p>
<p>				When trying to complete a method name for an object other than a table/view column, the completer will suggest method names as well as other database objects whose names match the method name prefix. For example, if the insertion point is at the end of the following statement:</p>
<p>				select (new Point()).ST_</p>
<p>				the completer will list spatial methods, but also st_geometry_dump, StartDate, Status, etc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640015">640015</a></td>
<td>The MobiLink server on Windows and Linux systems now supports consolidated databases running on an ASE 15.5 server. In order to properly support it, an ASE native ODBC driver from Sybase SDK 15.5 ESD#2 or later is required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640027">640027</a></td>
<td>Recovery of ALTER DBSPACE or DROP DBSPACE could have failed if the original statement was executed when there were inactive pooled connections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640035">640035</a></td>
<td>The entry in the documentation for the ml_add_column system procedure incorrectly suggested a behaviour change, that &quot;ml_add_column names are overidden by names from the client, if they are supplied.&quot; The ml_column entries always override names and orderings sent up from the client.</p>
<p>				Note that the point is moot for the vast majority of deployments, because most deployments: (a) have one true column ordering, and (b) do downloads. MobiLink currently does not support downloads to remotes with different column orderings with the same names using the same script version. Use different script versions, each with a known column ordering, to support downloads to different column orderings.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640037">640037</a></td>
<td>The Create Group wizard now allows the members (Agents) for a group to be selected by pointing to a text file which contains the names of the Agents. The ability to add members by browsing the Agents defined in a consolidated database is also still supported. </p>
<p>				Note, the text file containing the Agent names must have each Agent name on its own line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640081">640081</a></td>
<td>When specifying a non-default date, time, or timestamp_format option, the date/time values could have been truncated in the XML file produced by the UltraLite Unload Database utility (ulunload). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640109">640109</a></td>
<td>The deployment wizard was failing when attempting to register one of our v4.0 .Net assemblies on systems where version 4.0 of the .NET framework was not installed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640110">640110</a></td>
<td>When executing a remote procedure call to an ASE server, if the procedure involved output parameters, then there was a chance the call would have failed with the remote error &quot;output parameters will only be returned from this stored procedure when you use only parameter markers to pass parameter values&quot;. This problem has now been fixed and the remote call should now execute correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640194">640194</a></td>
<td>For queries containing predicates of the following forms:</p>
<p>				A = B</p>
<p>				A &lt;&gt; B</p>
<p>				A [NOT] IN ( ... )</p>
<p>				A = ANY ( ... )</p>
<p>				A &lt;&gt; ANY ( ... )</p>
<p>				A = ALL ( ... )</p>
<p>				A &lt;&gt; ALL ( ... )</p>
<p>				where A was a geometry column with a spatial index, extra rows may have been returned if the optimizer chose a plan that accessed the index with a scan predicate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640205">640205</a></td>
<td>In some cases, the iAS ODBC driver for Oracle could aborted the operation and given the following Oracle error:</p>
<p>				ORA-03145: I/O streaming direction error</p>
<p>				This would have occurred when the driver was used to send NULL BLOBs to a table in an Oracle database and then the rows were fetched back from this table using the same database connection, and the Oracle database was running with a multi-byte character set. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640222">640222</a></td>
<td>Remote schema names can now be imported into a project from a consolidated database. Import remote schema names can be done a number of ways:</p>
<p>				1. Right-click &quot;Remote Schema Names&quot; in the &quot;Folders&quot; panel and click the new &quot;Import&quot; menu item.</p>
<p>				2. When adding a consolidated database to a project, either with the Project wizard or the Consolidated Database wizard, the wizards will automatically check if there are any remote schema names defined in the consolidated database that are not already in the project. If there are, the wizards will ask if they should be imported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640232">640232</a></td>
<td>Dropping a temporary procedure could have caused recovery to fail if the procedure name was qualified with an owner. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640239">640239</a></td>
<td>The SetupVSPackage.exe utility did not update SQL Server Integration Services mapping files and the ProviderDescriptors.xml file for 64 bit DTS on 64 bit Windows. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640240">640240</a></td>
<td>Execution of an ATTACH TRACING statement with a LIMIT clause, either by size or by time, would generally have failed to limit the size of the trace captured. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640241">640241</a></td>
<td>In rare circumstances, the QAnywhere C++ client could have deleted a received and acknowledged message before the acknowledged status was transmitted back to the sender. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640243">640243</a></td>
<td>When adding a widget in the SQL Anywhere Monitor, the drop-down listing all the resources would have displayed the resources in random order. This has been fixed so that the resources are now displayed in alphabetical order.</p>
<p>				Note that this problem does not apply to new Alert List and Resource List widgets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640410">640410</a></td>
<td>Attempting to drop a user declared within a web service may have caused the server to crash if the service was recently accessed with an HTTP request. This has been fixed.</p>
<p>				The following illustrates the issue:</p>
<p>				create user web identified by web;</p>
<p>				create procedure web.sp_test()</p>
<p>				begin</p>
<p>				select 1;</p>
<p>				end;</p>
<p>				create service test type &#39;HTML&#39; user web authorization off secure off url off as call sp_test();</p>
<p>				A &quot;DROP user web&quot; command crashes the server if one or more database connections for the user &quot;web&quot; happen to be pooled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640411">640411</a></td>
<td>Statistics about the Disk Transfer Time (DTT) of additional dbspaces were not loaded at database startup, so they were not available for the optimizer to generate better plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640423">640423</a></td>
<td>Queries containing predicates that composed ST_SRID(int) or ST_Transform(int) with a spatial predicate, could have caused a crash. This only happened for queries that bypassed the optimizer (single table queries). </p>
<p>				For example, the following query could have caused a crash:</p>
<p>				SELECT *</p>
<p>				FROM tablename</p>
<p>				WHERE geometry_column.ST_Transform( 0 ).ST_Intersects( new ST_Point( 0, 0, 0 ) ) = 1</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640434">640434</a></td>
<td>A failed attempting to connect to a server which required the server to be autostarted could have leave the server running. This could have occurred if the server started had the server stop permission set to a value other than None, and server failed to start the database for certain reasons. </p>
<p>				For example, if asatest.db is an Adaptive Server Anywhere 9 database, the following would start a server that was left running:</p>
<p>				dbping -d -c &quot;uid=dba;pwd=sql;dbf=asademo.db;start=dbsrv11 -x none&quot;</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640440">640440</a></td>
<td>The &quot;Check for Updates&quot; window did not close when the Esc key was pressed unless the &quot;Cancel&quot; button was visible. This has been corrected so that pressing the key now always closes the window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640461">640461</a></td>
<td>In certain very rare circumstances it was possible that the SQL Anywhere Monitor could have shut down data collection incorrectly. This would have occurred in environments where the SQL Anywhere Monitor server was consistently under heavy load. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640470">640470</a></td>
<td>On systems running the Chinese version of Windows XP, some private use characters were displayed incorrectly in the following places:</p>
<p>				1. The result set table&#39;s long value window</p>
<p>				2. The query tree (left hand pane) of the Plan Viewer</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640486">640486</a></td>
<td>The Agent wizard and property sheets now allow a description to be set for agents that are defined. The description is free form text.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640515">640515</a></td>
<td>An application could have failed to reconnect to a database created with a user specified EncryptionControl. UltraLiteJ was failing to call EncryptionControl.initialize() on connect, hence the database could not be opened. This has been fixed.</p>
<p>				To workaround the problem, use code that explicitly invokes the initialize() method prior to connecting to the database. For example:</p>
<p>				// password = password to access database</p>
<p>				// config = config object to access database</p>
<p>				// MyEncryptionControl = user defined class extending EncryptionControl</p>
<p>				EncryptionControl enc = new MyEncryptionControl();</p>
<p>				enc.initialize( password );</p>
<p>				config.setPassword( password );</p>
<p>				config.setEncryption( enc );</p>
<p>				conn = DatabaseManager.connect( config );</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640525">640525</a></td>
<td>The readability of the query returned by the REWRITE function has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640540">640540</a></td>
<td>The property QueryOpened was not being increased if a reusable cursor was opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640543">640543</a></td>
<td>The result set returned for a query with GROUP BY and ORDER BY clauses was not correctly ordered if both clauses contained the same integer constant. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640578">640578</a></td>
<td>The UltraLiteJ utilities, Database Information utility (ULjInfo), Database Load utility (ULjLoad) , Database Unload utility (ULjUnload) , and Database Transfer utility (ULjDbT), would have failed when attempting to run on 64-bit Windows They were failing because they referenced a JRE that was not installed. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640579">640579</a></td>
<td>Attempts to unload an UltraLiteJ database using the ULjUnload utility would have resulted in a Null Pointer exception if the database had publication IDs that were not numbered continuously from 1. This can occur if publications are created then dropped. For example:</p>
<p>				CREATE PUBLICATION pub1 ...</p>
<p>				CREATE PUBLICATION pub2 ...</p>
<p>				DROP PUBLICATION pub1</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640582">640582</a></td>
<td>UltraLite does not support user-defined database properties. So when executing the statement SELECT db_property(慴ad-property�), a SQLE_UNKNOWN_PROPERTY error was generated when attempting to move to the first row of that result set. Applications written in C/C++, Javascript, ObjectiveC and .Net would have generated that error, however the Interactive SQL utility would not have displayed that error, but would have returned no rows and displayed no heading to the result set (appearing to be hung). This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640589">640589</a></td>
<td>The utility SetupVSPackage.exe did not modify the file machine.config for the 64 bit .NET Framework. The machine.config file is now updated for both the 32 bit and 64 bit Frameworks on 64 bit Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640596">640596</a></td>
<td>The iAnywhere Solutions 12 Oracle ODBC driver would not have been installed by the deployment wizard. The driver was not being registered, and thus did not appear in the ODBC administrator. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640597">640597</a></td>
<td>Starting with Version 12.0.0, on Windows computers, numbers are now formatted with the thousands separator that is shown in the Windows Control Panel. They were always being shown though on Windows Vista and Windows 7, even if they had been turned off on the Control Panel. This has now been corrected. This problem had already been fixed for Windows XP and earlier (see Engineering case 631033).</p>
<p>				This fix also affects the &quot;Data&quot; tab for tables and views in Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640610">640610</a></td>
<td>When using the deployment wizard to create an MSI install, the Relay Server plugin did not appear in the list of plugins, and thus was not installed. The rsplugin files have now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640611">640611</a></td>
<td>The Visual Studio Server Explorer, the Data Source Configuration Wizard, and the Entity Data Model Wizard, did not list materialized views. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640621">640621</a></td>
<td>Depending on timing, stopping a server with the Stop Server utility (dbstop) and immediately restarting it with the Start Server in Background utility (dbspawn) could have return the error:</p>
<p>				DBSPAWN ERROR: -85</p>
<p>				Communication error</p>
<p>				The communication error could also have occurred if the server was started without dbspawn. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640776">640776</a></td>
<td>When running an MSI install that was generated by the Deployment wizard, the ulodbc11.dll was not self registered. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640779">640779</a></td>
<td>In Sybase Central, the &quot;Commands&quot; panel for remote tasks now contains a help button for the command being edited.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640780">640780</a></td>
<td>The SQL Server Import and Export wizard did not list materialized views. This has been fixed by changing the values returned in the &#39;TABLE_TYPE&#39; column of the schema set returned by the call to SAConnection.GetSchema(&quot;Tables&quot;) for materialized views to &#39;VIEW&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640786">640786</a></td>
<td>Calls to the GetSchema method would have return an error when the restrictions vector size was less than the total number of restrictions. For example, if 2 restrictions were specified for a schema rowset that took up to 3 restrictions, the GetSchema call would have resulted in an error indicating that 3 restrictions were expected. The error was due to the fact that the array size is 2, not 3. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640804">640804</a></td>
<td>With the introduction of read-only scale-out systems in SQL Anywhere 12, it was possible that a scale-out system without mirroring could have lead the SQL Anywhere Monitor to incorrectly raise alerts about the arbiter and/or mirror server being unavailable when no such problem existed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640821">640821</a></td>
<td>It was possible to get the following validation errors:</p>
<p>				Page x of database file &quot;&lt;database file name&gt;&quot; references a table (y) that doesn&#39;t exist</p>
<p>				or </p>
<p>				Orphaned page (x) found in database file &quot;&lt;database file name&gt;&quot;.</p>
<p>				The database server could have left some pages in a state where they cannot be reused. The database would have continued to function normally in this state but it is possible to regain the lost pages by rebuilding the database file. This most likely would have occurred in a non-system dbspace, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640832">640832</a></td>
<td>After following the scale out tutorial described in the documentation, the overview panel in Sybase Central would have shown warnings for the mirror and arbiter. This has been fixed. The mirror and arbiter are now excluded from the overview panel details when only scale out is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640901">640901</a></td>
<td>Revoking table column permissions may have failed with the SQL error &#39;Permission denied: you do not have permission to revoke permissions on &quot;Column1&quot;&#39; if there were column permissions granted from multiple grantors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640923">640923</a></td>
<td>Simple queries using the aggregate GROUPING(1), but with no GROUP BY clause, would have returned the meaningless error &quot;Invalid expression near GROUPING(1)&quot;. This has been fixed. The server now returns the error &quot;Argument to GROUPING aggregate must be a grouping column in the GROUP BY clause&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640952">640952</a></td>
<td>On Solaris systems, the server would have failed to start if the filesystem for the temporary file ($SATMP) was of a size greater than 4TB. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR640955">640955</a></td>
<td>When using the application profiler and choosing &quot;Overall database performance based on the database schema&quot;, a new recommendation has been added when a table definition will slow query execution time. The recommendation is based on a query that will &quot;weigh&quot; the distribution of wide and narrow columns in a table definition (having at least 5 columns) and complain if the majority of wide columns come before the narrow columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641068">641068</a></td>
<td>Tables in UltraLite can now be marked as download-only. Changes to the table on the consolidated database are downloaded during synchronization, but local changes are not sent up to the consolidated database.</p>
<p>				Any table with the suffix &quot;_download_only&quot; will be marked as download-only. Tables can also be set to download-only by specifying &quot;SYNCHRONIZE DOWNLOAD&quot; for the sync constraint clause of the &quot;CREATE TABLE&quot; and &quot;ALTER TABLE&quot; SQL statements.</p>
<p>				Another related change is that the sync type for a table can only be changed if it doesn&#39;t have any unsynchronized changes that need to be uploaded. Previously, the runtime was more permissive in this regard, and changing the type with unsynchronized changes could have unforeseen consequences.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641081">641081</a></td>
<td>The MobiLink server, and MobiLink and UltraLite clients, now support DER encoded public and private keys. Previously, only PEM encoded keys were supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641092">641092</a></td>
<td>The changes for Engineering case 633120, introduced a problem with returning a character string column value when the length of the column value was not bound by the consumer (i.e., the consumer does not provide a pointer to a length field). In this special case, the returned string value should be null-terminated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641095">641095</a></td>
<td>The changes for Engineering case 635618, could have caused an INSERT statement, using the CONVERT() function to convert a string to a time, to fail assertion 111704 - &#39;Attempting to store invalid time value in table {table name}, column {column name}. This problem did not occur if CAST was used in place of CONVERT, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641104">641104</a></td>
<td>Deployed remote tasks had a context menu item &quot;Initiate...&quot;, which when clicked, would have opened a dialog to allow selecting the recipients (agents) for which the task should be initiated. This has been changed th that the menu item is now called &quot;Initiate For All Recipients&quot;, and instead of requiring selection of the recipients, it assumes the task on all agents should be initialed. Initiating a task for a single agent, can still be done from the &quot;Recipients&quot; tab in the right pane.</p>
<p>				In addition to &quot;Initiate For All Recipients&quot;, a new &quot;Cancel For All Recipients&quot; context menu item has been added which requests that the given task be cancelled by all of its recipients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641111">641111</a></td>
<td>The changes for Engineering case 632640 have been removed, as there were other problems with LOAD TABLE on Mac OS X and Linux systems. Thus for UltraLite, the LOAD TABLE statement is only available via the desktop tools (Interactive SQL utility) on Windows.</p>
<p>				Also, while UltraLite accepts the &#39;ENCODING&#39; load option, it does not perform character set translation: the encoding of the data file must match the database. The preferred method for unloading and reloading UltraLite databases is XML files via the ulunload and ulload tools. Additionally, the ulinit tool is able to load schema and data directly from a SAS database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641123">641123</a></td>
<td>If a mirror or read-only copy node server was shut down while updates were being made on the primary server, the mirror or copy node could have failed to restart. Starting a mirror or copy node while updates were being made on the primary server could also have prevented that server from starting. These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641131">641131</a></td>
<td>When connected to a database using an ODBC data source which used the ASA 9.0 ODBC driver, the Interactive SQL utility could have crashed if an INPUT statement was executed which processed TIME, DATE, or TIMESTAMP data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641265">641265</a></td>
<td>The left pane header now contains an icon to help clarify which toolbar button represents the left pane view.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641268">641268</a></td>
<td>The command editor for a remote task could have been inadvertently closed if the property sheet for the remote task was opened, then OK was clicked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641274">641274</a></td>
<td>When running the Deployment wizard, specifying an invalid directory when prompted for the current SQL Anywhere install location, or specifying a non-existent directory for the target directory, would have caused the Deployment wizard to crash. This has been corrected.</p>
<p>				Aa valid location must now be specified for your current SQL Anywhere install, and moving past the location pane in the wizard is prevented until a valid location is given. If a non-existent directory is given for the target directory, it will be created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_83.htm#CR641276">641276</a></td>
<td>If a SYNCHRONIZE command was canceled before the server could load the dbmlsynccli12 library, it was possible for the server to have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641280">641280</a></td>
<td>Attempting to execute a START JAVA command from the Interactive SQL utility (dbisql) would have failed if it was installed from a 64 bit MSI created by the Deployment wizard. The error message would have been: &quot;***** SQL error: External environment could not be started, &#39;external executable&#39; could not be found&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641285">641285</a></td>
<td>It was possible that the SQL Anywhere Monitor would have allowed read-only users to resolve alerts. This has been fixed. Now, only operators and administrators may resolve alerts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641291">641291</a></td>
<td>Large downloads on BlackBerry devices, and simulators, would have started to fail with communication errors because the garbage collector would have done full GCs and locked out the liveness thread. This has been fixed by ensuring that all downloaded rows are row limited (requires enabling of row limiting and lazy loading).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641296">641296</a></td>
<td>When choosing to localize with the Deployment wizard, the Installation Wizard would have appeared localized, but Language was not set in the registry on the target machine. This has been corrected so that the SQL Anywhere Language registry entry is now set to match the deployment language.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641299">641299</a></td>
<td>When adding a new consolidated database to a MobiLink project, it is scanned to see if any remote schema names have been installed previously and copies them into the project file. However, if there were multiple remote schema names, only one would have been imported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641308">641308</a></td>
<td>The 64-bit versions of the Log Translation utility (dbtran), SQL Remote (dbremote) or the MobiLink client (dbmlsync), could have crashed when processing a transaction log containing an ALTER SYNCHRONIZATION SUBSCRIPTION statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641328">641328</a></td>
<td>A statement such as the following could have incorrectly given an error:</p>
<p>				select row_num, if row_num &lt; 1 then 1+row_num/0 endif x</p>
<p>				from rowgenerator</p>
<p>				order by x</p>
<p>				option(force no optimization)</p>
<p>				The sub-expression 1+row_num/0 should never be evaluated as the condition row_num&lt;1 is never true. However, in a simple statement processed by bypassing the query optimizer, if a Sort was needed to order the rows of the result, an error could be incorrectly given. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641360">641360</a></td>
<td>The server may have returned an incorrect result set for a query that contained a GROUP BY clause with distinct arguments, and the GROUP BY was executed using the low memory strategy. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641434">641434</a></td>
<td>If a large number of connections that had made external environment calls all shut down at the same time, then there was a chance the server would have hung one of the clients trying to shut down. In some cases, all the requests to shut down the connections would have succeeded, but the server would have subsequently hung when asked to terminate. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641485">641485</a></td>
<td>Attempting to make a connection with invalid TCPIP protocol options could have caused a crash in the client library. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641487">641487</a></td>
<td>If a server was started with -o &lt;file name&gt;, then stopped and immediately started again with the same -o &lt;file name&gt;, the server could have failed to start with the errors &quot;Invalid database server command line&quot; or &quot;Can&#39;t open Message window log file: &lt;file name&gt;&quot;. This failure was rare and timing dependent, and has now been fixed so the second server will successfully start.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641490">641490</a></td>
<td>Under exceptionally rare circumstances, the server may have crashed while executing a parallel plan with outer joins in the parallel plan parts. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641702">641702</a></td>
<td>The MSI install built using the Deployment wizard did not include the Charsets directory. This is used by the Unload Support feature, and has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641777">641777</a></td>
<td>The EBF installs for SQL Anywhere and the SQL Anywhere Monitor did not copy the ReadMe_EBF.html file to the product folder. This has been corrected so that now it is.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641793">641793</a></td>
<td>In very rare cases, the server could have hang if an external environment call was made at the same time that the server performed some maintenance on the database. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641806">641806</a></td>
<td>The date_format, timestamp_format and uuid_has_hyphens options stored in a text configuration were not respected during an immediate text index update. Immediate text index updates incorrectly used the current connection option values. This has been fixed.</p>
<p>				If an existing immediate text indexes is suspected of being effected by this problem then the text index needs to be refreshed after applying this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641965">641965</a></td>
<td>The Relay Server could have failed to reconnect the Outbound Enabler&#39;s down channel, and displayed the following error message: &quot;RSE1015: Invalid first &#39;OE_DNCHANNEL_RECONNECT&#39; packet from the outbound enabler&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641994">641994</a></td>
<td>With the release of the 12.0.0 SQL Anywhere Monitor, it is possible to monitor more resources than previously possible. Unfortunately though, monitoring large numbers of resources presents a challenge in the number of alerts it&#39;s possible to receive. To this end, new functionality has been added to the Monitor to make both filtering and deleting large sets of alerts easier. </p>
<p>				The first new feature is two additional options for sending alert notifications via email, found under Administration -&gt; Configuration -&gt; Edit... -&gt; Alert Notification </p>
<p>				The new options behave as follows: </p>
<p>				- &quot;Only send email notifications for high-priority alerts&quot;, when set, will filter emails sent to operators in such a way that operators will only receive email notification when high-priority alerts are raised. Medium and low priority alerts will continue to be raised and will be viewable/resolvable from the main web-based UI as before. </p>
<p>				- &quot;Do not send more than the given number of email notifications per day&quot;, when set, places a hard cap on the number of email notifications sent to each operator per day. When an operator has reached their cap of email notifications for a day, an email is sent to them alerting them of this fact, as well as informing them of ways to reset the cap. This cap is reset every night at midnight, at which point the operators can once again begin to receive email notifications. Alternatively, an administrator can click the &quot;Reset Email Notification Sent Count&quot; button to immediately reset the caps so that operators may begin to receive email notifications again.</p>
<p>				The second set of changes affects how the Alert Widget deletes alerts. Previously, the user would select one or more alerts and click the delete button, deleting those alerts. However, in the case of even just a few hundred alerts, this becomes unmanageable. With this change, when the user clicks the delete button on an Alert Widget, a new dialog is displayed. </p>
<p>				Its three options behave as follows: </p>
<p>				- &quot;Delete selected alerts&quot; is the same as the 12.0.0 behaviour. Only those alerts selected in the Alert Widget will be deleted. </p>
<p>				- &quot;Delete alerts received before&quot; will delete all alerts received before the given time. Note that this option will only delete the alerts for resources included in this Alert Widget; if a resource&#39;s alerts are not being shown in the Alert Widget, its alerts will not be deleted by this option. </p>
<p>				- &quot;Delete alerts for the following resource&quot; will delete all alerts for the selected resource. The list of resources to choose from is the same as the list of resources whose alerts are viewable from the Alert Widget.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR641998">641998</a></td>
<td>When in Debug mode, the SQL editor for a view, trigger, procedure, function or event, contained a menu item and toolbar button for the Query Editor, even though the contents of the editor could not be modified. Similarly, the SQL editor for a trigger, procedure or function, contained menu items for translating the SQL to Watcom-SQL or Transact-SQL</p>
<p>				dialects. Now, these menu items and toolbar buttons are no longer displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642010">642010</a></td>
<td>If a Initialization utility command line used exceptionally long filenames and encryption key, and the encryption key contained at least one single quote character, the resulting database may have been unusable. The server would always have reported an incorrect encryption key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642015">642015</a></td>
<td>Due to an uninitialized variable in the iAnywhere JDBC driver, applications using the driver (such as the MobiLink server) could have crashed when trying to access a result set. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642131">642131</a></td>
<td>On Linux systems, the Relay Server could have failed to reconnect the Outbound Enabler&#39;s down channel, and displayed the following error message: &quot;RSE1015: Invalid first &#39;OE_DNCHANNEL_RECONNECT&#39; packet from the outbound enabler&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642172">642172</a></td>
<td>Even with the changes for Engineering case 629453, on Ubuntu systems, clicking on a result set cell and choosing &#39;Edit in Window&#39; would have opened the edit dialog and left focus in the cell. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642173">642173</a></td>
<td>Erroneous results were returned when host indicator variables were used multiple times. This has been corrected.</p>
<p>				For example, the statement</p>
<p>				SELECT 1 + :x + :x:y + :x</p>
<p>				would generate incorrect results when a value was substituted for :x. A work-around would be to remove the :y from the statement, since host indicator variables are parsed but not processed in UltraLite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642237">642237</a></td>
<td>Certain shapes of polygons when being loaded in a round-earth SRID, would have incorrectly given an invalid polygon error. An example of this is: &quot;select new ST_Polygon( &#39;Polygon((90 0, 90 -10, 100 -10, 100 0, 97 0, 97 10, 93 10, 93 0, 90 0))&#39;, 4326 )&quot; This has been fixed.</p>
<p>				One workaround is to start the polygon on a different point around its ring.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642245">642245</a></td>
<td>Calling Synchronize with a ULSyncProgressListener would have resulted in a thread left hanging after the sync had completed, which could have resulted in the application executable remaining locked after the application had shut down, requiring a device reset. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642249">642249</a></td>
<td>If a synchronization model from version 10 or 11 was added to a version 12 synchronization project, the column mapping directions were not displayed correctly for upload-only or download-only table mappings. This was only a display problem; the synchronization scripts were generated correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642285">642285</a></td>
<td>Under rare circumstances, an exception (java.lang.NullPointerException) could have been thrown when switching to another synchronization model in the project. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642313">642313</a></td>
<td>Execution of the statement &quot;BACKUP DATABASE DIRECTORY &#39;&#39; TRANSACTION LOG RENAME TRANSACTION LOG ONLY&quot; would have left a gap in the offsets between the renamed transaction log and the live transaction log. This would have affected replication, synchronization and the ability to recover from backups. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642329">642329</a></td>
<td>An attempt to use an exception name in a procedure when the exception had not been declared did not report an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642398">642398</a></td>
<td>When running on Linux systems, if the Relay Server State Manager (rshost) was not running and a client made a request invoking the client module, this request could have crashed the module. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642399">642399</a></td>
<td>When connecting a device that supports the OMA Device Management protocol directly to an Apache based Relay Server, the device would have displayed an error stating 揑nvalid Host Address�. The Afaria Server still provisions the device, but the Afaria OMA-DM Server logs state: &quot;... authentication: no credentials in message �. When sending the response back to the client, the Relay Server (when run on Linux systems) was incorrectly setting the content-type header as text/plain instead of application/vnd.syncml.dm+wbxml. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642441">642441</a></td>
<td>When using the Browse button in the Deployment wizard to select the directory where the .msi file is to be created, the resulting file would only have been 199 kb in size and would have generated an error when attempting to run it. The problem would not have occurred when deploying to the default location, or manually typing or pasting in the location. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642460">642460</a></td>
<td>Starting a copy node server while updates were being applied at the primary server, could have resulted in a variety of failures, including assertion failures 100902 or 100903, or checksum failures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642524">642524</a></td>
<td>The server could have become unresponsive when processing index scans in which a residual predicate continually rejected candidate rows for the duration of the scan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642563">642563</a></td>
<td>When running the install generated by the Deployment wizard, the ADO.NET provider was not registered correctly. Running the utility setupvspackage.exe manually after the install finished would have correctly registered the .NET provider. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642568">642568</a></td>
<td>If a synchronization failed with a protocol error, some later synchronization could have failed with a translator or right truncation error. It was also possible that instead of failing, the later sync could have made use of the failed syncs to, for example, insert it into the consolidated. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642575">642575</a></td>
<td>Diagnostic tracing could have hung, or dropped connections, or possibly crashed the server, if a connection was canceled or a connection to the tracing database was dropped. Mirroring or read-only scale-out could also have hung or dropped connections if a connection was canceled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642600">642600</a></td>
<td>When attempting to start the server on a TeamPad series model of a Fujitsu CE device, the server would always have failed, report the error &quot;Not enough memory&quot;. This problem has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642765">642765</a></td>
<td>11.0.1 SQL Anywhere Monitor can not detect long running queries</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642826">642826</a></td>
<td>A NullPointerException could have occurred when the DetailsList lost focus. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642827">642827</a></td>
<td>The Relay Server for IIS7 would have failed to stream Afaria downloads, and was causing the Afaria client to timeout. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642833">642833</a></td>
<td>When under heavy load, the server may have crashed when receiving multiple requests on an HTTP connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642836">642836</a></td>
<td>When monitoring a primary server in a mirrored environment and a failover occurred, the Monitor would have continued to report the primary was unavailable, rather than failing over to the new primary and continuing to Monitor. It is now possible to configure the resource such that when a failover occurs, the Monitor will switch to the new primary and continue monitoring. In this case, rather than an availability alert, the user will get a &quot;Mirror Unavailable&quot; alert. </p>
<p>				To implement this new behaviour, do the following when configuring the resource for monitoring: </p>
<p>				- When providing connection information in the new SA resource wizard, provide a comma separated list of hostname:port values for the &quot;Host&quot; input (e.g. &quot;my-primary-server:2638,my-mirror-server:49152&quot;). See http://dcx.sybase.com/index.html#1200en/dbadmin/host-con-parm.html*d5e18361 for more information. </p>
<p>				- In the &quot;Other&quot; input, add &quot;NODETYPE=primary&quot;. See http://dcx.sybase.com/index.html#1200en/dbadmin/node-type-conparm.html*d5e18888 for more information.</p>
<p>				- In the &quot;Server&quot; input, use the alternate server name for your mirroring system. See http://dcx.sybase.com/index.html#1200en/dbadmin/dbserver-s-41861441.html*d5e16685 for more information.</p>
<p>				If the the location of both the primary and mirror servers is not specified, the behaviour is the same as before (i.e. an availability alert is raised for the primary and no switch to the new primary occurs).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642865">642865</a></td>
<td>The SQL Anywhere OLE DB provider was ignoring the Location and Initial Catalog connection parameters. This problem has been fixed. </p>
<p>				&quot;Location&quot; can now be used to specify the host name and port of the database server. The form is hostname:port (e.g., username-pc:3628). &quot;Location&quot; is mapped to the SQL Anywhere &quot;Host&quot; connection parameter for version 12 or later and the &quot;CommLinks&quot; connection parameter for version 11 or earlier. </p>
<p>				&quot;Initial Catalog&quot; can now be used to specify the database to connect to when more than one database has been started by a SQL Anywhere database server. &quot;Initial Catalog&quot; is mapped to the SQL Anywhere &quot;DatabaseName&quot; (DBN) connection parameter.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642889">642889</a></td>
<td>The changes for Engineering case 615994 introduced a problem where refreshing the Domains folder, after having selected a non-proxy table&#39;s Columns tab, would have caused a &quot;Resource</p>
<p>				governor&quot; error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642971">642971</a></td>
<td>The utility SetupVSPackage.exe would have thrown the error &quot;Object reference not set to an instance of an object.&quot;, if the .NET Framework 4.0 was not installed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642980">642980</a></td>
<td>A number of corrections and improvements have been made to the SQL Anywhere OLE DB schema rowset support procedures: </p>
<p>				- If a catalog name is specified as one of the schema restrictions, the procedure will make sure it matches the current catalog. If it does not, a single row will be returned with NULLs. </p>
<p>				- Any rowset that can return a catalog name in a column will now return the current database name in that column instead of NULL. </p>
<p>				- The rows returned in the DBSCHEMA_PROVIDER_TYPES rowset have been slightly reordered for better results with Microsoft tools. This was done since Microsoft tools ignore the BEST_MATCH column and use the first row that matches the datatype it is searching for. </p>
<p>				- In the DBSCHEMA_PROVIDER_TYPES schema, the XML datatype will now set the DATA_TYPE column to 141 (DBTYPE_XML), the IS_LONG column to 1 and return 2GB instead of 32767 for COLUMN_SIZE. </p>
<p>				- In the DBSCHEMA_PROVIDER_TYPES schema, the TIMESTAMP WITH TIME ZONE datatype will now set the DATA_TYPE column to 146 (DBTYPE_DBTIMESTAMPOFFSET). This is supported in version 12 or later of SQL Anywhere. </p>
<p>				- An entry for the REAL datatype was missing from the DBSCHEMA_PROVIDER_TYPES rowset. This row has been added. </p>
<p>				To install these updates into a database, the Upgrade utility (dbupgrad), or the ALTER DATABASE UPGRADE statement can be used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR642996">642996</a></td>
<td>If a database encrypted with AES_FIPS or AES256_FIPS was copied to a CE device, the server would have been unable to start it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643019">643019</a></td>
<td>In rare situations, data corruption may have occurred during up channel renewal when the backend server was under high load. By default, channel renewal occurs whenever 2G of data has been uploaded to the Outbound Enabler. Since the up channel renewal mechanism has been replaced by chunk encoding in the version 11.0 Apache Relay Server, and all IIS Relay Servers, this issue only applies to version 12.0 Apache or IIS Relay Servers working against older Outbound Enablers (earlier than 11.0.1.2446) which don&#39;t support chunking. Up to 64k of upload data could have been lost when this problem occurred. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643157">643157</a></td>
<td>When running the deployment wizard, if the main SQL Anywhere install did not include all components, the deployment could have failed. For example, if UltraLite was not present, the Deployment Wizard for Windows Mobile would have raised the following error:</p>
<p>				Running CabWiz ...</p>
<p>				CabWiz Command Line:</p>
<p>				&quot;C:\Program Files\SQL Anywhere 11\ce\cabwiz\cabwiz.exe&quot; &quot;C:\Documents and Settings\admin\Desktop\sqlany11.inf&quot; /dest &quot;C:\Documents and Settings\admin\Desktop\&quot; /compress</p>
<p>				CabWiz Output:</p>
<p>				Windows CE CAB Wizard</p>
<p>				Error: Section [SourceDisksNames] - path C:\Program Files\SQL Anywhere 11\ultralite\ce\ARM.50 not found</p>
<p>				Error creating .CAB file</p>
<p>				C:\Documents and Settings\admin\Desktop\sqlany11.CAB</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643187">643187</a></td>
<td>The Unix installer now sets up the SQLANYSAMP12 environment variable in the sa_config and sample_config scripts. On Unix systems, the sample_config script may be used to create a per-user copy of the samples. This is useful for a multi-user installation. With this change, the sample_config script will now set the SQLANYSAMP12 environment variable. The sample_config script will also generate a file (sample_env) to set the SQLANYSAMP12 environment variable, which if present will be picked up by the sa_config script. The sa_config script is used to set up environment variables for Unix. If the user has run the sample_config script to create a per-user copy of the samples, it will use the generated settings file to set SQLANYSAMP12 to point to the user&#39;s copy of the samples. If the user is running a single-user installation, the sa_config script will set SQLANYSAMP12 to $SQLANY12/samples (default setting for single-user installations).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643196">643196</a></td>
<td>Progress messages are sent every 5% of the total estimated duration, but if no message has been sent (i.e. the percentage complete has not changed by 5%) for five minutes, another message should be sent anyway. These repeated messages were not being sent - this has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643221">643221</a></td>
<td>When loading a shapefile containing complex geometries, status messages may not have been printed every 5 minutes (as per the documentation), but could be delayed for arbitrary periods of time. During these periods the CPU usage of the engine would appear very high. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643230">643230</a></td>
<td>The datatypes sysname and uniqueidentifierstr were both being mapped to char(0) in Micrsoft&#39;s SQL Server Integration Services. This has been corrected so that sysname is now mapped to varchar(30), and uniqueidentifierstr is now mapped to char(36).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643281">643281</a></td>
<td>In very rare and timing dependent cases, the server could have crashed after disconnecting a TCP/IP connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643286">643286</a></td>
<td>A mirror server could have crashed if multiple errors occurred on startup. A mirror server uses -xp, and the crash could have occurred if the database failed to start and the TCP/IP protocol failed to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643296">643296</a></td>
<td>The use of sequence generators would have caused the server to crash when it was run in in-memory mode. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643314">643314</a></td>
<td>Canceling an external stored procedure may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643317">643317</a></td>
<td>Canceling a call to xp_sendmail(), xp_startmail(), xp_stopmail(), xp_startsmtp(), or xp_stopsmtp(), may have caused a server crash. The external stored procedures that manage SMTP mail state did not protect against the case were two threads can try to access the same SMTP state. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643342">643342</a></td>
<td>If an external environment call encountered a thread deadlock error, then there was a very small chance the application or event connection would have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643355">643355</a></td>
<td>Setting the value of an OUT parameter in an external stored procedures would have persisted, even without calling the set_value() function. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643418">643418</a></td>
<td>Opening the property sheet for a remote task before deploying it could prevent it from being executed by the MobiLink Agent if its SQL condition was empty and no other condition had been specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643421">643421</a></td>
<td>If an application was attempting to connect to a server and the server shut down between the time the protocol connection was made and the time the database connection was attempted, the application could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643423">643423</a></td>
<td>When monitoring a SQL Anywhere resource that was under heavy load, it was possible that metrics being recorded could have been inaccurate. Most often this would have manifest itself as CPU Usage metric values being reported that were greater than 100%. This issue has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643456">643456</a></td>
<td>If ALTER TABLE was used to reduce the length of a string column to less than the value of the INLINE or PREFIX values for that column, and then the database was unloaded, the reload script would have contained CREATE TABLE statements that would be rejected by the server. </p>
<p>				This has been fixed so that the ALTER TABLE statements will now fail.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643457">643457</a></td>
<td>Clicking the Back or Next button may not have updated the toolbar buttons properly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643463">643463</a></td>
<td>If an application attempted to fetch a long binary value from a proxy table, and the underlying Remote Data Access server was JDBC based, then there was a chance the value would have been returned truncated. It should be noted that JDBC based Remote Data Access server classes have been deprecated and all attempts should be made to switch to an ODBC based Remote Data Access server class if at all possible. Nevertheless, the original truncation problem with the JDBC based Remote Data Access server classes has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643571">643571</a></td>
<td>The UltraLite Information utility (ulinfo) is supposed to display a list of the valid user IDs in an UltraLite database. In some cases, this list was not being displayed. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643576">643576</a></td>
<td>Sybase Central could have crashed when deleting a deployed Remote Task while the &quot;Results&quot; panel was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643587">643587</a></td>
<td>The server may have hung while processing data for encrypted connections. This has been </p>
<p>				fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643590">643590</a></td>
<td>When using the include_file parameter of the external system procedures xp_sendmail and xp_sendmail, they may have failed depending on the length of the file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643596">643596</a></td>
<td>When executing a query that involved window functions, proxy tables and dotted references, if the query was invalid due to a missing GROUP BY reference, then there was a chance the server would have failed to return the error. In some cases, the server would even have crashed. This problem has now been fixed.</p>
<p>				Note that this fix is a follow-up Engineering case 641477.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643598">643598</a></td>
<td>The &quot;Edit in Window&quot; menu item was inadvertently shown when editing binary columns, and has now been removed. Editing the hex value in the table cell is still supported, as is loading a value from a file, but editing the hex value in a separate window was never supported. </p>
<p>				Also, the &quot;Edit in Window&quot; menu item was visible if a binary column value was clicked in the Results panel, and then the &quot;...&quot; button was clicked. This has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643642">643642</a></td>
<td>Revoking all table permissions from a grantee that were granted by a particular grantor did not always remove the corresponding SYSTABLEPERM row. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643660">643660</a></td>
<td>The DATEPART and HOUR functions would have returned the Hours partion of timestamps based on a 12 hour clock instead of a 24 hour clock. As a result, any afternoon timestamps would have returned the wrong Hours value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643675">643675</a></td>
<td>When a user was in the process of creating a new widget for the SQL Anywhere Monitor, it was possible that certain metrics would not have been selectable. This problem was more likely to manifest itself if the SQL Anywhere Monitor was particularly busy at the time of creating the widget. For example, when creating a Table Widget for an SA resource, it was possible that the &quot;Free Disk Space&quot; category would not have let the user select which dbspace they wished to see free disk space for. This problem could also have manifest itself in the following ways: </p>
<p>				- When the user selected a widget&#39;s &quot;Settings...&quot; menu item, it was possible that metrics which were present in the widget would not have appeared as selected in the list of metrics </p>
<p>				- When creating a default dashboard for an SA resource, the table widget included on the dashboard would have been missing its Free Disk Space metrics</p>
<p>				- If the user wanted to create resource-based dashboards during the process of adding a new user, it was possible that a widget may be missing metrics or display them improperly</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643681">643681</a></td>
<td>If a temporary function was incorrectly defined to return a result set, calling the function would have given the error:</p>
<p>				Function &#39;&lt;function-name&gt;&#39; has invalid parameter &#39;expression&#39; (&#39;OUT&#39;)</p>
<p>				The correct error now reported is:</p>
<p>				Result set not permitted in &#39;&lt;function-name&gt;&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643698">643698</a></td>
<td>On Mac OS systems, the Create Database wizard would have remained open after successfully creating a database. With the Cancel button disabled, it was necessary to click the Close box to close the wizard. Now, the wizard is automatically closed when database creation is successful.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643701">643701</a></td>
<td>HP uses the character set name hp15CN as an alias for GB2312. Support for this alias has been added. Current builds of 11.0.1 and up already handled this alias.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643703">643703</a></td>
<td>The MobiLink Replay utility (mlreplay) may have logged download success messages before the download was fully completed. In the Replay utility, a download is complete once it has received all the data from the MobiLink server and the download apply time has been reached. Prior to this change, mlreplay would have logged the download success message after receiving all the data from the MobiLink server, but before the download apply time had been reached. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643728">643728</a></td>
<td>Attempting to open the text completer while editing a stored procedure in Sybase Central would have resulted in the completer appearing and then immediately disappearing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643763">643763</a></td>
<td>Execution of a query block that output a string constant could have caused the server crash if the optimizer chose a parallel execution plan. The likelyhood of such a crash increased under high server load and when the query occurred inside a stored procedure. This problem has now been fixed.</p>
<p>				For version 12.0.0, this problem was most likely to be encountered when using string literals in different blocks of a Union, as follows:</p>
<p>				SELECT &#39;String1&#39;, col1, col2 FROM table1 WHERE predicate1</p>
<p>				UNION</p>
<p>				SELECT &#39;String2&#39;, col1, col2 FROM table2 WHERE predicate2</p>
<p>				For versions prior to 12.0.0 this problem was much more obscure, and likely required a constant string occurring both in a non-simple output expression and in a WHERE clause predicate.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643787">643787</a></td>
<td>REFRESH TEXT INDEX on MANUAL or AUTO text index could have caused database recovery to fail. For the problem to have occurred, the statement had to have been executed under SNAPSHOT isolation, which must also have been enabled on the database as part of the changes being recovered. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643802">643802</a></td>
<td>A web procedure that references another computer by name may have failed to connect if both machines supported IPv6, but the web server on the remote computer was not listening on any IPv6 addresses. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643805">643805</a></td>
<td>In rare cases, if procedure profiling was used on a database with events defined, the server could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643812">643812</a></td>
<td>When a backend server was using an id longer than 44 characters, the client may not have been able to access the backend server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643822">643822</a></td>
<td>Schema locks were not being released when the execution of ExecuteReader() encountered an exception. If a BeginTransaction was called, a Rollback or Commit should be called by the application to release the locks. Now, if BeginTransaction is not called, the transaction will be automatically rolled when an exception is encountered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643936">643936</a></td>
<td>Unexpected column names could have been reported for complex expressions in the SELECT list of a statement. The problem mostly affected queries over views, for which the name of the base table column, rather than the name of the view column, could have been reported.</p>
<p>				For example, consider the following table and view:</p>
<p>				CREATE TABLE admin_group.employee(</p>
<p>				pk INTEGER PRIMARY KEY,</p>
<p>				fname CHAR(100) NOT NULL,</p>
<p>				lname CHAR(100) NOT NULL,</p>
<p>				cname CHAR(100) );</p>
<p>				CREATE VIEW admin_group.v AS</p>
<p>				SELECT e.fname AS first_name, e.lname AS last_name,</p>
<p>				e.cname AS company_name</p>
<p>				FROM admin_group.employee e;</p>
<p>				In the query:</p>
<p>				SELECT &lt;expr&gt; FROM admin_group.v;</p>
<p>				the following expressions would have been described with the base table column names:</p>
<p>				CAST( first_name AS VARCHAR(100))</p>
<p>				(first_name)</p>
<p>				This has been fixed so that both of the expressions above will now be described as &#39;first_name&#39;.</p>
<p>				Additionally, expressions such as ISNULL( &lt;col1&gt;, &lt;col2&gt; ) could have been described differently depending on the nullability of the first column. For example, ISNULL( first_name, company_name ) would have been described as &#39;fname&#39;, whereas ISNULL( company_name, first_name ) would have been described as &#39;isnull( employee.fname as first_name,employee.cname as company_name)&#39;. For consistency, both of the above expressions will now be described by unparsing the expression.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643953">643953</a></td>
<td>In the Extract Database wizard for UltraLite, when checking or unchecking publications using the space bar instead of the mouse, the Next button would not have been enabled or disabled appropriately. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR643960">643960</a></td>
<td>The changes for Engineering case 635800 introduced a problem for applications running on Palm devices. Applications could have hung while saving or restoring state, for example on database shutdown. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644075">644075</a></td>
<td>The DROP PUBLICATION statement was not being autocommitted, like other schema changing statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644090">644090</a></td>
<td>The MobiLink Replay utility (mlreplay) could have incorrectly calculated the download apply time when multiple simulated clients were replaying the recorded protocol. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644105">644105</a></td>
<td>When a heavy download occurred, the Relay Server Outbound Enabler may have unnecessarily timed out the Up channel. This has been fixed by relaxing the Up channel liveness timeout when the Down channel is busy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644112">644112</a></td>
<td>When the backend machine was under heavy load, a standalone Relay Server Outbound Enabler may have reported the following internal error </p>
<p>				HandleNotification: Error receiving for sidx=&lt;session_index&gt; system error ({error code})</p>
<p>				With this change, the error is now less likely to occur.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644122">644122</a></td>
<td>A number a LOAD TABLE fixes have been made.</p>
<p>				1. Arbitrary expressions were allowed in the FROM/USING clause of LOAD TABLE. If a variable was used, its value was logged to the transaction log; however, if the expression was anything other than a literal string or a variable (eg. &#39;c:\\tmp\\&#39;+filename_var), the original expression would have been logged including the names of variables whose values would be unknown at recovery. The problem was fixed by only allowing a string or a variable for the file name (as documented).</p>
<p>				2. If a LOAD TABLE statement was logged that used a variable in the FROM/USING clause and the statement was affected by database options such that the option values had to be logged with the statement, the variable name rather than its value would have been logged. This problem has been fixed.</p>
<p>				3. When using LOAD TABLE ... WITH CONTENT LOGGING, the data logged was in the character set in which the server parsed the input file (either CHAR or NCHAR charset), rather than the original input file&#39;s character set. If the LOAD TABLE statement had an ENCODING clause, the data would have been re-translated during recovery as if it were in the specified ENCODING and potentially mangling the data. Fixed by logging an exact copy of the original input data.</p>
<p>				4. If a LOAD TABLE statement did not contain an ENCODING clause (in which case the server assumes CHAR charset), the statement written to the log would not have one either. If the log were translated and executed against a database with a different collation, the file could be translated incorrectly since the default encoding would be different. This problem has been fixed by always logging an ENCODING clause.</p>
<p>				5. If a LOAD TABLE statement contained an ENCODING clause that specified a &#39;UTF16&#39; encoding of unspecified endian, the logged statement would also have contained an ENCODING clause with an unspecified endian. If recovery were performed on a server with the opposite endian, or if the log was translated then executed on a server with the opposite endian, the statement would not interpret the input file correctly. This problem has been fixed by never logging ambiguous names for encodings.</p>
<p>				6. LOAD TABLE ... FORMAT XML ... WITH CONTENT LOGGING did not actually log any data and was not recoverable. This problem has been fixed.</p>
<p>				7. LOAD TABLE ... FORMAT XML ... USING COLUMN (which is the statement that is logged for a LOAD TABLE ... FORMAT XML ... WITH CONTENT LOGGING) would have crashed the server. This problem has been fixed.</p>
<p>				8. LOAD TABLE USING CLIENT FILE ... WITH FILE NAME LOGGING was permitted by the server and the server would then have logged a statement that referenced a client file. Access to the client file requires an active connection from the client and therefore this statement was not recoverable. This problem has been fixed by requiring WITH CONTENT LOGGING when loading from a client file. If the logging type is not specified when loading from a client file, content logging is assumed.</p>
<p>				9. When recovering a LOAD TABLE ... WITH CONTENT LOGGING or executing LOAD TABLE ... USING COLUMN, the server would have leaked a small amount of memory for each row of data fetched from the table containing the pieces of the original file image. This problem has been fixed.</p>
<p>				10. When executing LOAD TABLE ... USING COLUMN ... ENCODING..., the server did not check for a conflict between the specified encoding and the encoding of the column&#39;s datatype. This problem has been fixed by reporting an error if the encodings conflict.</p>
<p>				11. LOAD TABLE and UNLOAD TABLE did not allow the ESCAPE CHARACTER to be more than 1 byte. It can now be an arbitrary string, but it is recommended that it should be no longer than one (potentially multibyte) character.</p>
<p>				12. When using UNLOAD TABLE with a QUOTE or ESCAPE CHARACTER which was not encoded identically in both CHAR and NCHAR character sets, the quotes may not be doubled up or escape sequences may not be issued where necessary depending on the datatype of the column being unloaded. This problem has been fixed.</p>
<p>				13. When using UNLOAD TABLE with a QUOTE or ESCAPE CHARACTER which were not encoded identically in both CHAR and NCHAR character sets and the destination charset, the quotes or escape characters could have been translated incorrectly when converting to the destination character set. This problem has been fixed.</p>
<p>				14. ALTER DBSPACE RENAME allowed a variable to be used for the new file name but the variable name rather than its value was logged, which meant that the statement was unrecoverable. This problem has been fixed by logging the variable&#39;s value instead.</p>
<p>				15. The SQL generated by the Log Translation utility (dbtran) for LOAD TABLE ... WITH CONTENT LOGGING (ie inserts into a temporary table) did not work correctly due to the temporary table&#39;s name being fully qualified with the user&#39;s name. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644464">644464</a></td>
<td>If a database had two or more &#39;post_login_procedure&#39; option settings, then attempting to connect to the database would have failed with a &quot;Subquery cannot return more than one row&quot; error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644477">644477</a></td>
<td>Text completion in SQL that was loaded from a Favorite may not have worked correctly if the SQL spanned multiple lines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644491">644491</a></td>
<td>A bypass query that contained an invalid cursor range could have caused the server to crash in certain conditions. This has been fixed.</p>
<p>				Note: please see the section &quot;Query processing phases&quot; for a definition of bypass queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_84.htm#CR644508">644508</a></td>
<td>A SQL Anywhere HTTP procedure may have failed when configured with a PROXY clause to connect through an Apache forwarding proxy version 2.0.X. This has been fixed. Changes have also been made to improve WebClientLogging (-zoc) messages when connecting through a proxy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644526">644526</a></td>
<td>If a long index entry (the equivalent of a 250 character or longer ASCII string) was deleted from an index, there was the possibility of index corruption and the server crashing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644529">644529</a></td>
<td>When deleting a resource in the SQL Anywhere Monitor, it was possible that after the delete completed, the Configure, Remove, Start/Stop and Repair buttons would still have been enabled, even though no resource was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644682">644682</a></td>
<td>Using a reserved word as a label in a Transact-SQL procedure would have made the procedure unusable. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644703">644703</a></td>
<td>When using ST_AsSVG, ST_AsSVGAttr, ST_AsText or ST_AsXML to output SVG, if the Attribute SVG format option was specified, an invalid SVG document could have been generated. In particular, if an SVG shape attribute was generated, and the same SVG shape attribute was explicitly specified by the Attribute SVG format option, the resulting SVG document contained a duplicate attribute.</p>
<p>				For example, if ls was a linestring geometry:</p>
<p>				select ls.ST_AsSVG( &#39;Attribute=fill=&quot;blue&quot;&#39; )</p>
<p>				would have resulted in an invalid SVG document with a duplicate attribute.</p>
<p>				This has been fixed by only outputting the generated attribute or the attribute from the Attribute SVG format option, but not both, when there is a duplicate attribute.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644733">644733</a></td>
<td>If a server acting as a mirror in a mirroring system required access to transaction log files on the primary that had been deleted, the mirror server would not have reported an error. The mirror server would have continued to stay running, but would not have received updates from the primary server. This has been fixed so that the mirror server will now report the error and shut down.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644855">644855</a></td>
<td>If the Interactive SQL utility (dbisql) was open, and the results of a query were displayed, changing the Windows desktop theme from &quot;Windows XP&quot; to &quot;Windows Classic&quot;, or otherwise changing the Window style from &quot;XP&quot; to &quot;Classic&quot;, would have caused dbisql to crash. This has been fixed.</p>
<p>				This issue could have manifest itself any time the Windows look-and-feel was changed from something other than Windows Classic to Windows Classic. It would also have affected Sybase Central if a table was selected in the &quot;Folders&quot; panel. </p>
<p>				This issue only occurred on Windows computers. Operation on other operating systems was not affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644908">644908</a></td>
<td>After an ALTER TABLE statement, some views may have been incorrectly marked as INVALID. The problem only occurred for views in which the altered table occurs multiple times in the logical expansion of the view definition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644976">644976</a></td>
<td>If an application made at least five connections, and then all were disconnected, the messages &quot;Disconnecting shared memory client, process id not found&quot; and &quot;Disconnected ... client&#39;s AppInfo is ...&quot; could have incorrectly been logged to the server&#39;s message window. This was most likely to have occurred with an application using the SQL Anywhere JDBC driver. As a workaround, disabling connection pooling would prevent the messages from being displayed. This has been fixed so that these messages are not displayed for pooled connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR644992">644992</a></td>
<td>If the SQL Anywhere Monitor was particularly busy when a user attempted to load the Monitor&#39;s web-based UI, it was possible that the Flash Player debugger could have reported a null-pointer exception. If the Flash Player debugger was not installed, this problem would have manifest itself as a slower than usual load time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645001">645001</a></td>
<td>If parallel access plans were considered by the SQL Anywhere Optimizer, then it was possible for queries to fail assertions 105804,105805, or 105816, &quot;Cannot build parallel ...&quot;. This has been fixed.</p>
<p>				See: &quot;SQL Anywhere Server - SQL Usage � Query optimization and execution � Query execution algorithms � Parallelism during query execution � Parallelism in queries&quot;</p>
<p>				or:</p>
<p>http://dcx.sybase.com/index.html#1200en/dbusage/queryopt-s-4716396.html*d5e30658</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645005">645005</a></td>
<td>When using the Unload or Extract Database wizards, if unload/extract into a new database was chosen, and Strong encryption was specified with an encryption key that didn&#39;t match the confirm encryption key, then the wizards would have continued to report a key mismatch error even after the encryption type was changed to Simple (where the encryption key is not used). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645138">645138</a></td>
<td>In very rare cases, a primary mirroring server could have crashed on shutdown if the database was being updated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645142">645142</a></td>
<td>On Windows systems, the server&#39;s process heap could have become corrupt. The only circumstance under which this was likely to occur was if a dialog was displayed (to locate a dbspace, for example) when starting a database specified on the command line. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645161">645161</a></td>
<td>The graphical and long plans may have contained incorrect total estimated runtime information. This has been fixed.</p>
<p>				Note, this problem did not affect the quality of the plan found by the Optimizer, only the final estimated runtimes shown in the graphical and long plans were incorrect.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645223">645223</a></td>
<td>The Relay Server for IIS7 could have unexpectedly disconnected persistent http connections after finishing relaying a server response. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645325">645325</a></td>
<td>Spatial queries that applied a predicate that measured distance (ST_WithinDistance, ST_WithinDistanceFilter, or ST_Distance) may have caused a server crash when the optional unit name was supplied to the predicate, and the optimizer chooses a parallel plan. </p>
<p>				For example, the following query would have caused a crash if the optimizer chose a parallel plan:</p>
<p>				select count(*) </p>
<p>				from my_table </p>
<p>				where my_table.geometry.ST_WithinDistance( new ST_Point( 0, 0, 4326 ), 10, &#39;kilometre&#39;) = 1 </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645468">645468</a></td>
<td>In rare situations, the value for Index Statistics reported in graphical plans may have been incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645496">645496</a></td>
<td>For geometries in Round Earth spatial reference systems with lat, lon, z, or m axis order or, with units of measurement other than degrees, an incorrect result could have been returned by the following methods:</p>
<p>				ST_XMin, ST_XMax, ST_YMin, ST_YMax, ST_LonWest, ST_LonEast, ST_LatSouth, ST_LatNorth</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645497">645497</a></td>
<td>No messages would have been when right-clicking a synchronization profile, selecting &quot;Synchronize...&quot;, and then clicking OK. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645529">645529</a></td>
<td>When run on Windows desktop, UltraLite now supports long paths when creating, opening, or deleting databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645630">645630</a></td>
<td>When editing DATE, TIME, or TIMESTAMP values in a result set, the usual date/time editor was not being make available, forcing the value to be edited as a string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645635">645635</a></td>
<td>HTTP requests made to SQL Anywhere services that utilize the built-in HTTP Session mechanism (created with sa_set_http_option) may, on rare occasions, have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645659">645659</a></td>
<td>Under some conditions, the QAManager Close() method could have taken up to a minute to return. This has been fixed. The Close() method will now always complete in a reasonable amount of time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645664">645664</a></td>
<td>Attempting o unload and reload a database that contained a proxy table with a unique constraint would have failed with the error: &quot;feature &#39;alter remote table&#39; not implemented &quot;. This problem has now been fixed. The &quot;alter table...add unique&quot; statement is no longer unloaded for proxy tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645665">645665</a></td>
<td>When a message was received by the QAManager.GetMessage method when the QAManager was opened in AcknowledgementMode.IMPLICT_ACKNOWLEDGEMENT and the QAnywhere Agent was running with automatic policy, it was possible that the acknowledgement would not have been transmitted to the receiver until the next time the message store was synchronized with the MobiLink server. This has been fixed. Now the received message is immediately acknowledged.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645666">645666</a></td>
<td>The server supports the optional use of the LIMIT/OFFSET clauses in SELECT statements as an alternative to the TOP/START AT clauses. If such a statement was used within a view definition then the server would have ignored the LIMIT/OFFSET specification and would have returned the entire result set of the underlying view query. This has been fixed so that the server now pays attention to the LIMIT/OFFSET clauses used within view definitions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645759">645759</a></td>
<td>Attempting to drop a temp table created by sa_copy_cursor_to_temp_table() could have failed with an error.</p>
<p>				For example, the following sequence could have given a permission error for a user without DBA authority:</p>
<p>				BEGIN </p>
<p>				DECLARE myCursor CURSOR FOR SELECT 123;</p>
<p>				OPEN myCursor;</p>
<p>				CALL sa_copy_cursor_to_temp_table( &#39;myCursor&#39;,&#39;myTempTable&#39; );</p>
<p>				drop table myTempTable;</p>
<p>				END</p>
<p>				Permission denied: you do not have permission to use the &quot;DROP TABLE&quot;</p>
<p>				statement</p>
<p>				SQLCODE=-121, ODBC 3 State=&quot;42000&quot;</p>
<p>				Further, in some cases, the temp table created by the procedure could not have been found by a reference at a different scope level. The following sequence of statements would have returned an error for that reason:</p>
<p>				BEGIN </p>
<p>				DECLARE myCursor CURSOR FOR SELECT 123;</p>
<p>				OPEN myCursor;</p>
<p>				CALL sa_copy_cursor_to_temp_table( &#39;myCursor&#39;,&#39;myTempTable&#39; );</p>
<p>				END;</p>
<p>				go</p>
<p>				select * from myTempTable</p>
<p>				These problems have been fixed. In order to get the full fix, the database must be either created with the fixed server, or upgraded using the &quot;ALTER DATABASE UPGRADE&quot; statement using the fixed server software. As well, the sa_copy_cursor_to_temp_table procedure now uses &quot;CREATE LOCAL TEMPORARY TABLE&quot; to create the table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645771">645771</a></td>
<td>With nightly maintenance set to its default settings, Relay Server farm metrics would not have been condensed into a representative daily value after two weeks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645801">645801</a></td>
<td>In an environment with each server in a mirroring system having two network connections, each on one of three separate networks, so that a failure in one of the networks would still allow two of the nodes to communicate, a network outage could have resulted in both partner servers acting as a primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645838">645838</a></td>
<td>The SQL Anywhere server erroneously allowed the Reserved_keywords option to be specified at the user and connection levels. Setting the option value at these levels could have caused problems with recovery, and for unloading and reloading a database. This has been corrected by no longer allowing non-PUBLIC settings for the Reserved_keywords option.</p>
<p>				This change now does the following:</p>
<p>				1. Temporary and user specific settings are no longer allowed</p>
<p>				2. Existing settings for non-PUBLIC users are ignored during execution</p>
<p>				3. Removal of existing user specific settings is allowed in order to allow cleanup</p>
<p>				4. dbunload sets the public option setting at the beginning of the reload script</p>
<p>				5. dbunload ignores non-PUBLIC settings in the database being unloaded</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645926">645926</a></td>
<td>If an Open Client or jConnect application attempted to prepare and execute a statement with a large number of parameters, then the server would have failed the request, or in rare cases, could have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645948">645948</a></td>
<td>The LITERAL_PREFIX and LITERAL_SUFFIX characters returned by SQLGetTypeInfo for binary data types were apostrophes. If these characters were used in an INSERT statement, the value stored was incorrect. </p>
<p>				For example: Store binary 0x1234 into column. </p>
<p>				INSERT INTO test (binary_col) VALUES (&#39;1234&#39;); </p>
<p>				The result is 0x31323334. </p>
<p>				If the LITERAL_PREFIX was 0x and the LITERAL_SUFFIX was NULL, then the value stored was correct. </p>
<p>				INSERT INTO test (binary_col) VALUES (0x1234); </p>
<p>				This problem has been corrected. The following types will now return 0x in the LITERAL_PREFIX column and NULL in the LITERAL_SUFFIX column:</p>
<p>				long binary </p>
<p>				varbinary </p>
<p>				binary</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645952">645952</a></td>
<td>The ODBC functions SQLColumns and SQLProcedureColumns incorrectly returned a NULL value for the CHAR_OCTET_LENGTH column for XML and ST_GEOMETRY data types. ST_GEOMETRY is a new data type supported by SQL Anywhere in version 12. This has been fixed and the correct value of 2147483647 is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645953">645953</a></td>
<td>The DBSCHEMA_PROVIDER_TYPES rowset schema incorrectly returned 0x in the LITERAL_PREFIX column for varbit types. The apostrophe character (&#39;) is now returned in the LITERAL_PREFIX and LITERAL_SUFFIX columns instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645959">645959</a></td>
<td>Microsoft SQL Server has introduced two data types DBTYPE_DBTIME2 and DBTYPE_DBTIMESTAMPOFFSET that are not part of the OLE DB specification. Support for conversions between these two types and DBTYPE_STR, DBTYPE_WSTR, DBTYPE_DBDATE, DBTYPE_DBTIME, and DBTYPE_DBTIMESTAMP has now been added to the SQL Anywhere OLE DB provider.</p>
<p>				DBTYPE_DBTIME2 differs from DBTYPE_DBTIME in that fractional seconds are included. The type corresponds to the Microsoft SQL Server TIME data type.</p>
<p>				DBTYPE_TIMESTAMPOFFSET adds support for a timezone offset (hours/minutes). The type corresponds to the Microsoft SQL Server DATETIMEOFFSET data type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR645986">645986</a></td>
<td>If the database server reported a &quot;definite&quot; rowcount for a query but then returned fewer than that many rows, dbisqlc could have displayed a subset of the rows, or possibly no rows at all. This has now been fixed.</p>
<p>				When using the &quot;Connect with an ODBC Data Source&quot; option in the &quot;Action&quot; dropdown list of the &quot;Login&quot; tab of the connection dialog with the 64-bit versions of the dbisqlc utility and dbmlsync, no DSNs would have been displayed; and the 32-bit versions would only have shown DSNs that used an ODBC driver with the same major version of SQLAnywhere as dbisqlc and dbmlsync. This has been fixed, so that 32-bit and 64-bit versions now display all SQLAnywhere DSNs defined for SQLAnywhere version 6.0 and up.</p>
<p>				Dbisqlc did not correctly handle certain connection string components which did not have a shortform (such as the new &quot;Server&quot; parameter). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646150">646150</a></td>
<td>The MobiLink Agent for central adminstration of remote databases would have given an obscure error message like:</p>
<p>				Task task1 (ID 50): command number 1 not executed, error code 0</p>
<p>				when a task was executed that connected to a remote database, and the adapter library (eg. mlauladapt12.dll) for that remote database was missing from the agent deployment. This has been fixed so that a clearer error message is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646169">646169</a></td>
<td>When run on a machine with 25 or more logical processors, the server may have hung. This hang would only have occurred on Windows and Linux systems. This problem has been fixed.</p>
<p>				A workaround is to reduce the number of logical processors the server uses by specifying </p>
<p>				-gtc &lt;num&gt;, where num is less than or equal 24.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646269">646269</a></td>
<td>The MobiLink Server could have crashed under heavy load if the client load was a mix of old (prior to version 10) and new (version 10 or later) clients. THis has now been fixed.</p>
<p>				A work around is to specify the -cn switch with a value of the twice the value of -w plus 1. Eg. if using the default value of -w (5), specify -cn 11. Version 12 is not affected as it no longer supports old clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646305">646305</a></td>
<td>When running the uninstall for SQL Anywhere 12, after installing ado.net components, the uninstall could have failed with the following error:</p>
<p>				&quot;Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action SetupVSPackageUninstall, entry: SetupVSPackageUninstall library: C:\Windows\Installer\MSIA8A0.tmp&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646335">646335</a></td>
<td>In rare cases, the SQL Anywhere Monitor could have failed to fetch DBSpace names for a given SA resource; at the same time, a ConcurrentModificationException would have been reported to the message log. This has been fixed. As a workaround, clicking the &quot;refresh data&quot; link in the SQL Anywhere Monitor afterwards should fetch the DBSpace names without problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646349">646349</a></td>
<td>The SQL Anywhere BINARY datatype was mapped to SQL Server&#39;s BINARY datatype. This could have resulted in incorrect values when exporting SQL Anywhere tables to SQL Server, as the SQL Anywhere BINARY datatype is variable length, and the SQL Server BINARY datatype is fixed length. This has been corrected by mapping the SQL Anywhere Binary datatype to SQL Server&#39;s VARBINARY datatype.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646356">646356</a></td>
<td>The error SQLE_MEMORY_ERROR could have been reported on Windows Mobile devices when a removable media card was ejected, or when the device returned from standby. The operation should have been silently retried for a few seconds and then SQLE_DEVICE_IO_FAILED reporting if the operation still failed. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646431">646431</a></td>
<td>In timing dependent cases, the server could have hung with 100% CPU usage. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646518">646518</a></td>
<td>In rare cases, UltraLite for Mac OS X could have gone into an endless loop while </p>
<p>				writing to the stream during a synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646543">646543</a></td>
<td>Spatial queries that constructed large geometry values for output may have been slow to respond to a cancel command. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646675">646675</a></td>
<td>In DBISQL, and Sybase Central, SQL is displayed in a syntax highlighting editor that is restricted to using fixed-width fonts. The editor&#39;s display can be thought of as being divided into a grid of fixed-width rows and columns. The column width is based on the character width of the display font, which is called the &quot;em width&quot;. Some languages, such as Japanese, Chinese, and Korean, contain characters that are wider than the em width. When the widths of these characters were not integral multiples of the em width, subsequent characters on the line were drawn without respecting the editor&#39;s grid of fixed column widths. This led to occasional problems where selected text was not drawn with the correct colors, and more importantly, prevented the text completer from making appropriate suggestions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646687">646687</a></td>
<td>If a large number of concurrent connections simultaneously executed remote queries that required partial or no passthrough processing, and several of the queries made heavy usage of aliases, then the server could have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646703">646703</a></td>
<td>In rare circumstances, reading a substring of a value from a compressed column (not starting at the first byte) could have caused assertion failure 201501 - &quot;Page ... for requested record not a table page&quot;. Note that the Interactive SQL utility (dbisql) fetches long values in pieces, so selecting the value using dbisql (without using substrings) may cause this problem. This only happens on compressed columns with blob indexes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646830">646830</a></td>
<td>In very rare cases, the server may have crashed using long identifiers in SQL statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646846">646846</a></td>
<td>VALIDATE TABLE could have reported a validation failure if an index on the table contained 65 or more columns, and a row existed whose index hash value was less than 256 bytes in length. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646858">646858</a></td>
<td>Under very rare circumstances, the server could crash during database cleaner execution. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR646862">646862</a></td>
<td>Attempting to read a large Unicode string from an UltraLite database while using the engine could have caused a buffer overrun. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647005">647005</a></td>
<td>The CE Deployment Wizard Installer would have throw an exception when clicking the &#39;Deploy to Mobile Device Now&#39; button on a system which did not have ActiveSync installed. This has been fixed so that the following error is now issued: </p>
<p>				Error: Microsoft Activesync is not installed. CEAppMgr.exe is not detected. .CAB file will not be deployed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647066">647066</a></td>
<td>The Stored Procedure Debugger was sometimes unable to set breakpoints for statements in procedures that should have allowed breakpoints. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647076">647076</a></td>
<td>When starting the server on recent versions of Linux using the -ux or -ui command line options, or when auto-starting a server that required a GUI-based evaluation splash screen, the server may have crashed or hang. The crash would have occurred mostly on recent versions of Linux running a GTK theme engine (e.g. Clearlooks). The hang could have happened with any supported GTK version after dismissing the evaluation splash screen. This has now been fixed.</p>
<p>				A workaround is to run without the GUI.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647077">647077</a></td>
<td>When run on Mac OS X systems, the server would have exited with the error &quot;Failed to </p>
<p>				become daemon&quot; if both the -um and -ud command line options were specified. This was due </p>
<p>				to a limitation in the OS X GUI infrastructure. This has been fixed. The -um flag is now ignored if -ud is specified.</p>
<p>				A workaround is to use dbspawn instead of -ud.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647154">647154</a></td>
<td>The denial-of-service attack addressed by the changes for Engineering case 610115 could still have occurred if idle timeout had been turned off on the server using the command line option -ti 0, or the system procedure sa_server_option(&#39;IdleTimeout&#39;,0). If the idle_timeout value was not 0, the server was not susceptible. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647162">647162</a></td>
<td>Selecting an Event object in the Details pane, then right-clicking the same event in the tree to enable or disable it, would have thrown an exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647163">647163</a></td>
<td>Several different spatial queries could potentially have caused server crashes, either when the Cancel was pressed, or when a SQL error was encountered while executing a parallel plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647187">647187</a></td>
<td>When attempting to insert a string into a proxy table that was the result of calling a builtin function, if the builtin function returned an empty string, then there was a chance that the Remote Data Access layer would have inserted a NULL value instead. For example, a statement like:</p>
<p>				INSERT INTO my_proxy_table(my_column) SELECT RTRIM( &#39; &#39; )</p>
<p>				may have inserted NULL instead of &#39;&#39; into to my_proxy_table. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647225">647225</a></td>
<td>Attempts to edit table data in the &quot;Results&quot; panel would have failed with the error &quot;Savepoint ... could not be found.&quot;, if the Transact-SQL transaction mode was Unchained. This has been fixed.</p>
<p>				Note that the default transaction mode is Chained.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647327">647327</a></td>
<td>In a CHECK constraint, the syntax OWNER.FunctionName() or Geometry.ST_Method1().ST_Method2()</p>
<p>				was not being accepted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647331">647331</a></td>
<td>Execution of an extremely complicated remote query that</p>
<p>				needed to be processed in either no passthrough or partial</p>
<p>				passthrough mode, could have resulted in a server failure.</p>
<p>				The server now properly returns error -890.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647341">647341</a></td>
<td>The OUTPUT...FORMAT FIXED statement wrote DECIMAL, DOUBLE, NUMERIC, SMALLINT, and TINYINT values left-aligned. They are now correctly written right-aligned, like the other numeric data types.</p>
<p>				Note, There is no guarantee that FIXED format files created by DBISQL use the same column widths as DBISQLC.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647345">647345</a></td>
<td>The data for an upload stream may not have been fully uploaded into the consolidated database if the consolidated database was running on Microsoft SQL Server and errors occurred in the upload. For this to have occurred, the connection property, XACT_ABORT must have been set &#39;ON&#39; in the consolidated database, and the handle_error script must have returned 1000 (skip the row and continue processing). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647472">647472</a></td>
<td>If SQL Anywhere was installed with an install key which contains only a subset of the whole install, such as the ALK Personal Server w/ Sync key which includes the Personal server but not the Network server, and then the Deployment wizard for Windows was run, it was not possible to select the personal server for deployment. The only database that was listed was UltraLite. The visible components have now been corrected, to show the Personal Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647495">647495</a></td>
<td>On recent versions of Linux (with SELinux enabled), programs with executable stacks were forbidden. The program would have failed to start with an error like:</p>
<p>				dbeng12: error while loading shared libraries: libdbserv12_r.so: cannot enable executable stack as shared object requires: Permission denied</p>
<p>				This would have potentially happened with any SQL Anywhere binary, and has now been fixed.</p>
<p>				A work around is to either disable SELinux, or run execstack -c on the problematic binaries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647524">647524</a></td>
<td>The server could have crashed when processing an operation that updated an index. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647547">647547</a></td>
<td>When using Adaptive Server Enterprise 15.5 as the consolidated database, checking the MobiLink System Setup could have incorrectly reported a changed or corrupt setup, with several differences reported for columns changing type from numeric to integer, </p>
<p>				like the following:</p>
<p>				Table &#39;ml_database&#39; has changed:</p>
<p>				Column &#39;rid&#39; has changed:</p>
<p>				type from numeric to integer</p>
<p>				If the only differences reported were &quot;type from numeric to integer&quot; then the error can be safely ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647663">647663</a></td>
<td>A server running as the primary in a mirroring system could have hung when the mirror server was started. This was more likely to occur after the fix for Engineering case 637057 was applied. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647682">647682</a></td>
<td>Key constraint checking and validation errors were possible when indexing long index values if the relative position of the corresponding index columns (foreign and primary) within their respective tables were not identical. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647701">647701</a></td>
<td>Simulated clients of the MobiLink Replay utility (mlreplay) could have timed out prematurely on Linux with the following message in the log: &quot;Unable to select socket status. The system-specific error code is 4 (hex 00000004)&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647802">647802</a></td>
<td>The server may have failed assertion 106104 &quot;field unexpected during compilation&quot; for queries containing correlated subselects in the WHERE clause. The WHERE subselect predicate must have been of the form &quot;T.X = (subselect referencing R.Y)&quot; where R.Y was an outer reference. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647830">647830</a></td>
<td>In the SQL Anywhere Monitor web application, there were inconsistencies in how lists of resources were sorted. In some cases resources were sorted by name in a case sensitive manner, other times resources were sorted by name in a case insensitive manner, and in one case the list of resources wasn&#39;t sorted at all. This has been fixed. Now, all lists of resources are sorted by name in a case insensitive manner.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647836">647836</a></td>
<td>Runtime errors (for example, conversion errors) during the execution of parallel plans may have caused the server to crash. This was most likely to have occurred when running spatial queries. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647851">647851</a></td>
<td>During HTTPS synchronizations, MobiLink clients could have crashed in MobiLink&#39;s RSA encryption library. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647854">647854</a></td>
<td>When running the fetchtst tool for testing the performance of queries (in samples-dir\SQLAnywhere\PerformanceFetch) on a SQL statement larger than 10K, fetchtst may have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR647872">647872</a></td>
<td>After installing the 12.0.0 2589 EBF for Windows CE, starting the server would have caused the console window to briefly flash, and then the server would have shut down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648045">648045</a></td>
<td>When the Interactive SQL utility (dbisql) was run on AIX systems, interrupting a long-running statement by pressing CTRL-C would have resulted in dbisql crashing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648158">648158</a></td>
<td>Attempting to use an index in a non-system dbspace with a database that was upgraded from 10.x, would have caused an assertion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648179">648179</a></td>
<td>The server could have entered a state where it would consume 100% of a single CPU (ie. one &#39;core&#39;) and never leave that state. The problem was caused by a race condition when more than one thread simultaneously attempted to reference a foreign key index for the very first time; however, the effects of the race condition may not be observed until the server attempts to shut down. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648191">648191</a></td>
<td>In the Text Configuration Object wizard, the minimum term length could have been set to a value that exceeded the maximum term length. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648204">648204</a></td>
<td>The changes made for Engineering case 644855 could have resulted in the Interactive SQL utility (and Sybase Central) crashing when displaying a result set if run on Windows Vista or Windows 7. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648209">648209</a></td>
<td>Shared memory connections using the IDLE connection parameter were being dropped after about thirty seconds. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648218">648218</a></td>
<td>An aggregate computation on the left side of join may have produced incorrect results when more than one group was generated as a result of a GROUP BY. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648493">648493</a></td>
<td>If Perseat licensing was used, the error &quot;Database server connection limit exceeded&quot; may have been reported when it should not have. In order for this have occurred, in addition to Perseat licensing, the -gm server option, or http connections to disabled databases, must have also been used. When this problem occurred, the first time the error was reported was correct behaviour, but after disconnecting connections, the error may have continued when it should not have. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648497">648497</a></td>
<td>When a consolidated was running on an Oracle server, the MobiLink server would not have advanced the next_last_download timestamp value (it is used for generating the download in the next synchronization) after it had run for certain time, even if a synchronization did contain a download request. After this occurred, the MobiLink server would have downloaded the same rows over and over again. This has now been fixed.</p>
<p>				The work around is to restart the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648499">648499</a></td>
<td>Incorrect results were possible when an aggregate function was used in an ORDER BY clause, and when the GROUP BY expressions were contained in the ORDER BY expressions. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648518">648518</a></td>
<td>In very rare cases, the server may have crashed if the cache was low on memory and a SELECT statement contained a very large IN list predicate. This has been fixed. The server will now return the error SQLSTATE_SYNTACTIC_LIMIT.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648631">648631</a></td>
<td>In rare cases, executing a batch statement could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648786">648786</a></td>
<td>If the primary server in a mirroring system lost quorum, just as an update caused log pages to be sent to the mirror, the primary server could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648790">648790</a></td>
<td>After applying the fix for Engineering case 635815, if an application executed a statement of the form:</p>
<p>				INSTALL JAVA [NEW | UPDATE] JAR &#39;jar-name&#39; FROM expression</p>
<p>				then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648799">648799</a></td>
<td>In some cases, the server could have returned an error (&quot;Parameter error&quot;) for a statement using OPENSTRING with a VALUE specifying a field reference or other complex expression.</p>
<p>				For example, the following sequence could generate this error:</p>
<p>				declare local temporary table T_strs( str long varchar ); </p>
<p>				insert into T_strs values (&#39;1,a1\n2,a2&#39;), (&#39;3,b1\n4,b2&#39;); </p>
<p>				select * </p>
<p>				from T_strs T cross apply openstring( value T.str ) with( a char(10) ) as O </p>
<p>				This has been fixed. Statements such as the above are now processed correctly without an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648839">648839</a></td>
<td>When a consolidated database was running on an Oracle server and the MobiLink server login ID did not have permission to access the Oracle gv$transaction table, data that was modified in the Oracle database (without commit) before the MobiLink server started the download could have been excluded in the download stream. Data would never have been downloaded to this remote database, if a timestamp based download was used in their synchronization logic. This has been corrected so that now if the login ID does not have permission to access the gv$transaction table, the MobiLink server will fail the synchronization, if the sync contains a download request, and the generate_next_last_download_timestamp script is not defined.</p>
<p>				For synchronization logic that does not use timestamp based download, users must grant Select permission to the MobiLink server login ID, or create a script for the generate_next_last_download_timestamp event. This script can be defined as an ignored script using the syntax, &#39;--{ml_ignore}&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648973">648973</a></td>
<td>In very rare situations, the server could have crashed while shutting down a connection-scoped external environment process. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR648987">648987</a></td>
<td>Entering a string longer than 2048 characters in any of several fields in dialogs of the Relay Server plugin would have caused Sybase Central to crash when the &#39;OK&#39; or &#39;Apply&#39; buttons on the dialog were clicked. The fields that caused this issue were:</p>
<p>				- ID and Description on the &quot;Create Backend Server Farm&quot; dialog</p>
<p>				- ID, Security Token and Description on the &quot;Create Backend Server&quot; dialog</p>
<p>				- Description on the &quot;Create Relay Server&quot; dialog</p>
<p>				These fields now limit input to 2048 characters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR649044">649044</a></td>
<td>When a backend server drops a connection without providing any HTTP response, IIS ver7 may inject &quot;200 OK&quot; as a response to the client. This may have caused MobiLink clients to be fooled to spin into an infinite loop by repeatedly getting 200OK at high frequency. This change will allow the Relay Server to detect this case and explicit send a &quot;400 Bad request with on backend server response&quot; response.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR649123">649123</a></td>
<td>If editing table data using the &quot;Results Panel&quot;, (or the &quot;Data&quot; tab in Sybase Central), failed because of a database error, the result would have been a crash (version 11.0.1 and earlier), or an incomplete error message (12.0.0 and later). This has been fixed so that the software does not crash, and the complete error message is displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_85.htm#CR649135">649135</a></td>
<td>MobiLink clients (except UltraLiteJ) could have failed to authenticate to third party servers when using digest HTTP authentication. In particular, it would have failed when the algorithm was &quot;MD5-Sess&quot; instead of &quot;MD5&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649138">649138</a></td>
<td>Editing a LONG VARCHAR value on the Data tab in Sybase Central, or in the Results panel of the Interactive SQL utility, would have caused a crash if the value was entered directly, as opposed to loading the value from a file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649298">649298</a></td>
<td>If the &quot;backend security&quot; option for a backend server farm was set to HTTP or HTTPS in the relay server plugin, the setting was not written to the relay server configuration file and so was lost when the file was saved. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649315">649315</a></td>
<td>When viewing a graph widget in either Japanese or Simplified Chinese, the time axis would have used an incorrect localization. This has been fixed. The Monitor now uses the numeric MM/DD format in these cases. Note that English, German and French locales are not affected by this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649437">649437</a></td>
<td>Version 9.0.x has an optimization for a very large number of WHERE predicates that are in Disjunctive Normal Form (DNF), which was not implemented starting with version 10.0.0.</p>
<p>				For example: </p>
<p>				WHERE</p>
<p>				(T.A1 = c11 and T.A2 = c12 and ... and T.Ak =c1k) OR</p>
<p>				.....</p>
<p>				(T.A1 = cN1 and T.A2 = cN2 and .... and T.Ak =cNk) </p>
<p>				AND</p>
<p>				(other predicates)</p>
<p>				The values for c11, c12, ..., cNk are constants, and N is large. The following sargable IN predicates were generated from the original predicates:</p>
<p>				T.A1 IN {c11,c21, ..., cN1} AND</p>
<p>				... </p>
<p>				T.Ak IN { c1k, ..., cNk}</p>
<p>				If there existed an index on table T with a prefix on any combination of the columns T.A1, ..., T.Ak, then a partial index scan using the sargable IN predicates could have been chosen in the best access plan. For example, if an index &#39;idx1&#39; existed on T &lt; A2, Ak &gt; then the partial index scan [ {c12, ..., cN2} JNL {c1k, ..., cNk} JNL T &lt;idx1&gt;] may have been used in the best access plan. The original predicate would still have been applied after the index scan as a postfilter.</p>
<p>				This optimization was not implemented starting with SA 10.0.0, as multiindex scans introduced in SA 11.0.0 and enhanced in SA 11.0.1 provided more general access methods using any combination of UNION and INTERSECTION of indexes. Multiindex scans performed better than the above optimization for small to medium size DNF predicates. However, multiindex scans can be inefficient when the number of predicates is large, for example, DNF predicates having 1,000 or more terms. This new feature addresses, in a very general way, these extreme cases and other cases when multiindex index scans use the same index. A multicolumn inmemory table is built with the exact combinations used in a DNF term, and this table is joined with the index scan. In the example above, if an index &#39;idx2&#39; on T&lt;A1, A2,..., Ak&gt; exists, the access method </p>
<p>				[{(c11,c12,...,c1k), (c21,c22,...,c2k),..., (cN1, cN2, ..., cNk)} JNL T&lt;idx2&gt;]</p>
<p>				will be built.</p>
<p>				Prior to this change the following multiindex scan was considered:</p>
<p>				T&lt;idx2: (c11,c12,...,c1k)&gt; UNION T&lt;idx2: (c21,c22,...,c2k)&gt; UNION ... UNION T&lt;idx2: (cN1,cN2,...,cNk)&gt;</p>
<p>				This multiindex scan could have been inefficient if N was greater than 1,000.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649468">649468</a></td>
<td>When a SQL error occurred that was not in the last SQL statement entered, an error dialog was displayed that had a &#39;Continue&#39; and a &#39;Stop&#39; button. Hitting the escape key had no effect. Thisn has been corrected so that hitting the escape key on this dialog now selects the &#39;Stop&#39; action.</p>
<p>				For example, open the Interactve SQL utility (dbisql), connect to database and enter the following:</p>
<p>				select * from foo;</p>
<p>				select &#39;hello&#39;</p>
<p>				Since there is no table foo, the first statement generates an error dialog with a &#39;Stop&#39; and &#39;Continue&#39; button. Hitting escape here is now the same as pressing the &#39;Stop&#39; button.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649475">649475</a></td>
<td>If a JDBC application connected via jConnect called the method DatabaseMetaData.getSchemas(), then the server would have failed the request with the error &quot;the &#39;FileVersion&#39; property is no longer supported&quot;. This problem has now been fixed and the proper list of userids is now returned to the application.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649492">649492</a></td>
<td>The Ping utility (dbping) can be used to specify an ODBC driver or driver manager library (-l option). If the Unix driver manager included with SQL Anywhere (libdbodmX.so) was used as the argument for the dbping -l option, dbping would have returned the error &#39;Failed爐o爈oad燨DBC燿river&#39;. This has been fixed so that dbping can be used with libdbodmX.so.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649528">649528</a></td>
<td>Execution of DROP TABLE and DROP INDEX statements would not have failed when the affected table was being referenced by another prepared statement. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649614">649614</a></td>
<td>Column constraints using the TREAT() function or IS OF predicate could have incorrectly allowed references to columns other than the column the constraint was created on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649620">649620</a></td>
<td>When attempting to transfer a database from a BlackBerry device via USB, the on-device utility would have reported an error transferring the database, but the log would have shown the last chunk was sent. This issue did not reproduce on simulators. In most cases, an examination of the database that was received on the desktop would have shown that the database was completely transferred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649644">649644</a></td>
<td>The ODBC driver could not properly handle the following SQL statement because it thought it was improperly formed:</p>
<p>				create table [ab&#39;cd] (i int )</p>
<p>				This has now been fixed so that the driver now supports table names with embedded quotes enclosed in brackets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649651">649651</a></td>
<td>If a query was executed that contained a function in the SELECT list, and the function was defined in the following very specific way:</p>
<p>				CREATE FUNCTION ...</p>
<p>				RETURNS ...</p>
<p>				BEGIN</p>
<p>				DECLARE variable ...</p>
<p>				SELECT ... INTO variable FROM ...</p>
<p>				RETURN variable</p>
<p>				END</p>
<p>				and the SELECT statement within the function referenced proxy tables, then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649655">649655</a></td>
<td>The result set returned by a query could have had an incorrect ordering when different indexes could have been used to implement WHERE conjuncts and ORDER BY clause This was corrected.</p>
<p>				An example would be</p>
<p>				SELECT * FROM table WHERE c1 = 10 ORDER BY c2</p>
<p>				where c1 and c2 each were the first column in different indexes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649763">649763</a></td>
<td>If an application connected with autostop=yes, and subsequently made a CLR external environment call, then the CLR external environment could have crashed when the application disconnected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649795">649795</a></td>
<td>Queries over indexes could have returned incorrect results if long index entries (greater than ~240 bytes) appeared in the index, with index corruption a possibility. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649797">649797</a></td>
<td>An index containing long values could have become corrupted if the table was subsequently altered to add columns, remove columns that did not appear in the index, or change the nullability of a column not appearing in the index. Also, for this to have happened, entries must have been deleted from the index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649868">649868</a></td>
<td>A brief network outage in a mirroring environment could have resulted in one of the servers reporting &quot;Alternate server name in use&quot;; or the former mirror server restarting, but not becoming the primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649928">649928</a></td>
<td>Sending large attachment files via SMTP using the system Procedure xp_sendmail() may have crashed the server. This problem was introduced by the changes made for Engineering case 643590, and have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR649978">649978</a></td>
<td>Under rare circumstances, some statements involving proxy tables could have missed expression checking. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650006">650006</a></td>
<td>On the &quot;Create Backend Server Farm&quot; dialog, the Apply button was not enabled when the selection in the &quot;Client security&quot; or &quot;Backend security&quot; comboboxes was changed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650010">650010</a></td>
<td>Some large integers were being improperly scanned. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650116">650116</a></td>
<td>The server may have crashed when a stored procedure that had a SQL statement with window functions was executed. The crash did not occur immediately when the procedure was executed, but some time later. This has been fixed.</p>
<p>				The workaround is to rewrite the SQL statement to not use window functions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650177">650177</a></td>
<td>Both the Interactive SQL utility and Sybase Central use the same syntax highlighting editor to display SQL. On Mac OSX systems only, hitting the tab key in the editor would have caused all the text in the editor to be selected and indented 1 tab stop. This has been fixed. Now, when the tab key is pressed, if any text in the editor is selected then that text is indented 1 tab, otherwise a tab character is inserted at the current insertion point.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650337">650337</a></td>
<td>Queries with an outer join having the same base table as the preserved and null-supplying sides could have returned incorrect result sets. Conditions where this could happen:</p>
<p>				1. the outer join is of the form : T as T1 LEFT OUTER JOIN T as T2 ON(p)</p>
<p>				2. the ON predicate p has only equijoins, and at least two equijoins</p>
<p>				3. p is of the form : T1.c1 = T2.c1 and T1.c3 = T2.c2</p>
<p>				4. there exists an unique index on T &lt; c1,c2&gt;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650345">650345</a></td>
<td>The &quot;Connect&quot; window allows for starting and connecting to a database on a different machine. When that action was selected, a dialog is presented with a number of fields to fill in (Host, Port, Database File Name, etc.) A checkbox to turn off Autostart was missing. It has been added.</p>
<p>				This affected all programs that use the &quot;Connect&quot; window to connect to a SQL Anywhere database -- the Interactive SQL utility, Sybase Central, and the Console utility. A workaround is to add &quot;astop=no&quot; to the &quot;(other)&quot; field on the &quot;Advanced Options&quot; tab.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650352">650352</a></td>
<td>Procedure profiling showed statements that executed in under 1 millisecond as using zero time, even when those statements were executed many times. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650489">650489</a></td>
<td>If an application made a remote procedure call that made changes to a remote database and then subsequently called ROLLBACK, the changes would not have been rolled back on the remote database that the remote procedure call affected, but would have been rolled back locally and on the other remote databases that the local connection modified. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650502">650502</a></td>
<td>When an ODBC application called SQLDriverConnect to connect, and specified the SQL_DRIVER_PROMPT option so that the connection dialog was displayed, the connection string returned did not contain the DSN parameter. All other parameters were correctly returned, but DSN was stripped out. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650626">650626</a></td>
<td>The &quot;Check for updates&quot; menu items (start menu and application menus) would have always reported that a new version of the Documentation was available, even when the latest version was installed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650650">650650</a></td>
<td>When the action setting on the Logon page of the ODBC administrator was &quot;Start and connect to another computer&quot;, the Autostop checkbox was missing. This has been fixed.</p>
<p>				Note, Engineering case 650345 is a similar issue in the Administration tools connection dialog.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650663">650663</a></td>
<td>Executing a query that involved the use of the Java external environment, and that required the server to repeatedly call the same Java method over and over again, may have resulted in the performance of the query might being very slow. The server performance in this specific case has now been improved considerably. Note that this performance improvement may not help queries where multiple Java methods are called at the same time.</p>
<p>				For example, the query:</p>
<p>				SELECT SUM( java_p(...) ) FROM ...</p>
<p>				involves repeatedly calling java_p and the performance of such queries will be improved with this fix. In addition, the query:</p>
<p>				SELECT SUM( java_p(...) ), AVG( java_p(...) ) FROM ...</p>
<p>				also involves repeatedly calling java_p, and again the performance of such queries will be improved with this fix. But, the query:</p>
<p>				SELECT SUM(java_p(...)), AVG(java_p2(...)) FROM ...</p>
<p>				which involves repeatedly calling both java_p and java_p2 will not benefit from this performance improvement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650690">650690</a></td>
<td>The server would have returned assertion failed 100905 &quot;Articles on the table use do not match those on the table definition&quot;, if a table had publications and a simple INSERT with multiple row value constructors was executed. For example: insert into tab1 values (1,&#39;a&#39;),(2,&#39;b&#39;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650719">650719</a></td>
<td>After a failed download, an attempt to restart the download may have failed and reported a &quot;Protocol Error&quot; or a read failure. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650740">650740</a></td>
<td>Execution of a DROP DATABASE statement would have failed if the automatically generated database alias name was an invalid identifier. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650829">650829</a></td>
<td>The Validate utility, or the VALIDATE utility, could have reported spurious orphaned blobs if there were indexes containing long values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650856">650856</a></td>
<td>Synchronizations using HTTP-based communication protocols (including HTTP, HTTPS and other encrypted HTTP protocols) could have failed intermittently. When synchronizations failed, they would do so after the download had been applied and committed, and would have reported an error message like: &quot;Data read failed. Requested 2 bytes but got 0 bytes.&quot; When this occurred the MobiLink server would have reported the error: &quot;Connection was dropped due to lack of network activity&quot;. These failures were only likely to occur when applying the download to the remote database took longer than the stream timeout interval, which is 4 minutes by default. This problem has now been resolved</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR650870">650870</a></td>
<td>The MobiLink Replay utility (mlreplay) could have crashed when using a replay DLL/shared object if the recorded protocol being replayed was not the same as the recorded protocol used to generate the code for the replay DLL/shared object. This has been fixed so that code can be generated once and then replayed with many different recorded protocol files so long as the schema is the same.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651015">651015</a></td>
<td>When executing an &quot;INSTALL JAVA [NEW | UPDATE] JAR&quot; statement with a compressed jar file, there was a very small chance that some of the classes or resources within the jar would have been installed incorrectly. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651029">651029</a></td>
<td>On Linux builds where the kernel was compiled to support something other than 1024 processors, the database server could have failed to detect the correct processor geometry and could have crashed. This problem has been fixed. Note that recent Linux kernels have been built with support for up to 4096 processors.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651040">651040</a></td>
<td>When executing VALIDATE TABLE and VALIDATE INDEX statements, thay may not have used as much CPU parallelism as they could have. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651047">651047</a></td>
<td>In some cases, execution of parallel plans on machines with large number of cores</p>
<p>				could be poor when dynamic adjustment of the multiprogramming level is enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651104">651104</a></td>
<td>When a table contained NOT NULL columns, particularly with interspersed primary key and LONG (clob/blob) columns, rows may have become corrupted. This may have resulted in rows not being uploaded properly, values read as the wrong column, or ArrayIndexOutOfBounds error, when reading LONG values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651169">651169</a></td>
<td>If a database containing a table with a uniqueidentifier column was unloaded using the Unload utility (dbunload) with one of the external unload options (-xi or -xx), and the resulting reload.sql script was executed using the Interactive SQL utility, a conversion error would have been reported. This has been fixed. A workaround is to avoid using -xx or -xi when rebuilding the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651294">651294</a></td>
<td>When starting a 32-bit server with a large initial number of request tasks (-gn option), the server could have failed to start by reporting an error, crashing or quietly exiting. This problem has been fixed by reducing the maximum cache size to accommodate the address space needed for the stacks of the request tasks.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651323">651323</a></td>
<td>When the distance between two ST_Points exceeded the spatial reference system&#39;s tolerance by at least a factor of 1, but less than a factor of sqrt(2), the spatial relations ST_Equals and ST_Intersects could have incorrectly returned TRUE. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651344">651344</a></td>
<td>When running the server in &#39;in-memory&#39; / &#39;no-writes&#39; mode (-im nw), the CREATE DBSPACE statement would have created a file in the filesystem, rather than just emulating one inside the database server. Other than the creation of the physical file, all writes to it were emulated in memory. This has been corrected so that the server no longer creates the dbspace file on disk.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651363">651363</a></td>
<td>When a client interface could not load the language resource DLL on Windows, a message box was displayed showing the error message. This behaviour has been changed so that the message box is no longer displayed, since it could interfere with unattended systems. Instead, each client library will relay the information to its caller via appropriate methods, and dblib will set the error in the SQLCA to SQLSTATE_FAILED_TO_CREATE_STREAMS_ENV.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651373">651373</a></td>
<td>Using the UltraLiteJ Database Transfer Utility to transfer a database from the simulator or a device to the desktop through HTTP, would have failed. Also, the device application would not have properly canceled a transfer. This has been fixed.</p>
<p>				Note, both desktop and device side applications must be updated simultaneously.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651375">651375</a></td>
<td>With a Microsoft SQL Server consolidated, MobiLink client synchronizations may have failed after making schema changes. The MobiLink synchronization log would have shown SQL Server error #16954. When using SQL Server tracing, an additional error #156 (syntax error) could have been seen. The cause appears to be a bug in SQL Server 2005, but has not been seen on SQL Server 2008. This has now been fixed.</p>
<p>				To patch an existing MobiLink system setup:</p>
<p>				1. Shut down the MobiLink servers</p>
<p>				2. execute the SQL in %SQLANY12%\MobiLink\Setup\syncmss_ebf.sql</p>
<p>				The patch only updates stored procedures, no data will be disturbed by this script. MobiLink systems setup after installing this fix do not need the patch to be applied.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651383">651383</a></td>
<td>As of the changes for Engineering case 633120, a SQL query producing multiple result sets was not handled correctly by the SQL Anywhere OLE DB provider. This problem has now been corrected. The cursor is no longer closed after the first result set is processed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651491">651491</a></td>
<td>Typing Ctrl-Z in an unmodified editor would have marked it as modified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651508">651508</a></td>
<td>If an invalid combination of TCP protocol options was specified (eg. DoBroadcast=DIRECT but no HOST=) in a connection string, the client application could have crashed. This would only have happened on Unix systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651510">651510</a></td>
<td>Execution of the utility SetupVSPackage, would have shown an error: &quot;Object reference not set to an instance of an object.&quot; if machine.config file did not have the entry &lt;DbProviderFactories&gt;. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651520">651520</a></td>
<td>Displaying the results of an Index Consultant run of a large workload could have required an excessive amount of memory, causing Sybase Central to crash if there was not enough physical memory available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651656">651656</a></td>
<td>In some cases, setting a SQL Remote option could cause a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651658">651658</a></td>
<td>On Windows systems, SQL Anywhere provides a version 1 (registry) performance provider. Windows should generate WMI classes automatically after the counter dll is registered, but these classes were generated only after instances of these objects (i.e. server, database and connection) existed in a process running in session 0 (i.e. as a service in Vista and up). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651692">651692</a></td>
<td>When a plug-in failed to load on startup, other plug-ins may then not work correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651694">651694</a></td>
<td>If the connections between servers in a mirroring system used encryption, the primary server could have hung when performing an operation which required exclusive access to the database (e.g. a checkpoint) if other update activity was also occurring. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651707">651707</a></td>
<td>The iAnywhere.mib file that shipped with the SNMP agent was not SMI compliant. This has been fixed.</p>
<p>				Note that this change did not affect the software itself.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651723">651723</a></td>
<td>Opening a column&#39;s Property sheet would have caused the error: &quot;Support for spatial is not available for this CPU&quot;, when the server was run on a system with on a Pentium III processor. The same error would also have occurred in the Function and Domain wizards, and the Spatial Reference Systems folder if it was selected in the tree. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651729">651729</a></td>
<td>In some rare cases, the server may have hung if diagnostic tracing had been enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651846">651846</a></td>
<td>On Windows systems, the performance monitor might not have displayed counter values provided by the server. Typically this would have happened when a shared memory client that was attached to the server terminated abnormally. Counter values should not display for subsequent servers until all processes holding handles to the dead server (e.g. shared memory clients) are terminated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR651880">651880</a></td>
<td>The reply-to address for messages originating from a Weblogic 10.3 JMS server were formatted in such a way that they could not have been resolved by the JMS connector. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652034">652034</a></td>
<td>When analyzing an Application Profiling or Diagnostic trace, the Application Profiling wizard may have recommended changing the -gn setting, even though this no longer applies to version 12 servers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652037">652037</a></td>
<td>The Unload utility (dbunload) could have crashed when attempting to unload a database into an existing database. A crash would have occurred when a data-only unload (-d) was being done, and a user or table in the source database did not exist in the destination database. If the unload was done through the Sybase Central Unload wizard, the wizard would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652075">652075</a></td>
<td>The changes made for Engineering case 644855, to correct a crashing problem when the Windows desktop appearance was changed, caused fonts to not render properly in the result set table. Some characters could have been displayed as boxes in the column headers for result sets. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652107">652107</a></td>
<td>If a foreign key had both ON UPDATE and ON DELETE actions, renaming a column referenced by the foreign key could have caused one of the system triggers to be deleted and the other to be left unchanged. A trigger for an ON UPDATE action could have been converted to an ON DELETE action. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652131">652131</a></td>
<td>Sybase Central could have failed to find the results of a search when editing an object in the right pane, if &quot;Cancel&quot; was clicked when asked to save changes before showing the search result. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652188">652188</a></td>
<td>When a table was selected in the tree and the Indexes tab was shown in the right pane, there was no File -&gt; New -&gt; Index... menu item. As such, it was only possible to start the Index wizard from the toolbar button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652201">652201</a></td>
<td>The HOST connection parameter is usually of the form host:port, but can also contain a comma separated list of host and port pairs. The ODBC driver usually splits the HOST connection parameter and displays it in the Administrator as two text fields labeled host and port. When it was a list of values, it was incorrectly splitting it at the first colon. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652202">652202</a></td>
<td>When editing an &quot;Execute SQL&quot; command in a remote task, the caret could have been displayed in the wrong position if the text contained tab characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652211">652211</a></td>
<td>In dialogs, components are often labelled with text that has a mnemonic, shown with an underlined letter. It is permissible for two components to have the same mnemonic. In that case, pressing ALT and the mnemonic should move the focus to the next component which has the given mnemonic. This moving of the focus was broken if the component which currently had the focus was an editable combobox. This problem was surfacing in the Connect dialog used by the admin tools when starting a database on another computer. The &quot;i&quot; mnemonic is shared by the &quot;Database file&quot; field and the &quot;Find&quot; button. When the &quot;Database file&quot; field had focus, pressing ALT+I did not move focus to the &quot;Find&quot; button. This has been fixed so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652220">652220</a></td>
<td>The server could have hung in some very rare circumstances when there was considerable temporary file growth. This has been fixed.</p>
<p>				A workaround is to pre-grow the temporary file using the ALTER DBSPACE statement, or by creating a DiskSpace event to periodically grow the temporary file.</p>
<p>				The same issue was fixed for earlier version by Engineering case 580773.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652221">652221</a></td>
<td>In some cases, calling a web services stored procedure may have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652243">652243</a></td>
<td>MobiLink clients using persistent HTTP 1.0 connections may fail occasionally when using the Relay Server. The failure was isolated to synchronizations that ran into a rare timing problem. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652244">652244</a></td>
<td>An internal unload/reload (i.e. dbunload -ii) that encountered a SQL error could have hung or caused a subsequent unload/reload on the same server to hang. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652247">652247</a></td>
<td>The title line of the usage screen for the MobiLink Agent stop utility (mlastop) may have contained an untranslated character. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652248">652248</a></td>
<td>Clicking &#39;Apply&#39; on the Auditing tab filter pane, could have thrown an exception causing Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652249">652249</a></td>
<td>The title line of the usage screen for the QAnywhere Stop utility (qastop) may have contained an untranslated character. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652253">652253</a></td>
<td>In some rare cases, when run on HP, AIX, and Solaris systems the server may have crashed on shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652263">652263</a></td>
<td>The usage text for the Relay Server Outbound Enabler didn&#39;t describe what were the valid options for the -cr option. This has been corrected so that the values are now listed for the tcp options, server certificate options, and client certificate options.</p>
<p>				In addition, http authentication options, proxy options, and proxy authentication options, have been added in version 12.0.1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652382">652382</a></td>
<td>The Relay Server did not work with a Relay Server Outbound Enabler (RSOE) that was behind an HTTP 1.0 proxy. The Relay Server has now been fixed to adapt to HTTP version downgrades done by an HTTP 1.0 proxy, and is needed when working with a 12.0.1 RSOE in conjunction with a HTTP 1.0 proxy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652411">652411</a></td>
<td>If an error occurred accessing the tape drive when beginning a tape backup, the BACKUP statement may have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652543">652543</a></td>
<td>The server may have crashed during inserts into a view, if the view column was not a base table column. This has been fixed. Now the correct error SQLSTATE_NON_UPDATEABLE_VIEW is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652547">652547</a></td>
<td>Altering the schedule for an event to remove a days-of-month specification did not set SYSSCHEDULE.days_of_month to null. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652577">652577</a></td>
<td>Sybase Central could have crashed while the property sheet for a client message store was open, if adding a new property was started, but then the action was cancelled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652587">652587</a></td>
<td>When running a database without a transaction log, performance could have been significantly slower than in previous versions. This problem has been corrected. See Engineering case 608904 for a similar issue..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652592">652592</a></td>
<td>Attempting to connect to a read-only scale-out database with a non-ASCII database name using the NODETYPE connection parameter could have incorrectly failed with a &quot;Specified database not found&quot; error. The database name was being sent back in either OS-charset or DB-charset, but the client needed it to be in client-charset. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652609">652609</a></td>
<td>When using Oracle as a back-end database, synchronizations may have failed with the error ORA-08207. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652735">652735</a></td>
<td>When a Relay Server shuts down, it notifies connected Relay Server Outbound Enablers (RSOE) to perform an internal shutdown before the RSOE enters recovery mode. The RSOE also notifies the Relay Server via the down channel when the the RSOE shutdown is completed. The HTTP subsystem used on IIS7.5 prevented a Relay Server from receiving the shutdown notification reliably and in turn caused an unnecessary hard shutdown of the Relay Server after a 100 sec delay. This has been fixed so that the Relay Server now handles this case properly as a graceful soft shutdown without a delay.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652739">652739</a></td>
<td>If an application prepared a batch insert using the SQL Anywhere JDBC driver, and the last row in the batch involved a call to setNull() and the datatype passed to setNull() was different than the previous set of setX calls for that column, then there was a chance the JDBC driver would have inserted incorrect data. This problem has now been fixed.</p>
<p>				For example, the following set of calls would have inserted incorrect data into the table test:</p>
<p>				PreparedStatement pstmt = con.prepareStatement( &quot;insert into test values(?,?)&quot; );</p>
<p>				pstmt.setInt(1, 1001);</p>
<p>				pstmt.setString(2, &quot;this is row #1&quot; );</p>
<p>				pstmt.addBatch();</p>
<p>				pstmt.setInt(1, 2001);</p>
<p>				pstmt.setString(2, &quot;this is row #2&quot; );</p>
<p>				pstmt.addBatch();</p>
<p>				pstmt.setInt(1, 3001);</p>
<p>				pstmt.setString(2, &quot;this is row #3&quot; );</p>
<p>				pstmt.addBatch();</p>
<p>				// note the fact that we are switching datatypes below</p>
<p>				pstmt.setNull(1, java.sql.Types.SMALLINT);</p>
<p>				pstmt.setString(2, &quot;this is row #4&quot; );</p>
<p>				pstmt.addBatch();</p>
<p>				pstmt.executeBatch();</p>
<p>				Again, note that this problem would not have occurred if instead of using java.sql.Types.SMALLINT, the application instead used java.sql.Types.INTEGER. In addition, if the call to setNull() was not in the last row of the batch, then again this problem would not have occurred, even if the application switched datatypes for the setNull() call.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652752">652752</a></td>
<td>When starting dbisqlc, or an ODBC application with a connection string containing LINKS=TCPIP, if there is an error connecting the connection dialog is displayed. It was incorrectly defaulting to &quot;connect to a running database on another computer&quot;, losing the LINKS=TCPIP setting. If TCP parameters were specified, such as LINKS=TCPIP(PORT=2638), then it worked correctly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652756">652756</a></td>
<td>When validating a table that contained spatial data on 32-bit x86 systems where the processor did not support the SSE2 instruction set (the minimum required for SA spatial features), the database server would have reported a non-fatal assertion error </p>
<p>				113300 or 113302 &quot;failed to build cursor to validate&quot;. This problem has been fixed and the underlying error is now reported: SQL error (-1515) -- Support for spatial is not available for this CPU.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652759">652759</a></td>
<td>If a table was included in a MobiLink publication and one or more options were defined for that publication, but there were no synchronization subscriptions defined, the table could not be ALTERed to, for example, add a new column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652791">652791</a></td>
<td>If a statement for a directory access table failed with the error SQLSTATE_OMNI_REMOTE_ERROR, and this statement was the last statement of the transaction then all subsequent remote server statements of this connection would have failed with the same error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652911">652911</a></td>
<td>If an INSTALL JAVA UPDATE statement was executed to update an existing java class, the server would have incorrectly added a new system object id rather than reuse the already assigned object id. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652920">652920</a></td>
<td>A NullPointException was possible when executing an UPDATE statement when nothing was updated. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652949">652949</a></td>
<td>The trigger operation condition &#39;UPDATE( {column-name} )&#39; did not return TRUE if the column value had been changed by a previously running BEFORE UPDATE row-level trigger only. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR652975">652975</a></td>
<td>A NullPointerException was possible with large temporary tables and row limitation. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_86.htm#CR653052">653052</a></td>
<td>Using the system procedure xp_sendmail with an attachment larger than about 55 kB may have resulted in the attachment being corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653055">653055</a></td>
<td>Any parameters entered on the MobiLink Monitor&#39;s command line with a Multibyte Character Set would have been mangled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653058">653058</a></td>
<td>When creating a rule with a &quot;Custom&quot; schedule type, the schedule that was saved could have been incorrect if &quot;Run rule every&quot; was turned off in the &quot;Schedule Editor&quot; window. The rule was saved such that it was run every 10 minutes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653070">653070</a></td>
<td>A COMMIT could have failed after a failed synchronization involving clobs or blobs. The failure could have left the blobs and/or clobs present in the transaction log in a bad state. This has been corrected. A work-around is to disconnect and then to reconnect to the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653122">653122</a></td>
<td>The ADO.NET provider would have returned an empty string for an error message in some scenarios. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653125">653125</a></td>
<td>During the loading of data using &quot;ulconv load&quot;, columns whose values were NULL may have been set to default values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653158">653158</a></td>
<td>The methods ULConnection.CountUploadRows, ULConnection.GetLastDownloadTime, and ULConnection.ResetLastDownloadTime would have failed on Windows desktop when provided named publications instead of ULConnection.SYNC_ALL_DB. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653183">653183</a></td>
<td>The NUM_CONNECTED_SYNCS ppv metric and the &quot;Synchronizations&quot;, &quot;Started Synchronization Rate&quot;, &quot;Synchronizations Started&quot;, and &quot;Unknown Connected Clients&quot; metrics incorrectly considered syncs that had failed during the download and were waiting to be restarted as being connected and so would show an incorrect value in the log or in the SA Monitor. Also, as a consequence, the server would prompt for confirmation to kill active syncs during hard shutdown even if all the syncs in the system are waiting to be restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653184">653184</a></td>
<td>It was possible for the server to crash while opening a statement that used a parallel execution plan if specific types of errors were detected while building the plan. One particular form of the error causing this problem could arise when using a spatial predicate on systems with Pentium III processors. Instead of reporting an error, it was possible under specific circumstances for the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653185">653185</a></td>
<td>Specific spatial operations could have caused a server crash when running on systems with Pentium III processors. This has been fixed. These operations now correctly return an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653245">653245</a></td>
<td>The value for the column &quot;columns&quot; for the system view SYS.SYSFOREIGNKEYS is generated using a LIST() function, but the function did not include an ORDER BY and so the result returned could have varied. This has been fixed by adding an ORDER BY clause.</p>
<p>				Note, the system view must be recreated by upgrading or rebuilding the database for the new view definition to be used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653316">653316</a></td>
<td>When deleting rows from an UltraLite database, the Interactive SQL utility would have incorrectly reported the number of rows affected by a DELETE. The message &quot;1 row(s) deleted&quot; would have been shown in the Message pane, regardless of how many rows were deleted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653467">653467</a></td>
<td>If an UltraLite database had a table with a LONG VARCHAR column, and that column contained XML data, attempting to view that data in the Interactive SQL utility&#39;s cell editor (in the XML Outline tab) could have failed with the error: &quot;An invalid XML character (Unicode: 0x0) was found in the element content of the document&quot;. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653470">653470</a></td>
<td>MobiLink clients (except UltraLiteJ) could have failed to authenticate to third party servers or proxies when using digest HTTP authentication. In particular, if the third party server&#39;s or proxy&#39;s response contained nextnonce attribute in the Authentication-Info header. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653540">653540</a></td>
<td>The Relay Server State Manager (rshost) could have crashed if initialization failed. Specifically, if creating the shared memory failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653588">653588</a></td>
<td>If tracing was suddenly detached (because, for example, the server receiving the tracing data was shut down) at the same time as a deadlock occurred, a deadlock victim may have failed to write a ROLLBACK to the transaction log. This may have lead to an incorrect partial commit of a deadlocked transaction. This has been fixed. This problem is expected to be very rare.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653590">653590</a></td>
<td>Diagnostic tracing, or application profiling to LOCAL DATABASE could not be used when the server was started with the command line option -sb 0 (disable broadcast listener). This has been corrected. A workaround is to manually supply a connection string (ATTACH TRACING TO &lt;connstr&gt;) with the DoBroadcast=NO option, rather than using the LOCAL DATABASE clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653591">653591</a></td>
<td>Attempting to attach tracing to an older version database file could have caused the server to crash. This has been fixed so that attempting to attach tracing to an older version file now returns the error &quot;ATTACH TRACING could not connect to the tracing database&quot; (-1097).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653606">653606</a></td>
<td>Entering an invalid TIME value when editing a result set could have caused then Interactive SQL utility to report an internal error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653706">653706</a></td>
<td>The &#39;TOP limit START AT startat&#39; and &#39;LIMIT limit OFFSET offset&#39; constructs now support 1 - simple arithmetic expressions for &#39;limit&#39;, &#39;offset&#39;, &#39;startat&#39; arguments;</p>
<p>				2 - TOP supports the &#39;ALL&#39; limit indicating that all rows are to be returned after the specified &#39;startat&#39;;</p>
<p>				3 - the maximum value for (limit + offset) is now 9223372036854775807 = 2^64-1</p>
<p>				The new grammar is as follows:</p>
<p>				TOP range_expression range_offset </p>
<p>				TOP T_ALL range_offset </p>
<p>				LIMIT range_expression [OFFSET range_expression]</p>
<p>				range_expression:</p>
<p>				integer_or_var | &#39;(&#39; simple_expression &#39;)&#39; </p>
<p>				simple_expression:</p>
<p>				integer_or_var | simple_expression &#39;+&#39; simple_expression </p>
<p>				| simple_expression &#39;-&#39; simple_expression </p>
<p>				| simple_expression &#39;*&#39; simple_expression </p>
<p>				| &#39;(&#39; simple_expression &#39;)&#39; </p>
<p>				range_offset: /* empty */ </p>
<p>				| T_START T_AT range_expression</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653743">653743</a></td>
<td>The Import wizard would have reported an internal error when importing a shapefile if no spatial reference system was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653884">653884</a></td>
<td>The Mobilink Server would have logged the error &quot;Light weight poll request failed&quot; after every poll attempt from an Ultralite client (through the use of the ML_GET_SERVER_NOTIFICATION function), even if the polls were actually successful. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653929">653929</a></td>
<td>The Interactive SQL utility ignoring the setting of the &quot;Automatically refetch results&quot; option and assumed it was on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR653930">653930</a></td>
<td>The Console utility could have stopped refreshing database and/or server properties after changing the set of properties which were displayed, even after it was restarted. The problem was sensitive to the speed with which properties were selected or unselected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654078">654078</a></td>
<td>While running a VALIDATE DATABASE statement, the server could have erroneously reported assertion failures indicating checksum failures or other errors that would indicate database corruption. The problem could only have occurred if the database file was being actively extended at the same time as the validation was being performed, and even in those circumstances the problem would have occurred only very rarely. The database was not actually corrupt and would have been valid when restarted. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654244">654244</a></td>
<td>On some Chinese Windows systems, the fields for entering the MAC address for back end servers was too narrow to see both digits of each byte of the address. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654249">654249</a></td>
<td>The External Environments folder was erroneously including an entry for dbmlsync. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654253">654253</a></td>
<td>In versions of the Interactive SQL utility 10.0.0 and later, using an ISQL parameter for the value of an option in a SET OPTION statement did not work because the parameter was not substituted correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654259">654259</a></td>
<td>The changes for Engineering case 650489 may have caused execution remote procedure calls to an ASE remote server to fail with a strange &quot;unchained transaction mode&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654282">654282</a></td>
<td>On the Format page of the the Options-&gt;Editor dialog, when selecting &quot;Custom&quot; from the Foreground or Background drop downs, the custom color selection dialog would have appeared with a color menu over top of it. This has been fixed so that the menu now closes before the color selection dialog opens.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654284">654284</a></td>
<td>The server could have crashed if the STOP SERVER or STOP ENGINE statement was called from an event or HTTP connection. This has been fixed. </p>
<p>				Note that the &#39;STOP SERVER&#39; syntax is new to version 12 (older servers support &#39;STOP ENGINE&#39;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654294">654294</a></td>
<td>When canceling a query involving spatial operations, there was a small probability the server could have crashed, or failed to release resources. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654425">654425</a></td>
<td>In the Options window, the components for editing the quitting time were enabled even if the &quot;Quitting time&quot; checkbox was not checked. Now, the components are disabled when the checkbox is not checked.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654434">654434</a></td>
<td>When sorting the plug-in names in the Plug-in dialog, an exception would have been thrown if a plug-in was first reloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654446">654446</a></td>
<td>If there were multiple applications running simultaneously, the ADO.NET provider could have failed to load dbdata.dll. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654635">654635</a></td>
<td>If HTMLHelp documentation for SQL Anywhere was installed, it was possible for the Index Consultant to open DCX help under some circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654636">654636</a></td>
<td>Opening a .saplan file in the &quot;Plan Viewer&quot; window and clicking the &quot;Print&quot; button did not do anything. This has been corrected so that it prints the plan. There was no problem printing plans which were generated by clicking the &quot;Get Plan&quot; button.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654648">654648</a></td>
<td>The substr() function was permitting LONG VARCHAR values to be used as the first argument to the function. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654684">654684</a></td>
<td>References to derived table columns may have been incorrect when temporary tables were present and the derived table was used to load the temporary table. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654759">654759</a></td>
<td>Changes to the members list were not saved when the OK button in the property sheet for a destination alias. Also, the Apply button was not enabled after a member was added, removed, or edited. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654790">654790</a></td>
<td>In very rare cases, the server may have crashed with a floating point exception when slightly loaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654801">654801</a></td>
<td>The SQL Anywhere Optimizer may have incorrectly pruned, without costing, optimal plans during query optimization. This has been fixed. This incorrect pruning would most probably have affected the final execution plans for complex, but inexpensive (i.e., the optimal plan has a small runtime) queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654938">654938</a></td>
<td>In rare cases, a corrupt TCP packet could have caused the server to crash. The server now validates the packet header before do anything with the packet. If it is corrupt, the packet is dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654952">654952</a></td>
<td>Under rare circumstances, the server could have hung when SUBSCRIBE BY values were being changed for an article while large numbers of connections were updating tables in the database. This has now been fixed. A workaround is to avoid changing SUBSCRIBE BY values simultaneously with connections performing INSERT, UPDATE or DELETE operations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR654981">654981</a></td>
<td>The Console utility could have stopped refreshing connection properties after changing the set of properties which were displayed, even after restarting DBConsole. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655157">655157</a></td>
<td>If there were any missing messages, SQL Remote would have asked for a resend after it had reached its receive polls given by the -rp option. This resend logic could have caused the publisher to re-scan the transaction log(s) and slow down replicating new transactions, especially on heavy load databases. This has been changed so that when a message in a multi-part message series (SQL Remote will generate multiple messages for a single transaction to form a multi-part message when the transaction is too big to fit in a single message) is missing, SQL Remote will not immediately ask for a resend, if the received messages are not followed by any messages that contain a commit or any messages that belong to another multi-part message series. This new logic will help users who</p>
<p>				need to shut down or kill SQL Remote when it is sending multi-part messages to its subscribers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655351">655351</a></td>
<td>Temporary files created by SQL Remote and Log Translation utility may not have been deleted. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655358">655358</a></td>
<td>During the loading of data using the UltraLite Load XML to Database utility (ulload), columns whose values were NULL may have been set to default values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655524">655524</a></td>
<td>A MERGE statement on a table that had a column with DEFAULT AUTOINCREMENT would have increased the autoincrement value for every matching row independently of whether the value had already been used for an INSERT or not. This behaviour has been improved so that the server only generates a new autoincrement value if the matching branch is an INSERT and the value will be used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655533">655533</a></td>
<td>Under rare circumstances, inserting the result from the Round Earth linestring() function, or using the linestring() function in a query, could have crashed the server, if the line string crossed the equator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655544">655544</a></td>
<td>The &#39;Next&#39; button and the &#39;Create&#39; button were disabled in the Add Resource page when an invalid time was entered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655570">655570</a></td>
<td>The tab order on the Edit Configuration:Maintenance tab was not correct.. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655573">655573</a></td>
<td>The integrated Outbound Enabler could have crashed Mobilink, if in a Relay Server farm environment, one of the Relay Servers in the farm was down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655574">655574</a></td>
<td>The integrated Outbound Enabler library was not being unloaded correctly when the Mobilink server shutdown. The library eventually unloaded when the MobiLink server executable exited and no bad side effects where observed as a result, but this condition is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655599">655599</a></td>
<td>It was not possible to drag and drop the second operators in the Add Resource page. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655607">655607</a></td>
<td>The text in the Favorites sidebar could have disappeared if the mouse was moved over it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655749">655749</a></td>
<td>Execution of an INSERT ... ON EXISTING SKIP statement did not report the correct number of inserted and updated rows using @@rowcount and sqlcount. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655780">655780</a></td>
<td>The method MLResultSet.getBigDecimal(L/java/lang/String;) unnecessarily threw a &#39;method not supported&#39; exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655810">655810</a></td>
<td>The MobiLink client was not freeing some memory when it shrank its cache. This would have caused its memory usage to increase over time. This memory leak has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655880">655880</a></td>
<td>Second and subsequent &#39;%&#39; characters were not being handled properly in LIKE clauses. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655939">655939</a></td>
<td>The MobiLink client may have crashed while attempting to grow its dynamic cache if a memory allocation failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655945">655945</a></td>
<td>On the database Fragmentation tab, the shortcuts for Zoom In (Ctrl++) and Zoom Out (Ctrl+-) did not work with the numeric keypad. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655953">655953</a></td>
<td>Several memory leaks have been fixed in the MobiLink client. These leaks would primarily affect applications using the dbmlsync API.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655955">655955</a></td>
<td>Several memory leaks have been fixed in the MobiLink Client.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655956">655956</a></td>
<td>If a server was handling a large number of requests, and a large number of those requests made external environment calls that resulted in server side calls coming back into the server and those server side calls were similar in nature, then there was a chance that the server would have crashed when one or more of the connections making external environment calls closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655969">655969</a></td>
<td>Accessing values of LONG BINARY STORE AS FILE on BlackBerry devices would have failed if the filename started with &quot;file://&quot;, but was not all lowercase. This has been fixed. The string &quot;file://&quot; is now case insensitive as it should be.</p>
<p>				Note that the root value is case sensitive (i.e. &quot;FiLe:///SDCard/me.blob&quot; is ok but &quot;FiLe:///sdcard/me.blob&quot; is not).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655972">655972</a></td>
<td>The fix for Engineering case 636018 missed a case, which has now been corrected.</p>
<p>				Description of case 636018:</p>
<p>				Queries involving indexes containing long values could have returned incorrect results. Index corruption was possible, but not likely..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655981">655981</a></td>
<td>Values for the ApproximateCPUTime property is never expected to decrease between calls, as it represents an estimate of accumulated CPU time for a connection. However, for connections that had accumulated approximately 1000 seconds of CPU time, the counter could have periodically receded by approximately 400 seconds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655987">655987</a></td>
<td>The &quot;Apply&quot; button on the property sheet for a Remote Task was not enabled when various changes were made. Now, the button is enabled correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR655989">655989</a></td>
<td>Sybase Central would have crashed whenu attempting to open a Relay Server configuration file which was zero-length, or that contained only whitespace. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656087">656087</a></td>
<td>When connecting from Sybase Central to an UltraLite database with multi-byte characters in its file name, the database name would have appeared with mangled characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656093">656093</a></td>
<td>The Log Translation utility (dbtran) and SQL Remote could left temporary files undeleted after execution. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656162">656162</a></td>
<td>When building a CAB file to deploy SQL Anywhere for Windows Mobile, a start menu folder &quot;sqlany12&quot; would have been created, the folder name should have been &quot;sqlany11&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656264">656264</a></td>
<td>When connected to a database that had the same character set as the OS, and a query like the following was executed:</p>
<p>				SELECT ... FROM dirtab WHERE file_name = &#39;...&#39;</p>
<p>				where dirtab was a directory access table and the file_name string literal contained non-ASCII characters, there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656272">656272</a></td>
<td>The INSERT ON EXISTING SKIP statement did not report the correct number of inserted and</p>
<p>				updated rows using @@rowcount and sqlcount. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656291">656291</a></td>
<td>If a Destination Alias defined in a Server Store was deleted, the alias was still shown in Sybase Central until the QAnywhere server completed the deletion. That could have taken up to a minute, or could never have happened if the QAnywhere server was not running. If deleting the alias was tried a second time, an obscure error message would have been displayed saying that the alias could not be deleted. Now, the Destination Alias is removed from Sybase Central as soon as the user deletes it, the same as in earlier versions of Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656454">656454</a></td>
<td>When connected to a database that contained one or more publications, and the property sheet for a Publication was opened and an Article was selected in the &quot;Subscribe by restriction&quot; tab, the Editor pane at the bottom of the tab would have been disabled except when the &#39;expression&#39; radio button was checked. When the Editor pane was disabled it was still possible to right click on it to reveal a pop-up menu that allowed for search and replace in the box. The menu is now disabled when the Edit pane is disabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656481">656481</a></td>
<td>An application using the ADO .Net provider, and calling the method SAConnection(), could not have successfully connected to an IQ 12.7 server. A run-time error (iAnywhere.Data.SQLAnywhere.SAException) would have occurred when the provider tried to parse the server version string. This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656645">656645</a></td>
<td>Dates shown in the Graph widget were localized but not in the correct order (they showed &quot;MM DD&quot; instead of &quot;DD MM&quot;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656650">656650</a></td>
<td>The system procedure sa_db_list() did not validate its database id parameter if the value was a positive integer. This would have resulted in a single row result set containing the value provided. Now, if the value is not a valid database id, the procedure will return an empty result set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656660">656660</a></td>
<td>During a Relay Server outage, the SQL Anywhere Monitor did not display the the &quot;Unavailable since&quot; time, but cleared the &quot;Up since&quot; time only. A farm outage alert was also not raised. Only a sustained outage alert was raised after the threshold time elapsed. When the Relay Server came back up again, data collection did not resume and the &quot;Up since&quot; time was not updated. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656671">656671</a></td>
<td>MobiLink does not allow column-based conflict detection for tables that have large (eg. BLOB) columns, but that option could have been selected for such a table in a Synchronization Model in the Table Mapping editor. An error would not have been reported until synchronizing after deploying the model. This has been fixed so that a table mapping error will now occur in the Table Mapping editor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656680">656680</a></td>
<td>The Interactive SQL utility could have become unresponsive when executing a statement which returned a result set if the entire result set cannot be returned due to a row lock. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656691">656691</a></td>
<td>If a query was rewritten by the optimizer to use a materialized view, the query would incorrectly have returned zero rows if a spatial predicate was applied to the rows originating from the view. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656716">656716</a></td>
<td>The Relay Server could have leaked heap memory under the following conditions:</p>
<p>				- On the response to the first HTTP request in the session, or specifically, anytime a cookie was set, if the response was long and came in small packets.</p>
<p>				- A small number of bytes were leaked on Upchannel and Dnchannel creation.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656828">656828</a></td>
<td>Adding the CHECK IMMEDIATE REFRESH clause to a CREATE MATERIALIZE VIEW statement would have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656839">656839</a></td>
<td>If an INSERT or UPDATE statement affecting the value of a spatial column was canceled, or a run-time error was encountered during execution, there was a possibility that the server would have failed assertion 112701: &quot;Failed to convert geometry to EWKB for the redo log -- transaction rolled back [-301] [&#39;40W01&#39;]&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656844">656844</a></td>
<td>ULPod may have caused AvantGo clients to crash when calling the method TableAGDBSet getTableAGDBSet. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656847">656847</a></td>
<td>If a derived table was joined with the rest of the query using a Join Nested Loops operator, the performance of the query may have suffered when the derived table had to be computed many times due to many rows generated by the left hand side of the Join Nested Loops. The optimizer was choosing such a plan if the estimated number of rows of the left hand side was very small. If this estimation was wrong (e.g., the optimizer estimates one row for the left hand side but in reality the left hand side produces 1,000 rows), the derived table was computed many, many times during execution. This has been fixed so that the optimizer considers only Join Hash or Join Sort Merge operators for the derived tables if it is correct to do so.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656863">656863</a></td>
<td>If a synchronization model had script errors that were fixed without opening the Events editor or saving the model, attempting to deploy the model would have erroneously failed because of a script error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656897">656897</a></td>
<td>Attempting to execute a SQL statement that was made up only of full-width space characters (U+3000, the &quot;Ideographic Space&quot;) would have caused the Interactive SQL utility to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR656998">656998</a></td>
<td>Remote queries with many aliases in grouped derived tables may have taken a long time to execute. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657026">657026</a></td>
<td>The MobiLInk server would immediately refuse to startup, if it could not make any connections to the consolidated database, even when it was running as a Windows service.</p>
<p>				This behaviour has changed so that the MobiLink server will retry to make connections, when it is running as a Windows services. The retries are once a minutes for ten minutes. If it still cannot make a connection after that, it will refuse to startup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657068">657068</a></td>
<td>In the MobiLink Server Log File Viewer, selecting a synchronization could have resulted in the window becoming unresponsive if the synchronization contained hundreds of thousands of messages. This has been fixed. </p>
<p>				Also, it was noticed that synchronizations were not initially listed in chronological order if the log file contained output for more than one run of the MobiLink Server. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657185">657185</a></td>
<td>The MobiLink Agent for central administration of remote databases now supports a file delete command that does not fail if the file to be deleted does not exist. The existing behaviour of failing if the file to be deleted does not exist is the default.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657198">657198</a></td>
<td>The MobiLink Replay utility (mlreplay) and mlgenreplayapi tool now log any command line options in the log. If any of the command line options are passwords, then the passwords will be replaced with a string of �*�.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657199">657199</a></td>
<td>The 杘s &lt;size&gt; command line option can be used to limit the maximum size of a log file produced by the MobiLink Replay utility (mlreplay) or the mlgenreplayapi tool. When the log reaches the specified size (minimum 10 KB), it will be renamed to YYMMDDxx.rlg and a new log file is started with the original name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657200">657200</a></td>
<td>The MobiLink Agent for central administration of remote databases now supports two new variables for task conditions, {is_online} and {network_conn_name}.</p>
<p>				The variable {is_online} can be used to check whether the client device is connected to a network on which the MobiLink server of the agent can be reached. Note that this variable is not equivalent to a ping of the MobiLink host machine, nor of the MobiLink server itself. The host machine may be offline and the variable will still evaluate to 1 (true). This variable evaluates to 1 if and only if the client device is connected to a network such that there is a route to the IP address of the MobiLink server. This variable is supported for agents running on Windows and Windows Mobile operating systems.</p>
<p>				The variable {network_conn_name} evaluates to the name of the network connection that will be used by the agent for communication with its MobiLink server. This variable is only supported on Windows operating systems. The list of possible network connection names for a given Windows-based device can be obtained by going to Control Panel/Network Connections on Windows XP, or going to Control Panel/Network and Sharing Center on Windows Vista and Windows 7. Alternatively, the list of network connection names can be obtained from the information returned by the ipconfig command line utility. The network connection name for the loopback connection (destination IP address 127.0.0.1) is &quot;Loopback interface&quot;. If there is no network connection that can be used by the agent to communicate to the MobiLink server, this variable evaluates to &quot;?&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657201">657201</a></td>
<td>The MobiLink Replay utility command line options 杗 &lt;number of simulated clients&gt; and 杝ci &lt;simulated client information file&gt; can now be used together as long as the number of simulated clients specified by the 杗 option is less than or equal to the number of simulated clients in the simulated client information file. If the 杝ci and 杗 options are used together, the number of simulated clients mlreplay will run will be the number specified by 杗. Allowing these two options to be used together allows one simulated client information file specifying x simulated clients to be used to replay recorded protocol with 1 to x simulated clients, where as before, it could only be used to replay recorded protocol with exactly x simulated clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657203">657203</a></td>
<td>The MobiLink Agent for central administration of remote databases now supports a random delay for task execution. The motivation for this feature is to address scalability issues in a large deployment of centrally administered remote databases. If a given task sends results to the MobiLink server after execution, or causes a remote database to synchronize with the server, and it is triggered simultaneously across a large number of remotes, then setting a random delay for the task will uniformly distribute the synchronization workload for the server over a configurable period of time.</p>
<p>				A remote task can have a &quot;random delay interval&quot;, which is an interval N, in seconds, with which each agent generates a random number of seconds in [0, N) to delay each task execution. If the task is a scheduled task, the random delay is generated before the first task execution, and used for each execution. The task is executed at the scheduled times offset by the random delay. This ensures that the deltas of the task execution times are consistent with the schedule. It is not recommended that the random delay interval be larger than smallest delta time of a scheduled task. If the task is an &quot;on demand&quot; task, that is initiated by the server, the random delay is generated and used to delay the execution each time the task is initiated. If the task is a &quot;run on receipt&quot; task, the random delay is generated and used to delay the execution at the first and only time the task is executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_87.htm#CR657204">657204</a></td>
<td>A new option has been added to control interpolation of ST_CircularString geometries called st_geometry_interpolation. It takes a set of key=value pairs as: key1=value1;key2=value2;....</p>
<p>				Valid keys include:</p>
<p>				relative-tolerance-percent=&lt;double&gt;</p>
<p>				absolute-tolerance=&lt;double&gt;</p>
<p>				The value for relative-tolerance-percent specifies the maximum variation (in percent) in the distance from the centre point of the ST_CircularString segment to the interpolated ST_LineString segment, relative to the radius of the ST_CircularString segment. This value defaults to 0.3, which gives 40 points in a complete circle. Its minimum value is 0, meaning the absolute-tolerance setting is always used.</p>
<p>				The value for absolute-tolerance specifies the maximum absolute variation (in linear units) in the distance from the centre point of the ST_CircularString segment to the interpolated ST_LineString segment. This value defaults to the tolerance specified by the SRID. Its minimum value is also the tolerance specified by the SRID.</p>
<p>				If neither key is specified, the defaults are used. If only one key is specified, the other one is set to its minimum value. If both keys are specified, the minimum number of points will be produced such that both restrictions are satisfied.</p>
<p>				Regardless of the setting, there will be at least 3 points per curve segment. Additional points may be added to ensure the ST_Envelope of the ST_LineString is the same as that of the original ST_CircularString. Furthermore, no two consecutive points on the interpolated ST_LineString will be within tolerance of each other.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657208">657208</a></td>
<td>The MobiLink server now requires the ASE ODBC driver from Sybase SDK 15.5 ESD #4, which contains a few bug fixes, especially for the ASE cluster edition. The ASE ODBC driver from Sybase 15.0 SDK ESD #16 that was recommended for 12.0.0 GA is no longer recommended.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657210">657210</a></td>
<td>The MobiLink server now supports two new named system parameters, &#39;new_username&#39; and &#39;new_remote_id&#39;. They are available in the authenticate_user and begin_synchronization connection scripts, and the begin_synchronization table script for every sync table. The format of these two named parameter is the same as that for all other named system parameters, that is:</p>
<p>				{ml s.new_username} and {ml s.new_remote_id}</p>
<p>				These new named parameters are not available through question marks (?) in any MobiLink server events.</p>
<p>				The values of the s.new_username and s.new_remote_id parameters would be the MobiLink user name (used for user authentication) and the remote ID, respectively, if the user name and remote ID are new in the consolidated database (they are not in the ml_user and ml_database tables). Otherwise, their values will be NULL: more precisely, the s.new_username will be NULL if the MobiLink user name is already in the ml_user table, and the s.new_remote_id will be NULL if the remote_id is already in the ml_database table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657228">657228</a></td>
<td>A new system procedure has been added, st_geometry_load_shapefile, which will make it easier to load ESRI shape files. The procedure creates a table and loads data from an ESRI shape file into the new table. The created table&#39;s columns are based on those in the shape file and shape file attributes. This system procedure is for use with the spatial feature.</p>
<p>				Syntax</p>
<p>				st_geometry_load_shapefile( shp_filename</p>
<p>				, srid</p>
<p>				, table_name </p>
<p>				[, table_owner [, shp_encoding ] ] )</p>
<p>				Arguments</p>
<p>				- shp_filename A VARCHAR(512) parameter that identifies the location of the ESRI shape file. The file name must have the extension .shp and must have an associated .shx and .dbf file with the same base name located in the same directory. The path is relative to the database server, not the client application.</p>
<p>				- srid An INTEGER parameter that identifies the SRID for the geometries in the shape file.</p>
<p>				- table_name A VARCHAR(128) parameter the specifies the name of the created table.</p>
<p>				- table_owner An optional VARCHAR(128) parameter the specifies the owner of the created table. The default owner is the current user.</p>
<p>				- shp_encoding An optional VARCHAR(50) parameter that identifies the encoding to use when reading the shape file. The default encoding is ISO-8859-1. </p>
<p>				Remarks</p>
<p>				The st_geometry_load_shapefile system procedure first creates the table &quot;table_owner&quot;.&quot;table_name&quot; using the column names a types from the ESRI shape file. Then the procedure loads the data from the shape file into the new table. If loading the data from the shape file fails, the created table remains.</p>
<p>				This procedures makes use of the sa_describe_shapefile system procedure and the LOAD TABLE ... FORMAT SHAPEFILE statement.</p>
<p>				Permissions</p>
<p>				RESOURCE authority is required.</p>
<p>				If the -gl option has been set to DBA, DBA authority is required.</p>
<p>				If the -gl option has been set to NONE, loading the data will fail.</p>
<p>				Side effects</p>
<p>				Automatic commit</p>
<p>				See also</p>
<p>				sa_describe_shapefile</p>
<p>				LOAD TABLE</p>
<p>				Admin tools load shapefile wizard</p>
<p>				Example</p>
<p>				The following examples creates the table &quot;esri_load&quot; with spatial reference system 1000004326 and loads the data from c:\esri\shapefile.shp:</p>
<p>				call st_geometry_load_shapefile( &#39;c:\\esri\\shapefile.shp&#39;, 1000004326, &#39;esri_load&#39; );</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657284">657284</a></td>
<td>The MobiLink Server log file viewer in Sybase Central might not have listed all synchronizations in a given log file separately if the log file contained messages from more than one run of the MobiLink Server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657297">657297</a></td>
<td>The MobiLink Replay utility can now repeatedly replay recorded protocol. A new option, -rep &lt;num_repetitions&gt;, has been added to specify how many times each simulated client should replay the recorded protocol. Each repetition can be customized if a replay DLL/shared object is used. The following callbacks are called per repetition:</p>
<p>				� GetUploadTransaction (this callback may be called several times based on how many syncs and upload transactions appear in the recorded protocol file being replayed)</p>
<p>				� GetDownloadApplyTime</p>
<p>				� ReportEndOfReplay</p>
<p>				� DelayStartOfReplay</p>
<p>				The purpose of the above callbacks has not changed with the addition of this new feature. The differences are the repetitionNum and numRepetitions parameters will no longer always be 1 and GetUploadTransaction may now be called concurrently.</p>
<p>				Another new option has been added as well, -ls, which tells the Replay utility to log statistics about each simulated client. In particular, using the 杔s option will log the total running time, the total time spent replaying, and the total number of repetitions completed successfully, failed, or skipped for each simulated client. The Replay utility will still log a summary just before exiting containing the total number of repetitions completed successfully, failed, or skipped, as well as the total time spent replaying and the total running time, even when the 杔s option is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657301">657301</a></td>
<td>Synchronization models using SQL Anywhere, Sybase IQ, IBM DB2 LUW and MySQL consolidated databases can now use timestamp-based downloads without having to use triggers to maintain timestamp columns. Instead of triggers, column default values can be used to automatically update the timestamp column in a row when the row is inserted or updated. This can improve performance, since such column defaults are less costly than triggers in the consolidated database.</p>
<p>				A new &quot;Use column default instead of a trigger&quot; option has been added to both the Timestamp Download Options page of the Create Synchronization Model Wizard and the Download Type tab of the Table Mapping Editor.</p>
<p>				This feature is required for Sybase IQ and is now the default option for SQL Anywhere. DB2 and MySQL only allow one automatic timestamp column per table, so the default for those consolidated database types is to use triggers.</p>
<p>				The following column defaults are used:</p>
<p>				- For SQL Anywhere and Sybase IQ: DEFAULT TIMESTAMP</p>
<p>				- For DB2: GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP</p>
<p>				- For MySQL: DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP</p>
<p>				Note that a trigger must be used if a shadow table is used to hold the timestamp column.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657306">657306</a></td>
<td>Synchronization Models can now be created with Sybase IQ consolidated databases. For IQ tables, table mappings are download-only by default. If the table mapping for an IQ table is changed to bi-directional or upload-only, a warning is given to ensure that uploads are </p>
<p>				serialized. The requirement for serializing uploads with Sybase IQ is described in the following topic:</p>
<p>				MobiLink - Server Administration</p>
<p>				� Using MobiLink server technology</p>
<p>				� MobiLink consolidated databases</p>
<p>				� Sybase IQ consolidated database</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657311">657311</a></td>
<td>The spatial predicate ST_WithinDistanceFilter is now supported for geometries in round earth spatial reference systems. In addition, predicates involving ST_WithinDistance or ST_Distance will now make use of a spatial index if one exists.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657314">657314</a></td>
<td>Several new methods have been added to the UL.Net API to support asynchronous synchronization.</p>
<p>				public delegate void ULSyncProgressedDlg( IAsyncResult result, ULSyncProgressData data )</p>
<p>				This method is invoked during synchronization to provide progress information. Unlike the SyncProgressed method of the ULSyncProgressListener interface, the synchronization is not being held up during calls to this method and it is safe to do GUI work or make UL.NET API calls.</p>
<p>				public IAsyncResult ULConnection.BeginSynchronize()</p>
<p>				Creates a new thread to do a synchronization and then returns immediately.</p>
<p>				public IAsyncResult ULConnection.BeginSynchronize( Control control, ULSyncProgressedDlg dlg, object state )</p>
<p>				Creates a new thread to do a synchronization and then returns immediately. The ULSyncProgressedDlg method is invoked on the provided Control object regularly during sync to provide progress information.</p>
<p>				public void ULConnection.CancelSynchronize( IAsyncResult asyncResult )</p>
<p>				Tells the synchronization thread to terminate and then returns immediately.</p>
<p>				public void ULConnection.EndSynchronize( IAsyncResult asyncResult )</p>
<p>				Blocks until an asynchronously launched synchronization terminates. A ULException is thrown if the sync failed.</p>
<p>				public bool ULSyncProgressData.IsFinalSyncProgress</p>
<p>				This property is true if this is the final sync progress message for a sync.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657317">657317</a></td>
<td>Tables in UltraLiteJ can now be marked as download-only. Changes to the table on the consolidated database are downloaded during synchronizations, but local changes are not sent up to MobiLink. Tables are set to download-only by specifying &quot;SYNCHRONIZE DOWNLOAD&quot; for the sync constraint clause of the &quot;CREATE TABLE&quot; and &quot;ALTER TABLE&quot; SQL statements. As with other tables that are synchronized, client-side uncommitted changes may result in download conflicts. XML format for unloaded databases now includes the sync=&quot;download&quot; attribute on tables.</p>
<p>				Note, opening a database with 12.0.1 will upgrade the database so that it is no longer compatible with 12.0.0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657324">657324</a></td>
<td>Installations created by the Deployment wizard were to be missing the following files from the assembly\v2\ directory:</p>
<p>				iAnywhere.Mobilink.Client.dll</p>
<p>				iAnywhere.QAnywhere.Client.dll</p>
<p>				iAnywhere.QAnywhere.Resources.dll</p>
<p>				iAnywhere.QAnywhere.ws.dll</p>
<p>				These files were being installed in the Global Assembly Cache (GAC), but an additional copy was not also put in the assembly\v2 directory. This has been corrected so that these files are now installed in both locations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657341">657341</a></td>
<td>Substantial performance improvements have been made for the following spatial operations:</p>
<p>				- Loading of (multi)polygons belonging to round earth spatial reference systems.</p>
<p>				- Loading of complex (multi)polygons (i.e., polygons defined by many rings or rings containing many points)</p>
<p>				- Spatial set operations (e.g., ST_Union, ST_Intersection, etc.) applied to complex geometries</p>
<p>				- Spatial predicates (e.g., ST_Contains, ST_Intersects, etc.) where one of the geometries is complex</p>
<p>				- Spatial predicates where one of the geometries is a point</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657343">657343</a></td>
<td>The MobiLink Server can now automatically adjust the number of database worker threads based on load, with the goal of maximizing throughput. The existing -w option has been slightly changed, and the -wm option has been added, as follows:</p>
<p>				-w &lt;count&gt; set the initial number of concurrent database worker threads (up to -wm)</p>
<p>				-wm &lt;count&gt; set the maximum number of concurrent database worker threads</p>
<p>				Notes:</p>
<p>				- The -w option has been changed to be the _initial_ number of concurrent database worker threads</p>
<p>				- The -wm option now defaults to -w, ie. no automatic adjustment will occur when -wm is unset. In other words, the automatic adjustment is triggered by the presence of the -wm option</p>
<p>				- The number of database worker threads is now automatically adjustable anywhere between the initial (-w) value and the -wm value</p>
<p>				- The -wu value is not automatically adjusted, and its meaning remains basically the same, with one important difference: If not specified, uploads may be applied on any or all database worker threads (which is now a variable number). If specified, uploads may only be applied concurrently on the given number of database worker threads. So by default, when feature attempts to ramp up the number of database worker threads in an attempt to increase throughput, contention may increase in the short term until it is detected and the thread-count is eventually decreased.</p>
<p>				- The automatic adjustment means that some customers may find optimal throughput only when -wu is set explicitly, because leaving it unset causes download throughput to be artificially limited by the contention of the uploads. Setting -wu is most likely to be required in high-load environments where uploads are constantly intermixed with download-only synchronizations.</p>
<p>				- If contention in the consolidated is the cause of throughput degradation, then this new feature will reduce the number of worker threads REGARDLESS of the cause of the contention (eg. other syncs vs. a contentious batch process outside of syncs).</p>
<p>				- Each ML server in a farm makes thread-count decisions independently. Over time, on average, each server in an ML farm should end up at the same thread-count number assuming a uniform load distributed evenly across the farm.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657397">657397</a></td>
<td>When the consolidated database was running on an Oracle server, the MobiLink server could have displayed the error: &#39;ORA-00001: unique constraint ... violated&#39; and then refused further synchronization requests. This would have occurred when the MobiLink server schema in the consolidated database was upgraded from a version earlier than 11.0.0, and the synchronization request was for a new MobiLink user and/or MobiLink remote database.</p>
<p>				This problem has been fixed in the upgrade scripts for Oracle.</p>
<p>				The following steps can be used to correct the problem if the Oracle consolidated database had already been upgraded with the old upgrade scripts:</p>
<p>				1) Shut down all MobiLink servers;</p>
<p>				2) Execute the SQL file against the Oracle consolidated database with the following command line:</p>
<p>				sqlplus LoginID/Password@TNSServerName @%SQLANY12%\MobiLink\Upgrade\fix_ora.sql</p>
<p>				Replace the LoginID, Password, and TNSServerName in the above command line with your own login information.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657409">657409</a></td>
<td>Predicates of the form &#39;T.X IS NOT NULL&#39; are now treated as sargable predicates by the SQL Anywhere Optimizer. Hence, this type of predicates can be used for partial index scans interpreted as &quot;T.X &gt; NULL&quot;. </p>
<p>				For example:</p>
<p>				create index idx1 on T(C1, C2);</p>
<p>				select * from T where T.C1 = 10 and T.C2 IS NOT NULL</p>
<p>				The query Q may have, depending on the selectivity of the predicates &quot;T.C1 = 10&quot; and &quot;T.C2 IS NOT NULL&quot;, the following plan:</p>
<p>				T&lt;idx1&gt;</p>
<p>				where the partial index scan on &lt;idx1&gt; is set as follows:</p>
<p>				idx1:</p>
<p>				c1 = 10</p>
<p>				NULL &lt; c2</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657410">657410</a></td>
<td>One of the conditions for a query to be considered for bypassing the optimizer was to have no computed columns defined for the base table referenced in the FROM clause. This restriction has been removed. Common sub-expression elimination process using computed columns is done for bypassed queries similar to the queries using the Optimizer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657411">657411</a></td>
<td>When adding table mappings to a Synchronization Model in the Create New Table Mappings window, the option to add corresponding tables to the remote schema is now selected by default.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657413">657413</a></td>
<td>Improvements to the MobiLink Server required some changes to system objects in the consolidated database. Upgrade scripts have been provided for every consolidated database type MobiLink supports. The upgrade script file is named with the following format:</p>
<p>				upgrade_x.sql</p>
<p>				where x can be sa, ase, mss, ora, db2, and mys; and represent upgrade scripts for SQL Anywhere, Sybase ASE, Microsoft SQL Sever, Oracle, DB2, and MySQL, respectively. These upgrade script files can be found in MobiLink\Upgrade\x.y.z of the SQL Anywhere installation, where x.y.z stands for the earlier version that is currently in use. For instance, when upgrading from MobiLink version 9.0.2 to version 12.0.1 with an Oracle consolidated database, the upgrade script needed is upgrade_ora.sql that can be found in the directory, MobiLink\Upgrade\9.0.2 in the SQLAnywhere 12.0.1 installation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657415">657415</a></td>
<td>Performance of index maintenance on IMMEDIATE REFRESH text indexes has been substantially improved. The improvement observed will depend on the particular workload, as well as the</p>
<p>				document and text index content. Text indexes indexing long documents will benefit the most from this improvement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657416">657416</a></td>
<td>The USING clause of a CREATE SERVER statement can now contain &quot;{varname}&quot;. Similarly, the AT clause for CREATE EXISTING and CREATE PROCEDURE statements can also contain &quot;{varname}&quot;. When a connection to the remote server is established, or when the proxy table or proxy procedure is utilized, the &quot;{varname}&quot; in the USING or AT clause will get replaced with the contents of the connection variable named &quot;varname&quot;. Note that the connection variable &quot;varname&quot; must be a CHAR, VARCHAR or LONG VARCHAR variable. All other datatypes will be rejected. Utilizing the &quot;{varname}&quot; feature will allow for creating dynamic remote data access servers, proxy tables and proxy procedures.</p>
<p>				The following example gives a better idea of how this new feature can be used. Note that this example uses a directory access server for demonstration but this new feature is not at all restricted to the type of remote data access server.</p>
<p>				SSuppose a dba has a database that is sometimes started on machine A with the server name server1 and at other times the database is started on machine B with the server name server2. Now suppose the dba wants to set up a directory access server that points to the local drive d:\users on machine B which is also the network driver w:\users on machine A.</p>
<p>				In addition, the dba wants to set up a single proxy table that all users can use to get the listing of their own directory located at users\userM. With the addition of variables in the USING and AT clause, the dba can now accomplish everything needed with a single directory access server and a single proxy table as follows:</p>
<p>				First, with the database running on machine B connect as dba and execute the following in DBISQL</p>
<p>				-- define the directory access server with variables in the using clause</p>
<p>				-- the two variables in this example are for the root of the directory access server and the subdirectory level</p>
<p>				create server dir class &#39;directory&#39; using &#39;root={@directory}\\users;subdirs={@subdirs}&#39;;</p>
<p>				-- next create explicit extern logins for each user that will be allowed to use the directory access server</p>
<p>				create externlogin dba to dir;</p>
<p>				create externlogin user1 to dir;</p>
<p>				create externlogin user2 to dir;</p>
<p>				...</p>
<p>				create externlogin userM to dir;</p>
<p>				-- now use one of the user accounts to create the single proxy table that all users will use</p>
<p>				create variable @directory long varchar;</p>
<p>				set @directory = &#39;d:&#39;;</p>
<p>				create variable @subdirs varchar(10);</p>
<p>				set @subdirs = &#39;7&#39;;</p>
<p>				create variable @curuser varchar(128);</p>
<p>				set @curuser = &#39;user1&#39;;</p>
<p>				create variable @server varchar(128);</p>
<p>				set @server = &#39;dir&#39;;</p>
<p>				-- this will now create a proxy table that points to @directory\users\@curuser on directory access server @server</p>
<p>				create existing table dbo.userdir at &#39;{@server};;;{@curuser}&#39;;</p>
<p>				-- we no longer need the variables so clean them up</p>
<p>				drop variable @curuser;</p>
<p>				drop variable @subdirs;</p>
<p>				drop variable @directory;</p>
<p>				-- we also no longer need an extern login mapping for dba</p>
<p>				drop externlogin dba to dir;</p>
<p>				-- now create a procedure that all users will use to view the contents of their individual user directory</p>
<p>				create procedure dbo.listmydir()</p>
<p>				begin</p>
<p>				declare @directory long varchar;</p>
<p>				declare @subdirs varchar(10);</p>
<p>				declare @server varchar(128);</p>
<p>				declare @curuser varchar(128);</p>
<p>				-- for this example we always use the &quot;dir&#39; remote data access server</p>
<p>				set @server = &#39;dir&#39;;</p>
<p>				-- the root directory is based on the SQL Anywhere server the user is connect to</p>
<p>				set @directory = if property(&#39;name&#39;) = &#39;server1&#39; then &#39;w:&#39; else &#39;d:&#39; endif;</p>
<p>				-- the subdir limit is based on the connected user</p>
<p>				set @curuser = user_name();</p>
<p>				-- all users get a subdir limit of 7 except user2 who gets a limit of 1</p>
<p>				set @subdirs = convert( varchar(10), if @curuser = &#39;user2&#39; then 1 else 7 endif);</p>
<p>				-- now we are all set to go</p>
<p>				-- with all the variables set above the proxy table dbo.userdir now points to @directory\@curuser and has a subdir limit of @subdirs</p>
<p>				select * from dbo.userdir;</p>
<p>				end</p>
<p>				grant execute on dbo.listmydir to public;</p>
<p>				If userN where userN is not in (user1, user2, ... userM) attempts to use dbo.listmydir(), the select statement will fail due to the fact that userN does not have an extern login mapping for directory access server &quot;dir&quot;.</p>
<p>				If, on the other hand, users userI and userJ where userI and userJ are both in (user1, user2, ... userM) attempt to use dbo.listmydir(), then userI will get a listing of his/her own directory located at users\userI and userJ will get a listing of his/her own directory located at users\userJ even though both query the exact same dbo.userdir proxy table. In addition, if the database now moves from machine B to machine A, then all will continue to work since the @directory variable in the USING clause will now get set to &quot;w:\users&quot; instead of &quot;d:\users&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657417">657417</a></td>
<td>The &#39;TOP limit START AT startat&#39; and &#39;LIMIT limit OFFSET offset&#39; constructs now support simple arithmetic expressions for &#39;limit&#39;, &#39;offset&#39;, &#39;startat&#39; arguments; and TOP supports the &#39;ALL&#39; limit indicating that all rows are to be returned after the specified &#39;startat&#39;; and the maximum value for (limit + offset) is now 9223372036854775807 = 2^64-1</p>
<p>				The new grammar is as follows:</p>
<p>				TOP range_expression range_offset </p>
<p>				TOP T_ALL range_offset </p>
<p>				LIMIT range_expression [OFFSET range_expression]</p>
<p>				range_expression:</p>
<p>				integer_or_var </p>
<p>				| &#39;(&#39; simple_expression &#39;)&#39; </p>
<p>				;</p>
<p>				simple_expression:</p>
<p>				integer_or_var </p>
<p>				| simple_expression &#39;+&#39; simple_expression </p>
<p>				| simple_expression &#39;-&#39; simple_expression </p>
<p>				| simple_expression &#39;*&#39; simple_expression </p>
<p>				| &#39;(&#39; simple_expression &#39;)&#39; </p>
<p>				;</p>
<p>				range_offset: /* empty */ </p>
<p>				| T_START T_AT range_expression</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657423">657423</a></td>
<td>The first page of the Deploy Synchronization Model wizard now has an option when deploying to a remote database to initialize the wizard with settings appropriate for creating remote tasks for central administration of remote databases. This option is selected by default.</p>
<p>				When the &quot;Initialize with settings for central administration of remote databases&quot; option is selected, the defaults are changed for the following deployment settings:</p>
<p>				- On the New SQL Anywhere Remote Database page, the &quot;Create a remote SQL Anywhere database&quot; option is not selected.</p>
<p>				- On the New UltraLite Remote Database page, the &quot;Create a remote UltraLite database&quot; option is not selected.</p>
<p>				- On the Existing Remote Database page, the &quot;Connect to the remote database to directly apply the changes&quot; option is not selected.</p>
<p>				- On the MobiLink User and Synchronization Profile page (formerly MobiLink User or MobiLink User and Subscription) the following are changed:</p>
<p>				- The user name is set to {ml_username}.</p>
<p>				- The password is set to {ml_password}.</p>
<p>				- The &quot;Register this user in the consolidated database for MobiLink authentication&quot; option is not selected.</p>
<p>				With this option selected, deployment with create a remote database SQL file that can be used in a remote task. The {ml_username} and {ml_password} macro values are replaced with the MobiLink user and password being used by the MobiLink Agent when the SQL is executed on the remote database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657427">657427</a></td>
<td>On Windows systems, the behavior when clicking Help in SQL Anywhere ODBC administrator dialogs has been changed so that </p>
<p>				. the help topics are displayed using the master help file sqlanywhere_[LL]12.chm when full HTMLHelp documentation is installed, or </p>
<p>				. if sqlanywhere_[LL]12.chm is not found, the help topics are displayed using context sensitive help file sacshelp12.chm, or </p>
<p>				. if sacshelp12.chm is also not found, the help topics are displayed in DocCommentXchange with system&#39;s default internet browser </p>
<p>				Please note that before this change, the Help buttons used dbco[LL]12.chm, which was installed in the bin32 folder by the main software installer. Now dbco[LL]12.chm is longer be provided. </p>
<p>				[LL] is the language code of the help files.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657445">657445</a></td>
<td>A new function GetParameterID has been added to the programming interface for C and C++ programming. The method returns the base-one ordinal for a named host variable in a SQL statement. The ordinal may be subsequently used to set the value of a host variable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657448">657448</a></td>
<td>The aggregated time increment used to calculate the following metrics were not divided by the request count increment before plotting to the graphs:</p>
<p>				&quot;Average Request time&quot;</p>
<p>				&quot;Average Backend server processing time&quot;</p>
<p>				&quot;Average Response time&quot;</p>
<p>				&quot;Average Request Completion time&quot;</p>
<p>				The problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657459">657459</a></td>
<td>The SQL Anywhere OLE DB provider now supports the DBTYPE_DBTIMESTAMPOFFSET data type. DBTYPE_DBTIMESTAMPOFFSET (146) is an OLE DB type that supports the TIMESTAMP WITH TIME ZONE (or DATETIMEOFFSET) data type. Support for this data type facilitates transfer of data tables between SQL Anywhere databases and other database management systems (include SQL Anywhere).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657471">657471</a></td>
<td>The PHP external environment and the PHP driver now support PHP versions 5.3.3, 5.3.4, and 5.3.5.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657518">657518</a></td>
<td>When deploying a Synchronization Model to a remote database, a synchronization profile is created to hold several deployment options. For a SQL Anywhere remote database, the created synchronization profile contains the subscription name and the MobiLink password. For an UltraLite remote database, the synchronization profile contains the stream type and stream options, the MobiLink user name and password, the publication, and the script version.</p>
<p>				The Deployment Wizard&#39;s MobiLink User and Subscription page (for SQL Anywhere databases) and MobiLink User page (for UltraLite remote databases) have been merged into the MobiLink User and Synchronization Profile page, which has an option to specify the synchronization profile name. For SQL Anywhere remote databases, the same name is used for the synchronization subscription. The default name combines the publication name and MobiLink user name, since the profile is linked to the publication and user. It is automatically updated to be of the form &lt;publication name&gt;_&lt;MobiLink user name&gt; when the mobilink user name is changed, but is uncoupled when it is directly edited. The deployment option to name the synchronization profile replaces the option to name the subscription for a SQL Anywhere remote database that was added in version 12.0.0. This feature removes the need to manually create a synchronization profile after deploying a synchronization model to use with central administration of remote databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657519">657519</a></td>
<td>The MobiLink collector for the SA Monitor now supports an additional metric: &quot;Is Consolidated Available?&quot;. This value will be true if the MobiLink server can connect to the consolidated database. If the consolidated database becomes unavailable, a &quot;Consolidated database unavailable&quot; alert will be raised. Also, the &quot;Bytes Read Rate&quot; and &quot;Bytes Written Rate&quot; have been renamed to &quot;TCP Bytes Read Rate&quot; and &quot;TCP Bytes Written Rate&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657520">657520</a></td>
<td>In very rare cases, the server asserts with assertion error 102300 &quot;File associated with given page id is invalid or not open&quot; if request level debugging is turned on and includes plan logging and there are schema changes around. This has been fixed. To work around the problem plan caching can be turned off (option Max_plans_cached = 0) or plan logging can be turned off (switch -zr without &quot;plan&quot; and &quot;all&quot;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657526">657526</a></td>
<td>A new stored procedure called sp_forward_to_remote_server( IN @server_name varchar(128), IN @sql long varchar ) has been added. This stored procedure allows an application to execute a SQL statement on a remote server and retrieve any result sets generated by the statement. It should be noted that the SQL statement gets sent verbatim to the remote server; hence, it is not necessary for the SQL statement to be parseable by SQL Anywhere. This new stored procedure is in addition to the already existing FORWARD TO statement; but unlike the FORWARD TO statement, this new stored procedure can be used within procedures; however, since the schema of the remote result sets is completely arbitrary, this stored procedure cannot be used within the FROM clause of a SELECT statement. You can, nevertheless, declare a cursor within a stored procedure on this stored procedure and fetch the remote result sets that way. Note that if the SQL statement returns multiple result sets, then this stored procedure will return each remote result set in turn.</p>
<p>				The server must be defined with the CREATE SERVER statement to use this system procedure. TThe arguments are as follows:</p>
<p>				@server_name Use this CHAR(128) parameter to specify the server the SQL statement will be executed on.</p>
<p>				@sql Use this LONG VARCHAR parameter to specify the SQL statement to execute on the remote server.</p>
<p>				Note that an ALTER DATABASE UPGRADE is required to get the new stored procedure.</p>
<p>				Permissions: None</p>
<p>				Side effects: There are no local side effects to executing this stored procedure; however, since the SQL statement that gets executed on the remote is completely arbitrary, there may be side effects on the remote server.</p>
<p>				Example:</p>
<p>				The following very simple example uses the sp_forward_to_remote_server() stored procedure and a local function to determine the number of tables that a remote SQL Anywhere 12 database has.</p>
<p>				-- create the remote data access server</p>
<p>				create server rem class &#39;saodbc&#39; using &#39;driver=SQL Anywhere 12;...&#39;;</p>
<p>				-- assume extern logins are not needed</p>
<p>				-- create the local function that in turn calls sp_forward_to_remote_server</p>
<p>				create function fetch_num_remote_tables(in server char(128) ) returns int</p>
<p>				begin</p>
<p>				declare num_tables int;</p>
<p>				declare curs cursor for call sp_forward_to_remote_server( server, &#39;select count(*) from sys.systable&#39; );</p>
<p>				open curs;</p>
<p>				fetch next curs into num_tables;</p>
<p>				close curs;</p>
<p>				return num_tables;</p>
<p>				end</p>
<p>				-- fetch the number of tables from the remote server</p>
<p>				select fetch_num_remote_tables( &#39;rem&#39; )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657528">657528</a></td>
<td>UltraLite will now grow its database file cache when warranted in response to database operations and as available memory allows. The application can also resize the cache explicitly (typically in cases where the application is requested to reduce its memory usage). The &#39;cache_size&#39; connection parameter is now only the initial size. Since the cache will grow on demand, the default value for &#39;cache_size&#39; is smaller than it was previously - in particular, the runtime will no longer try to cache the entire file initially.</p>
<p>				New connection parameters to control the cache size limits are:</p>
<p>				&#39;cache_min_size&#39; - The minimum cache size, in bytes, with k and m suffixes as with &#39;cache_size&#39;.</p>
<p>				&#39;cache_max_size&#39; - The maximum cache size, in bytes, with k and m suffixes as with &#39;cache_size&#39;.</p>
<p>				There are platform and memory size-specific defaults for these values. The default maximum size is limited to 20Mb for devices and 50Mb for desktops. Normally, the application should not have to specify any cache-size parameters.</p>
<p>				The new database option &#39;cache_allocation&#39; is used to explicitly resize the cache. The value is a percentage of the minimum-to-maximum range. A value of zero means the minimum size, and a value of 100 means the maximum size. The &#39;cache_allocation&#39; property returns the current cache size as a percentage value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657530">657530</a></td>
<td>The restrictions on the type of argument datatypes that are allowed in remote procedure calls has now been relaxed considerably. In particular, a remote procedure call can now contain IN parameters of type long varchar, long nvarchar and long binary. In addition, varchar, nvarchar and binary parameters are no longer restricted to 255 bytes. As a result, when defining and using a proxy procedure, you can now use any datatype for IN arguments. However, long varchar, long nvarchar, long binary, numeric and decimal datatypes are still not allowed for OUT parameters, INOUT parameters or RETURN values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657536">657536</a></td>
<td>This change introduces a new performance metric to track the time connections have been connected, adds user-defined performance counters, and changes the scope of some existing performance counters so that they are now available at the connection, database, and server level. These changes improve the ability to monitor a database server running more than one database.</p>
<p>				Property for Connection Time</p>
<p>				A new connection property, ConnectedTime, returns the total length of time in seconds that a connection has been connected. There are also database and server-level versions of the same name; these return the total time that all connections to the database/server have been connected. Two notes of caution for the database and server versions:</p>
<p>				The database and server level properties are updated only when a request completes for the connection or the connection disconnects. The database/server properties can therefore lag behind for connections that are idle or busy executing for a long time in the server. The property is updated only at the end of the operation to reduce the overhead needed to maintain the property.</p>
<p>				The database and server level properties include time accrued by any connection, and this includes database events and background server connections (such as the cleaner)</p>
<p>				User-Defined Counters</p>
<p>				The SA performance counter mechanisms provides a way to monitor statistics in a running server. In some cases, a database application has similar statistics that would be useful to measure when monitoring a performance issue. To that end, new user-defined counters are defined. These are not set by the server, and must be set or incremented explicitly by calling one of two new functions. The counters can be read using any of the methods supported for performance counters (property functions, dbo.sa_performance_statistics(), performance monitor).</p>
<p>				There are two classes of counter, RAW and RATE. The RAW counters are displayed as an absolute value in the performance monitor, while RATE counters are shown by measuring the change of the counter during a measurement interval. For example, a RAW counter would be appropriate for showing the current number of keys remaining in a key pool; this value would fluctuate up and down over time. Alternatively, a RATE counter would be appropriate for showing how quickly keys are being used from a key pool. The counter would increase monotonically over time as keys are used, and the performance monitor would show the rate that keys are used per second.</p>
<p>				The new counters are named UserDefinedCounterRaw01, ..., UserDefinedCounterRaw05 and UserDefinedCounterRate01,...,UserDefinedCounterRate05. These counters are recorded at the scope of connection / database / server.</p>
<p>				Two new functions are provided to increment these values or set them to a new absolute value:</p>
<p>				create function dbo.sa_user_defined_counter_add(</p>
<p>				in counter_name varchar(128),</p>
<p>				in delta bigint default 1,</p>
<p>				in apply_to_con int default 1,</p>
<p>				in apply_to_db int default 1,</p>
<p>				in apply_to_server int default 1 )</p>
<p>				returns int</p>
<p>				internal name &#39;sa_user_defined_counter_add&#39;</p>
<p>				The sa_user_defined_counter_add() system procedure adjusts a user-defined counter by an amount (delta). The counter_name parameter is the text name of the counter to adjust. By default, the counter is adjusted by 1 at the connection, database, and server scopes. The parameters apply_to_con, apply_to_db, and apply_to_server can be either 0 (do not apply) or 1 (do apply) to control the scopes where the delta is applied. To accomodate future expansion, the delta parameter is declared as a bigint. However, values outside of the range of an int generate an error. The function returns 1 if the delta was applied, otherwise 0.</p>
<p>				create function dbo.sa_user_defined_counter_set(</p>
<p>				in counter_name varchar(128),</p>
<p>				in value bigint,</p>
<p>				in apply_to_con int default 1,</p>
<p>				in apply_to_db int default 0,</p>
<p>				in apply_to_server int default 0 )</p>
<p>				returns int</p>
<p>				internal name &#39;sa_user_defined_counter_set&#39;</p>
<p>				The sa_user_defined_counter_set() system procedure changes a user-defined counter to a new value. The counter_name parameter is the text name of the counter to adjust. By default, the counter is set to the specified value at the connection, database, and server scopes. The parameters apply_to_con, apply_to_db, and apply_to_server can be either 0 (do not apply) or 1 (do apply) to control the scopes where the value is applied. To accomodate future expansion, the value parameter is declared as a bigint. However, values outside of the range of an int generate an error. The function returns 1 if the value was applied, otherwise 0.</p>
<p>				Concurrent access to counters are applied atomically so it is safe to increment a counter from multiple concurrent requests or to set a counter from concurrent requests. </p>
<p>				New scope for properties:</p>
<p>				The following properties were previously maintained for a single connection only. In version 12.0.1, these properties are accumulate to the database and engine level, and they can now be retrieved using database_property() and property():</p>
<p>				ApproximateCPUTime -- approximation of CPU time spent by connection/db/server</p>
<p>				ReqCountXXX -- count of times connection entered state XXX={Unscheduled,Active,BlockIO,BlockLock,BlockContention}</p>
<p>				ReqTimeXXX -- total time connection spent in state XXX={Unscheduled,Active,BlockIO,BlockLock,BlockContention}</p>
<p>				The accumulation for these properties is done at the end of a request; this means that executing requests don&#39;t update the database/server properties until the request completes.</p>
<p>				New scope for counters:</p>
<p>				Perviously, some performance counters were defined at scope &quot;con&quot; or &quot;con/eng&quot;. In version 12.0.1., these are instead defined as &quot;con/db/eng&quot; so that the property can be attributed to a particular database when the server is running more than one database. </p>
<p>				Bytes_Received</p>
<p>				Bytes_Received_Uncomp</p>
<p>				Bytes_Sent</p>
<p>				Bytes_Sent_Uncomp</p>
<p>				Carver_Heap_Pages</p>
<p>				Client_Stmt_Cache_Hits </p>
<p>				Client_Stmt_Cache_Misses</p>
<p>				Client_Stmt_Track_Mem</p>
<p>				Client_Stmt_Tracked</p>
<p>				Commit</p>
<p>				Cursor</p>
<p>				Heaps_Carver</p>
<p>				Heaps_Locked</p>
<p>				Heaps_Query</p>
<p>				Heaps_Relocatable</p>
<p>				Open_Cursor</p>
<p>				Packets_Received</p>
<p>				Packets_Received_Uncomp</p>
<p>				Packets_Sent</p>
<p>				Packets_Sent_Uncomp</p>
<p>				Query_Heap_Pages</p>
<p>				Query_Mem_Active_Curr</p>
<p>				Query_Mem_Grant_Failed</p>
<p>				Query_Mem_Grant_Granted</p>
<p>				Query_Mem_Grant_Requested</p>
<p>				Query_Mem_Grant_Waited</p>
<p>				Query_Mem_Grant_Waiting</p>
<p>				Requests_Received</p>
<p>				Rollback</p>
<p>				Statement</p>
<p>				With this change, these counters can now be retrieved using property(), db_property(), or connection_property().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657540">657540</a></td>
<td>The documentation for UltraLite does not specify any side effects for the SET OPTION statement. In version 12.0.0 and earlier, UltraLite always commits as a side effect of setting any option (using the SET OPTION statement or SetDatabaseOption method). As of version 12.0.1, setting an option will only commit for permanent options. These are:</p>
<p>				global_database_id</p>
<p>				ml_remote_id</p>
<p>				Options which are temporary or connection-based by nature do not have a commit side effect. These are:</p>
<p>				commit_flush_timeout</p>
<p>				commit_flush_count</p>
<p>				isolation_level</p>
<p>				cache_allocation</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657542">657542</a></td>
<td>The results of an Entity DAta Model query could have been non-deterministic. For example, having a GridView with the properties &quot;AllowPaging&quot; and &quot;AllowSorting&quot; set to &quot;True&quot;, would have returned a &quot;Result is non-deterministic&quot; warning (SQLCODE 122). This has been fixed by adding an ORDER BY clause to the generated SQL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657551">657551</a></td>
<td>The SQL Anywhere plug-in&#39;s support for viewing and editing permissions has been redesigned for version 12.0.1. Permissions are now viewed and edited from tabs in the right pane of the main Sybase Central window, rather than from property sheets. In addition, the permissions editors for tables, columns and views now distinguish between permissions that were granted by different grantors.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657555">657555</a></td>
<td>Web procedures that use HTTPS are now supported on Windows CE. Note that the CE server still does not support HTTPS as a server protocol (i.e. -xs https), this is only for secure web procedures (i.e. a procedure that consumes a web service from a remote server).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657557">657557</a></td>
<td>HTTP and HTTPS synchronizations are now done using persistent connections by default.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657560">657560</a></td>
<td>Dynamic multiprogramming level (MPL) network server command line options (-gna, </p>
<p>				-gns, -gnl, and -gnh) will now generate an error if they are used on the personal server. For 12.0.0, these options were silently ignored, now for 12.0.1 using any of these options on the personal server will generate the following warning:</p>
<p>				Warning: option X is ignored by Personal Server.</p>
<p>				X can be one of -gna, -gnh, -gnl, or -gns</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657586">657586</a></td>
<td>If a call was made to the Java external environment, and the stored procedure had an argument of type tinyint and a NULL value was passed in for the tinyint argument, then the server would have failed the request with a NullPointerException. It should be noted that the Java VM would continue to run in this situation and the connection was still able to make subsequent Java external environment calls. This problem has now been fixed such that passing a NULL tinyint value to a Java external environment call will result in a byte with zero value being passed down to the Java method.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657621">657621</a></td>
<td>If a server (S2) acting as mirror saw a dropped connection to the primary server (S1) after a temporary network outage, it could have attempted to become primary while S1 was still running. S2 would then have failed during startup because S1 still owned the alternate server name for the database. This error would also have caused S2 to shut down. If S1 needed to restart, it would have been unable to take ownership of the database because S2 was unavailable and the arbiter&#39;s state had been updated to indicate that S2 was the owner. </p>
<p>				Also, when a server acting as primary (S1) accepted an inbound connection from the mirror (S2), S1 attempted to make an asynchronous outbound connection to S2 if one did not already exist. If this connection attempt failed, S2 would have failed to receive updates from S1.</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657712">657712</a></td>
<td>Additional information is now saved for graphical and long plans. This additional information includes:</p>
<p>				- Known values for expressions are now dumped in the plans. For example, a stored procedure parameter known at the optimization time is dumped as &#39;parm1[100]&#39; if its name is &#39;parm1&#39; and its known value is &#39;100&#39;.</p>
<p>				- For long plans generated by the application profiling, extra information related to the optimization process is now dumped. For example, &#39;Plan [ Total Cost Estimate: 3.5657, Costed Best Plans: 1, Costed Plans: 13, Optimization Time: 0.074541, Estimated Cache Pages: 590 ]&#39; This type of information is already present for long plans generated by calling the explanation() function.</p>
<p>				- Information related to the cached plan of a statement is now dumped in its long plan. </p>
<p>				- Predicates used to generate fence posts for a partial index scan are now dumped in the long plans generated by the application profiling. This type of information is already present for long plans generated by calling the explanation() function.</p>
<p>				Also, graphical plans with statistics saved during tracing did not actually contain any statistics. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657720">657720</a></td>
<td>The following enhancements have been made to the events generated by the MobiLink client API:</p>
<p>				1) The DBSC_Event structure now has a new integer field &#39;val3&#39;. As with the other data fields in the structure, the meaning of the value in the val3 field depends on the type of event.</p>
<p>				2) The event, DBSC_EVENTTYPE_DOWNLOAD_COMMITTED now has 2 parameters. In the DBSC_Event structure for the event, val1 contains the number of rows inserted or updated during the download. val2 contains the number of rows deleted by the download.</p>
<p>				3) The new event, DBSC_EVENTTYPE_UPLOAD_START event has been added. The event is generated when dbmlsync begins to send the upload to the MobiLink server.</p>
<p>				4) The new event DBSC_EVENTTYPE_UPLOAD_SENT event has been added. The event is generated when dbmlsync completes sending the upload to the MobiLink server. For synchronizations that use transactional or incremental upload (where the upload is sent as more than 1 segment) a separate UPLOAD_SENT event is generated after each segment is sent. In the DBSC_Event structure for the event, val1 contains the number of insert operations contained in upload, . val2 contains the number of update operations contained in the upload and val3 contains the number of delete operations contained in the upload.</p>
<p>				5) The new event, DBSC_EVENTTYPE_DOWNLOAD_START event has been added. The event is generated when dbmlsync begins to process the download.</p>
<p>				These event changes will apply to the C++ and .NET version of the API. They will also appear in the synchronize_results and synchronizae_parameters tables when the SYNCHRONIZE SQL statement is used.</p>
<p>				All of these new events can be enabled/disabled by using the SetProperty method to set the &#39;enable status&#39; property.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657721">657721</a></td>
<td>There was a memory leak in the iAS ODBC driver for Oracle. The memory leak would have occurred when an application tried to make a connection but the ODBC driver was not able to obtain a valid database connection. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657748">657748</a></td>
<td>When using the Microsoft ODBC Data Source Administrator, an attempt to create a DSN that used a FIPS Certificate may have resulted in a crash. The has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657812">657812</a></td>
<td>A number of read-only scale-out issues have been fixed.</p>
<p>				1) The server could have crashed or otherwise failed in rare cases when one or more read-only scale-out children were added to a node. This could have occurred if one node was stopped or restarted.</p>
<p>				2) If a parent node was restarted and had a lower log offset than it&#39;s child, the child could have shutdown with the message &quot;Database server shutdown due to incompatible files for database mirroring.&quot; Restarting the child node after the parent caught up to primary would succeed. Now the child node no longer stops and the child node will start applying log changes once its parent gets to a higher log offset. </p>
<p>				3) If a parent copy node was started with child nodes already running, a child node and possibly other nodes could have hung.</p>
<p>				4) If a copy node was connected to it&#39;s alternate parent, and then it&#39;s alternate parent stopped, the copy node may have stopped applying updates. The copy should have connected to the primary server to receive updates but was actually not receiving updates. Note that sa_mirror_server_status may show that the node which is not receiving updates is connected, when in fact it was not. Now the copy node will connect to the primary server if neither the parent nor alternate parent servers are available. </p>
<p>				5) An ALTER MIRROR SERVER statement that only changed the alternate parent was ignored until the server being altered was restarted. For example, if ServerC had parent ServerB: </p>
<p>				ALTER MIRROR SERVER &#39;ServerC&#39; AS COPY FROM SERVER &#39;ServerB&#39; OR SERVER &#39;ServerA&#39; </p>
<p>				was ignored by ServerC until it was restarted. Now the alternate parent is effective on the server being altered once it has applied the log offset with the ALTER MIRROR SERVER statement. </p>
<p>				6) Attempting to SET MIRROR OPTION auto_add_server to the alternate server name for the primary server incorrectly resulted in an error.</p>
<p>				7) If read-only scale-out copy nodes had a primary server as their root node, and the primary server failed over to the mirror server, then all client connections to all copy nodes were incorrectly dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657823">657823</a></td>
<td>The fix for Engineering case 620136 did not handle the situation where there was no declared Primary Key in the primary table but there were table, or column, (not nullable) Unique Constraints that permit the addition of foreign keys. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657826">657826</a></td>
<td>When using the Microsoft ODBC Data Source Administrator, a crash may have resulted if an encrypted password had been specified and the &quot;Test Connection&quot; button was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657869">657869</a></td>
<td>If the MobiLink Server&#39;s memory use grew more than 4GB in less than 5 minutes, the TRACKED_MEMORY ppv value would have been incorrect. As a consequence, for all 12.0.1 platforms and non-Windows 12.0.0 platforms, the MobiLink server cache could have erroneously shrunk and not recovered. This has been fixed. A work around is to use a larger -cinit option value, and if the problem persists to disable dynamic cache resizing by specifying the same value for -cmax and -cmin.</p>
<p>				Also, on 12.0.0 for Windows, the cache could have failed to stabilise. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657970">657970</a></td>
<td>As of 12.0.1, a version 12.0.1 EBF can be applied to a version 12.0.0 installation, as long as certain conditions are met. In this case, any 12.0.0 components are upgraded to version 12.0.1. This was happening without warning the user that they will be upgrading to a newer version, rather than just a newer build number. This has been fixed. The installer now warns that the software will be upgraded and asks if the user would like to continue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657979">657979</a></td>
<td>The MobiLink Monitor&#39;s Zoom To Selection menu or toolbar button might not have panned to the selected synchronization until it was used a second time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR657987">657987</a></td>
<td>The server could have crashed, or failed assertion 200114, when processing a LIKE predicate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658114">658114</a></td>
<td>The server would have crashed if a SELECT statement useed the FOR XML EXPLICIT clause, and a null value was used for the CDATA directive. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658121">658121</a></td>
<td>On some Windows machines, attempting to make a TCP connection to a Personal Server on the same machine may have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658130">658130</a></td>
<td>SQL Anywhere web client procedures were not able to proxy https requests. This has been fixed.</p>
<p>				The following example routes an https request destined for &#39;securehost&#39; (default port 443) through a proxy host named &#39;squid&#39; listening on port 8080: </p>
<p>				create or replace procedure test() </p>
<p>				URL &#39;https://securehost/service&#39; </p>
<p>				TYPE &#39;HTTP:GET&#39; </p>
<p>				PROXY &#39;http://squid:8080&#39;;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658169">658169</a></td>
<td>When using the Service utility (dbsvc) for Linux to create an automatic service (when the machine boots) on Linux SUSE 11 for the SQL Anywhere server, the server may have started before the network service had been started. As a result, some applications running inside the SQL Anywhere server may have failed to work properly. This issue would have affected SQL Anywhere Server Monitor deployments. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658189">658189</a></td>
<td>If a copy node (S3) was starting just as its intermediate node parent (S2) was receiving pages from the root (S1), S3 could have failed to receive some of the pages and would have reported a corrupt transaction log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658302">658302</a></td>
<td>If many contiguous index entries were removed from an index with no intervening inserts, concurrent snapshot transactions could have seen incorrect results, and in rare circumstances, foreign rows could have been added without matching primary rows. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658330">658330</a></td>
<td>Execution of an INSERT ON EXISTING UPDATE statement, with CASCADE as the foreign key update option, would have resulted in a foreign key constraint violation error when updating values which were logically the same, but had different physical representation. For example, in case insensitive database changing &#39;EMPLOYEE&#39; to &#39;employee&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658334">658334</a></td>
<td>If a database option value contained a single quote, the reload script generated by the Unload utility would have resulted in a syntax error when the database was reloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658453">658453</a></td>
<td>When using MobiLink synchronization and timestamp-based downloads with an Oracle Real Application Cluster (RAC) system, there is a chance of missing rows to be downloaded if the clocks of the Oracle cluster nodes differ by more than the time elapsed between the MobiLink server fetching the next last download timestamp and fetching the rows to be downloaded. This problem is unlikely on a RAC system with synchronized node clocks, but the likelihood increases with larger node clock differences. A workaround is to create either a modify_next_last_download_timestamp or modify_last_download_timestamp script to subtract the maximum node clock difference.</p>
<p>				Note that at least since version 10i, Oracle has recommended using Network Time Protocol (NTP) to synchronize the clocks on all nodes in a cluster, and NTP typically runs by default on Unix and Linux. With cluster nodes properly configured to use NTP, their clocks should all be within 200 microseconds to 10 milliseconds (depending on the proximity of the NTP server). Since Windows Server 2003, the Windows Time Service implements the NTP version 3 protocol and it runs by default. Also, as of version 11gR2, Oracle Clusterware includes the Oracle Cluster Time Synchronization Service (CTSS) to either monitor clock synchronization or, if neither NTP or Windows Time Service is running, it will actively maintain clock synchronization. However CTSS and Windows Time Service are less accurate than NTP,</p>
<p>				To avoid missing rows when Oracle RAC node clocks differ by up to one second more than the time between fetching the next_last_download_timestamp and the rows to be downloaded, now the MobiLink server will subtract one second from the next_last_download_timestamp fetched from the consolidated database, if</p>
<p>				1) the Oracle account used by the MobiLink server has execute permission for SYS.DBMS_UTILITY,</p>
<p>				2) the consolidated database is an Oracle RAC system,</p>
<p>				and (only for MobiLink version 12.0.0 and up)</p>
<p>				3) there is no generate_next_last_download_timestamp script.</p>
<p>				For Oracle RAC node clocks that may differ by greater amounts, you can avoid the problem by defining a generate_next_last_download_timestamp, modify_next_last_download_timestamp or modify_last_download_timestamp script to compensate for the maximum node clock difference.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658458">658458</a></td>
<td>When editing options for configuration, but not editing Data Reduction, a warning message for Data Reduction was displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658482">658482</a></td>
<td>When a MobiLink Monitor instance that already had a horizontal scroll bar, was connected to a MobiLink server, the Utilization Graph time scale (if Utilization Graph was enabled) would have been different than the Chart time scale. After being connected long enough for the horizontal scroll bar to be redisplayed, the scroll bar position would have been incorrect and the Overview Marquee Tool would have fluctuated between the inconsistent time scales. This has been fixed.</p>
<p>				A workaround is to use the Marquee Tool, or change the zoom to fix the display, or disable the Utilization Graph to prevent the problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658549">658549</a></td>
<td>Result set rows could have been presented in an incorrect order when all of the following conditions were present for a SQL query:</p>
<p>				- An index existed in which the first column (say col1) was specified to be in descending order</p>
<p>				- The query contained a search condition of the form &quot;col1 LIKE expression&quot; where the expression started with non-wildcard characters.</p>
<p>				- The query contained an ORDER BY starting with col1</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658710">658710</a></td>
<td>When the Relay Server was being reconfigured, a crash may have occurred in the rs_client.dll, and all http requests served by the same worker process would have failed. The web server would then have replenished the worker pool and the Relay Server would have continued to operate with the new configuration. The issue is highly timing sensitive and is very difficult to reproduce. This crash has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658834">658834</a></td>
<td>Attempts to apply an EBF install could have erroneously rolled back during the SQL Anywhere Monitor data migration. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658845">658845</a></td>
<td>Result set rows could have been presented in an incorrect order when all of the following conditions were present for a SQL query:</p>
<p>				- An index existed in which the first column (say col1) was specified to be in descending order</p>
<p>				- The query contained a search condition of the form &quot;col1 LIKE expression&quot; where the expression started with non-wildcard characters.</p>
<p>				- The query contained an ORDER BY starting with col1</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658849">658849</a></td>
<td>If an application on a Unix system attempted to make a TCP/IP connection to a server that was not running, the connection attempt may have failed with error code -832 &quot;Found server but communication error occurred&quot;. This has been fixed, the correct error code should be </p>
<p>				-100 &quot;Database server not found&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658860">658860</a></td>
<td>Sybase Central would have crashed when using the QAnywhere plugin to define a property for a connector and the property was given both a blank name and value. Now, the creation of properties with blank names is prevented, as these are meaningless in any case. A message box indicating that the property name must not be empty is displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658887">658887</a></td>
<td>The OLE DB DBSCHEMA_FOREIGN_KEYS rowset returned the following indicated integer values for the UPDATE_RULE or DELETE_RULE referential actions.</p>
<p>				CASCADE 0</p>
<p>				if referential action is NULL 1</p>
<p>				SET NULL 2</p>
<p>				SET DEFAULT and RESTRICT 3</p>
<p>				These values, derived from the ODBC SQLForeignKeys result set, did not match the following OLEDB constants defined for these referential actions.</p>
<p>				DBUPDELRULE_NOACTION = 0x0</p>
<p>				DBUPDELRULE_CASCADE = 0x1</p>
<p>				DBUPDELRULE_SETNULL = 0x2</p>
<p>				DBUPDELRULE_SETDEFAULT = 0x3</p>
<p>				Furthermore, the DBSCHEMA_FOREIGN_KEYS rowset should have returned strings rather than integers for the UPDATE_RULE or DELETE_RULE referential actions. The OLE DB specification states:</p>
<p>				If a rule was specified, the UPDATE_RULE or DELETE_RULE value is one of the following:</p>
<p>				&quot;CASCADE&quot; � A &lt;referential action&gt; of CASCADE was specified.</p>
<p>				&quot;SET NULL&quot; � A &lt;referential action&gt; of SET NULL was specified.</p>
<p>				&quot;SET DEFAULT&quot; � A &lt;referential action&gt; of SET DEFAULT was specified.</p>
<p>				&quot;NO ACTION&quot; � A &lt;referential action&gt; of NO ACTION was specified.</p>
<p>				Providers should return NULL only if they cannot determine the UPDATE_RULE or DELETE_RULE. In most cases, this implies a default of NO ACTION.</p>
<p>				Also, the fix for Engineering case 620136 did not handle the situation when there was no declared Primary Key in the primary table but there were table or column (not nullable) Unique Constraints that permitted the addition of foreign keys.</p>
<p>				These problems have been fixed. The Upgrade utility should be used to update the OLE DB schema rowset support in any database used with ADO, ADOX or OLE DB.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR658985">658985</a></td>
<td>Unexpected deadlocks could have occurred when using the UPDLOCK hint at isolation level 3. For example, if two transactions issued the statements</p>
<p>				SELECT t.c FROM t WITH (UPDLOCK) WHERE t.pk = 1</p>
<p>				UPDATE t SET c = 2 WHERE t.pk = 1</p>
<p>				concurrently at isolation level 3, a deadlock would have occurred if both connections managed to issue the SELECT before either issued the UPDATE. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659115">659115</a></td>
<td>The server may have crashed if a query block contained an alias definition and the expression of the alias used columns that could be folded as a constant, (in the example below, alias v011 can be folded as a constant if column T2.a2 was created as NOT NULL), and the alias name was used in a subselect of the query block and in the GROUP BY clause of the query block.</p>
<p>				For example:</p>
<p>				select if T2.a2 is null then 99999 else 11111 endif as v011,</p>
<p>				(select count(*) from T1 where T1.a1 = v011) as c</p>
<p>				from T2,T3</p>
<p>				where T2.a2 = T3.a3</p>
<p>				group by v011</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659138">659138</a></td>
<td>In exceptionally rare cases, the server may have crashed if two procedure debuggers had been attached to a database and one of them disconnected while a new connect request for a user to debug was being executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659140">659140</a></td>
<td>The text completer may not have suggested any matches if there was an empty single quoted string earlier in the statement, or in a previous statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659177">659177</a></td>
<td>If a non-initialized materialized view or text index was selected in the tree and the Data tab was selected in the right-pane, then attempting to switch from one mode (Design, Debug or Application Profiling) to another would have caused a refresh of the materialized view or text index to be prompted for twice. This has been corrected so that there is now only one prompt.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659337">659337</a></td>
<td>SQL changes in the Plan Viewer and Spatial Viewer windows were ignored if the Editor component had been selected, &quot;Options&quot; was clicked and then dismissed by clicking &quot;OK&quot;. This has been fixed. </p>
<p>				This issue had at least one other symptom: If a file was opened, &quot;Options&quot; for the editor was selected, either by right-clicking as described above or by opening the Options window, then clicked &quot;OK&quot;, subsequent changes in the Editor would not have caused the Interactive SQL utility&#39;s window title text to include an asterisk. The asterisk indicates that there are unsaved changes in the editor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659357">659357</a></td>
<td>Running the Deployment wizard when SQL Anywhere had been installed to directory with a path containing multi-byte characters would have caused the generation of the MSI to fail with an error like: &quot;C:\Sy绛剧讲\SQL Anywhere 12\bin32\dblib12.dll (Not Found)&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659363">659363</a></td>
<td>The Timeout, SendBufferSize, and ReceiveBufferSize TCP options now have upper limits. Values specified above these limits will result in connection failure (-832). The limits are:</p>
<p>				Timeout: 3600 seconds</p>
<p>				SendBufferSize: 1048576 bytes (1 MB)</p>
<p>				ReceiveBufferSize: 1048576 bytes (1 MB)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659370">659370</a></td>
<td>Inlining of simple functions could have generated unexpected errors or incorrect results. For incorrect results to have occurred, the caller of the function had to have variables defined with the same names as the inlined function. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659608">659608</a></td>
<td>When making an external environment call, if the external environment procedure made a server side request that ended up leaving a cursor on a temporary table open, then the server could have crashed when the connection was closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659615">659615</a></td>
<td>Some internal optimization algorithms have been generalized and improved. This may change plans for queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659631">659631</a></td>
<td>If an application enlisted a connection within a DTC transaction and then subsequently attempted to perform a DTC commit on the transaction after explicitly unenlisting it first, then the application would have hung until the server was shut down. This problem has now been fixed and the commit request will now immediately fail as expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659639">659639</a></td>
<td>When making a Java external environment call, if the stored procedure had an argument of type char (note that this is a single char value rather than a java.lang.String), and a NULL value was passed in for the char argument, then the server would have failed the request with a Java NullPointerException. It should be noted that the Java VM would have continued to run in this situation and the connection was still able to make subsequent Java external environment calls. This problem has now been fixed such that passing a NULL char value to a Java external environment call will result in a char with zero value being passed down to the Java method. Again, it should be noted that this problem does not affect passing NULL string values to java stored procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659643">659643</a></td>
<td>An application could have crashed if it was attempting an Integrated Login or Kerberos connection and the connection to the server was lost. This could have occurred if the server was stopped or terminated during the connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659804">659804</a></td>
<td>If a proxy table or proxy procedure was defined with variables in the AT clause, then the AT clause would have been incorrectly truncated if the length of the AT clause after variable expansion was greater than the length of the original AT clause. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659866">659866</a></td>
<td>If an invalid value was specified for the &quot;(other)&quot; parameter on the Synchronization Profile property sheet, then it was not possible to clear this invalid value unless the property sheet was closed and F5 was pressed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659870">659870</a></td>
<td>Empty string values indexed by an IMMEDIATE text index were not counted towards the total number of documents indexed, unless more than one column was indexed and the value in at least one of the columns was neither an empty string nor NULL. This problem caused scores for full text queries to be lower then they should have been if all the documents were correctly counted. Additionally, a memory leak could have occurred in this situation. This has been fixed.</p>
<p>				Note, if a text index was created or updated using a server with this problem, it may be necessary to rebuild the index with an updated server if problems are encountered with the index.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR659922">659922</a></td>
<td>A syntax error could have been incorrectly generated for an outer reference occurring in a subquery containing another nested subquery, where the outer reference was to the right of the nested subquery. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660005">660005</a></td>
<td>If a file was opened in the Interactive SQL utility and then the window was closed, the file would still have been locked by the dbisql process if the &quot;Enable fast launcher&quot; option was on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660024">660024</a></td>
<td>In version 10, web service requests sent to a server acting as mirror would have been redirected to the same port on the primary server. Starting with version 11, this redirection no longer happens. In version 12, the documentation was updated to reflect the change in behavior. </p>
<p>				No change in behavior from earlier builds of version 11 should be seen with this software change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660057">660057</a></td>
<td>If a foreign key was created with both MATCH and CHECK ON COMMIT clauses, and the database subsequently required recovery, recovery would have failed when replaying the statement from the transaction log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660190">660190</a></td>
<td>The folder names under %SQLANYSAMP12%\UltraLiteJ\Android\CustDB used mixed case and in some cases were incorrect in the GA release of 12.0.1. This caused Eclipse to fail when building the sample. This has been fixed such that future remastered releases will use the correct case. However, EBF installs will not fix these incorrect folder names. A workaround is as follows:</p>
<p>				Before attempting to build the sample in Eclipse, ensure that the sub-directory names are as show below. Note that all names are lower case and that hyphens (-) should be used, not underscores (_), where applicable.</p>
<p>				libs</p>
<p>				res</p>
<p>				src</p>
<p>				libs\armeabi</p>
<p>				res\drawable-hdpi</p>
<p>				res\drawable-ldpi</p>
<p>				res\drawable-mdpi</p>
<p>				res\layout</p>
<p>				res\menu</p>
<p>				res\values</p>
<p>				src\com</p>
<p>				src\com\sybase</p>
<p>				src\com\sybase\custdb</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660194">660194</a></td>
<td>Execution of a query on a Directory Access proxy table with a WHERE clause that contained a predicate of the form &quot;file_name = variable&quot;, may have sometimes run very slowly while running very quickly most other times. This problem has now been fixed such that the query performance is now consistently fast from one run to the next.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660204">660204</a></td>
<td>Specifying a TCP timeout value of more than 2147 seconds could have caused connection failures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660211">660211</a></td>
<td>In rare circumstances, calling the system procedures sa_locks, sa_describe_shapefile, st_geometry_dump, sa_list_cursors, or sa_mirror_server_status, could have caused the server to crash, or could have caused unpredictable behaviour. The problem was more likely to have occurred when small cache sizes were used. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660217">660217</a></td>
<td>SQL Anywhere&#39;s SQL Flagger erroneously flagged various syntactic constructions as errors with specific standards (with either Core or Package functionality).These included:</p>
<p>				- the WHILE statement </p>
<p>				- a list of DECLARE statements within a batch, procedure, function, or trigger</p>
<p>				- UNSIGNED exact numeric types</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660235">660235</a></td>
<td>On Windows Vista and later operating systems, whenever a new server executable had to be launched in order to autostart a database, launching the executable may have failed when a relative path to the server executable was specified. For example, dbspawn mybin\dbsrv12.exe -n myserver my.db, or using &quot;...;start=mybin\dbsrv12.exe...&quot; in a connection string, could have fail to launch the server executable. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660248">660248</a></td>
<td>If an application connected via jConnect or Open Client and made an external environment call that returned a result set, then the server may have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_88.htm#CR660263">660263</a></td>
<td>Incorrect results were possible for a deeply nested (at least a depth of three) aggregate subquery. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660387">660387</a></td>
<td>Incorrect results were possible for a deeply nested (at least a depth of three) aggregate subquery. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660428">660428</a></td>
<td>The MobiLink server could have crashed during shutdown if user spawned Java threads printed to System.out or System.err after the ShutdownListeners were notified of shutdown. This has been made much less likely to happen. A work around is to ensure all user threads are stopped before the ShutdownListeners return.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660432">660432</a></td>
<td>Creating a variable with an initial value specified as a host variable did not give a syntax error in some cases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660446">660446</a></td>
<td>Performing a backup with a TRANSACTION LOG RENAME would have caused read-only connections to the database on the mirror server to be dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660501">660501</a></td>
<td>Incorrect results were possible when executing a query with an IN list consisting of a single host variable. This has been corrected.</p>
<p>				The work-around is to rewrite</p>
<p>				expression in ( ? )</p>
<p>				as</p>
<p>				expression = ?.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660611">660611</a></td>
<td>When the MobiLink Replay utility used HTTP, wasn&#39;t providing the correct ml-client-id headers and instead always generated GUIDs. This has been fixed so that the ml-client-id header is now always set to the remote ID.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660629">660629</a></td>
<td>When connected to an ASE 15.5 server and attempting to make a remote request to SQL Anywhere, there was a chance the request would have failed with an &quot;unkown token 35&quot; error. This problem has now been fixed.</p>
<p>				Note that this problem only affected remote requests from ASE to SQL Anywhere. The problem did not affect making remote requests from SQL Anywhere to ASE via Remote Data Access.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660656">660656</a></td>
<td>After updating an external environment object via File-&gt;Update..., the object&#39;s Contents tab would not always have reflected the changes made to the object. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660691">660691</a></td>
<td>When accessing a directory or file using a Directory Access Server, if the name of the directory or file contained a multi-byte character where one of the bytes in the character was 0x5C, then the Directory Access Server would have failed to find the directory or file. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660797">660797</a></td>
<td>During a large (at least 15 MB) data synchronization, the UltraLiteJ native library for Android could have caused a Dalvik VM memory overflow condition similar to the following:</p>
<p>				WARN/dalvikvm(641): ReferenceTable overflow (max=512)</p>
<p>				...</p>
<p>				ERROR/dalvikvm(641): Failed adding to JNI local ref table (has 512 entries)</p>
<p>				...</p>
<p>				ERROR/dalvikvm(641): VM aborting</p>
<p>				The memory overflow condition would have occurred during a Connection.synchronize( SyncParms parms ) call, where a SyncObserver was defined in the SyncParms. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660813">660813</a></td>
<td>If the database was blank padded and the database option Compression was set to be -1, .SQL Remote would have logged the following warning message in its output file:</p>
<p>				Option DBA.Compression contains invalid value -1</p>
<p>				The value -1 is a valid value, it was the blank padding that was causing the option to be treated as invalid. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660834">660834</a></td>
<td>The server could have hung for thirty seconds or more when it was establishing a mirror or diagnostics connection to another server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660851">660851</a></td>
<td>When a primary server lost its connections to both the mirror and arbiter servers as a checkpoint was performed, the database on the primary may not have been recoverable. Typically, it would fail assertion 100904. This has been fixed. </p>
<p>				Similarly, in cases where a primary server lost its connections to both the mirror and arbiter servers as a checkpoint was performed, the next time the primary and mirror servers were connected and attempt to synchronize, the mirror server may have in rare situations reported &quot;Database &quot;&lt;name&gt;&quot; mirroring: database is not compatible with primary; files must be replaced&quot; and then stop with the message &quot;Database server shutdown due to incompatible files for database mirroring&quot;. This has been fixed to reduce the possibility of this occurring. It is possible for this to still occur, so then the database running on the current primary must be manually copied or backed up to the mirror server so that the server can successfully synchronize again. </p>
<p>				The primary server could have hung, again in rare situations, if only one of the two connections between it and the mirror server was dropped, for example due to a liveness timeout. This has been fixed. </p>
<p>				When the mirror server was becoming the primary server there was a small possibility it could have hung after reporting it was starting a checkpoint and then reporting it was recovering. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR660995">660995</a></td>
<td>When connected to a Relay Server, and no Outbound Enabler providing the backend service had connected yet, the connection was expected to timeout within the application timeout time specified by the client. However on IIS7, some J2SE http clients may have become stuck writing to a server that was no longer reading and eventually failed the write and then perform a delayed internal retry without processing the response sent by the web server. This change modifies the Relay Server to provide the expected fail fast experience according to the timeout against such J2SE clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661008">661008</a></td>
<td>Right-clicking on an UltraLite database in the UltraLite Sybase Central plug-in, will show a list of database properties, one of which is the database file name. If the file name contained multi-byte characters, they could have been displayed as mangled characters. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661034">661034</a></td>
<td>Under rare conditions, the server could have hung while executing a query with multiple GROUP BY clauses. This may have occurred when the workload executing on the server suddenly changed (i.e. if many requests arrived almost simultaneously). This has been fixed. A workaround is to disable intra-query parallelism for the affected query (SET TEMPORARY OPTION MAX_QUERY_TASKS=1).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661035">661035</a></td>
<td>When deploying a Synchronization Model for an existing remote database and only deploying to file, the generated Windows batch file would have failed when execute. For example, a &quot;You are not connected to a database&quot; error could have occurred when the batch file tried to apply the generated SQL file to the remote database. This has been fixed.</p>
<p>				To workaround the problem, change this line in the generated batch file:</p>
<p>				set CONNECTION=%1</p>
<p>				to this:</p>
<p>				set CONNECTION=%~1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661036">661036</a></td>
<td>Activity executing on the utility_db could have caused a crash, memory corruption, or other unpredictable behaviour, if the cache were to shrink at the same time. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661066">661066</a></td>
<td>If a range of values was supplied for the TCP/IP option ClientPort, connection attempts may have been slow if the server was not found, or if multiple hosts were supplied for the Host option. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661112">661112</a></td>
<td>It was possible for synchronizations to fail if any of the &#39;certificate_name&#39;, &#39;certificate_company&#39;, or &#39;certificate_unit&#39; parameters were supplied, even though the value of these parameters matched the corresponding field values in the server&#39;s certificate, if they were encoded as Unicode in the server&#39;s certificate. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661180">661180</a></td>
<td>On Linux systems, if the SQL Anywhere Monitor EBF was installed as a non-root user, and the SQL Anywhere Monitor service had been started by the root user, the following error messages would have been displayed: </p>
<p>				Migrating SQL Anywhere Monitor database </p>
<p>				Connecting... </p>
<p>				Can&#39;t connect to source database. </p>
<p>				[Sybase][JDBC Driver][SQL Anywhere]Specified database not found </p>
<p>				Rolling back files in /opt/samonitor12 ... </p>
<p>				wc: ./.ebf_20110601-1149/samonitor.db: Permission denied </p>
<p>				Cleaning up ... </p>
<p>				This has been fixed so that the following error message is now displayed: </p>
<p>				The setup program was unable to stop a running instance of SQL Anywhere Monitor.</p>
<p>				Please stop it manually and run the setup program again. </p>
<p>				A workaround is to stop the SQL Anywhere Monitor service manually, then re-run the EBF installer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661188">661188</a></td>
<td>The 64-bit UltraLite ODBC driver (Bin64\ulodbc12.dll) was not being correctly registered. This would have resulted in the failure of Interactive SQL and/or Sybase Central to load an UltraLite database. The has been fixed.</p>
<p>				Alternatively, the driver can be registered manually using the following command:</p>
<p>				regsvr32.exe %SQLANY12%\Bin64\ulodbc12.dll</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661193">661193</a></td>
<td>Atempting to call a Java external environment stored procedure or function with a very long binary or string input argument, could have taken a very long time to execute. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661198">661198</a></td>
<td>On Fedora 14 Linux systems with SELinux enabled, the SQL Anuywhere Monitor and the Administration tools would have failed to launch. Launching on the command line would have shown an error message like: </p>
<p>				ERROR! Could not load the Java virtual machine DLL: /opt/sqlanywhere/sun/jre160_x86/lib/i386/client/libjvm.so </p>
<p>				This has been fixed. A workaround is to run &quot;setenforce 0&quot; as root.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661225">661225</a></td>
<td>A network environment that was sensitive to HOST header inspection on http traffic, may have caused the Outbound Enabler to fail to connect to the Relay Server, or it may have connected to the wrong server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661242">661242</a></td>
<td>A silent install of SQL Anywhere Monitor in which the location of the database (DIR_SQLANY_MONITOR) was not specified, would have caused the database to be installed to %SystemDrive%\CommonDocFolder. This has been fixed so that the correct default location is now used (%ALLUSERSPROFILE%\Documents\SQL Anywhere Monitor 12).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661431">661431</a></td>
<td>The graph could have displayed data deleted by a maintenance run if it was open when the maintenance plan ran. This is not a bug because the graph only gets new points � not all points. The real bug was the fact that automatic browser refreshes were not happening every hour, just once after the first hour. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661440">661440</a></td>
<td>In rare cases, the server may have crashed while performing DDL and DML operations concurrently. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661453">661453</a></td>
<td>If the distance parameter of the proximity search condition contained letters, the server could have silently failed, and returned some result, instead of reporting an error. This has been fixed.</p>
<p>				For example, the following query would not report an error and would behave as if the</p>
<p>				full text query was &#39;apple NEAR[2] oranges&#39;:</p>
<p>				SELECT *</p>
<p>				FROM t CONTAINS( &#39;apple NEAR[ 2b ] oranges&#39; )</p>
<p>				Note that the following query was correctly reporting an error:</p>
<p>				SELECT *</p>
<p>				FROM t CONTAINS( &#39;apple NEAR[ b ] oranges&#39; )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661459">661459</a></td>
<td>The .NET provider was incorrectly assuming that a Sybase IQ 12.7 server supported the NCHAR datatype. This resulted in a failure to establish a connection to a Sybase IQ 12.7 server. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661493">661493</a></td>
<td>The certificate utilities, Certificate Viewer (viewcert), Certificate Creation (createcert), and Key Pair Generator (createkey), now run on 64-bit Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661622">661622</a></td>
<td>Execution of a query with a subselect predicate correlated on two different tables from the main query block may have caused an assertion failure in the server. This has now been fixed</p>
<p>				For example:</p>
<p>				Select *</p>
<p>				from T1, T2</p>
<p>				where T1.X = (select e1 from R where p(R,T1, T2) ) and ..</p>
<p>				The predicate &quot;T1.X = (select e1 from R where p(R,T1, T2) )&quot; has a subselect and references both tables T1 and T2 from the main query block.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661633">661633</a></td>
<td>Execution of an &quot;UPDATE ... PUBLICATION ... WHERE ..&quot; statement with a complex WHERE clause may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661663">661663</a></td>
<td>For each outgoing HTTPS web procedure connection, a small amount of memory was leaked which could eventually have lead to memory exhaustion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661791">661791</a></td>
<td>A query containing a join between two or more tables could have returned an incorrect result if the executed query plan used an Index-Only Scan of some index T_idx over table T. For the problem to have occurred, a column T.col must have participated in a non-equality join predicate (e.g. &quot;T.col &lt; S.col&quot;, or &quot;T.col BETWEEN S.col1 AND S.col2&quot;), and there must have existed one or more columns in index T_idx preceeding T.col that did not participate in equality predicates. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661849">661849</a></td>
<td>When using the Service utility (dbsvc) to start a Relay Server service with a large configuration on a slow machine, it may have reported startup errors while the service was still in the pending start state. A fix was made to the Relay Server to correct this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR661930">661930</a></td>
<td>In some cases, the UltraLite Database Unload utility (ulunload) would have generated foreign keys in its XML output file that were not really in the database being unloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662000">662000</a></td>
<td>Attempting to insert a variable of type LONG BINARY into a proxy could have taken a very long time, even though the variable was only a few megabytes in length. This problem has been resolved and the performance of inserting LONG BINARY variables into proxy tables has been greatly improved. Note that this fix also improves the performance of inserting LONG VARCHAR and LONG NVARCHAR variables into proxy as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662025">662025</a></td>
<td>In some cases, the server would have displayed recovery progress messages incorrectly when recovering a large transaction log. In this situation, either no messages would have been displayed or an incorrect percentage would have been displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662054">662054</a></td>
<td>When deploying, the directory used by the Interactive SQL utility, Sybase Central, the Console utility, and the MobiLink Monitor, can now be specified. To do this, an OEM.ini file must be deployed along with these utilities. The file must contain the following lines: </p>
<p>				[preferences] </p>
<p>				directory={preferences files directory| </p>
<p>				where &quot;preferences_files_directory&quot; is a fully-qualified directory name, e.g. &quot;c:\work\prefs&quot;. The directory name should not end in a separator (backslash on Windows; forward slash on Unix and Mac OS X). </p>
<p>				Preferences files include: </p>
<p>				.isqlPreferences12_32 </p>
<p>				.isqlPreferences12_64 </p>
<p>				.isqlHistory12 </p>
<p>				.jlogon12 </p>
<p>				.textCompleter12 </p>
<p>				.SybaseCentralEditor610 </p>
<p>				.scUserPreferences610_32 </p>
<p>				.scUserPreferences610_64 </p>
<p>				among others.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662072">662072</a></td>
<td>When deploying a Synchronization Model with conflict resolution to a SQL Anywhere or Sybase IQ database, the SQL generated to create a global temporary table checked twice for an existing table. Although this did not cause any errors, the generated SQL has been fixed so that it now only checks once for an existing table before creating a global temporary table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662074">662074</a></td>
<td>The following UltraLite resumable-download problems are now fixed:</p>
<p>				In rare cases, UltraLite incorrectly computed where to resume the download. When this occurred, the subsequently resumed download was effectively corrupted, likely causing a synchronization error. (To recover, the download must have been rolled back.)</p>
<p>				When resuming a download, the server continued to use the original &#39;timeout&#39; specification, but UltraLite used the default. If a non-default timeout value was specified, the resumed download may have timed out even though the network connection was fine (though it still maked progress).</p>
<p>				Sometimes the sync-info (or sync-result) &#39;partial_download_retained&#39; flag was false after trying to resume a download when there was still a partial download present. (Workaround is to only make use of this flag when first set - attempting to subsequently resume when there is no partial download is safe and returns an error.)</p>
<p>				As well, the following problem is fixed:</p>
<p>				The COMMITTING_DOWNLOAD sync observer state was signaled later than it should have been. The observer saw UltraLite was still receiving the download, when in fact it had begun committing the download.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662232">662232</a></td>
<td>The performance of database changes on first update (commit) after starting up has been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662233">662233</a></td>
<td>The connection properties on the Advanced page of the Connect dialog were not filled when attempting to reconnect following a disconnect. For this problem to have occurred, the IQ plug-in for the Interactive SQL utility would needed to have been loaded. That plug-in is loaded by default starting in version 12.0.1. </p>
<p>				A similar problem affected the TLS packet encryption parameters on the Network page.</p>
<p>				Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662248">662248</a></td>
<td>In rare, timing and data-dependent cases, the server could have hung or crashed during execution of parallel query plans. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662419">662419</a></td>
<td>A mirror node in a mirroring system could have failed to recover its database if the database used sequence generators, and the primary and mirror roles switched between the</p>
<p>				servers. This has been fixed so that servers can now recover logs that exhibit this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662421">662421</a></td>
<td>The nomenclature used to refer to .SQL script files and individual SQL statements has been made consistent throughout the software. This change affects the wording in some error messages, and the following UI elements: </p>
<p>				1. On the &quot;General&quot; panel in the Options window, the first group box title was changed from &quot;Command Files&quot; to &quot;SQL Script Files&quot; and the first checkbox, &quot;Echo command files to log&quot; has been renamed &quot;Echo SQL script files to log&quot;. </p>
<p>				2. The &quot;Commands&quot; tabs in the Options window (there are three of them: one for SQL Anywhere, one for UltraLite, and one for IQ) have been renamed from &quot;Commands&quot; to &quot;Execution&quot;. </p>
<p>				3. The command-line help now clearly refers to SQL statements as &quot;statements&quot; rather than &quot;commands&quot;. </p>
<p>				4. The &quot;Command History&quot; window has been renamed &quot;History&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662452">662452</a></td>
<td>Attempting to start a connection-scoped external environment, and then canceling the start request before the external environment completed the startup process, could have caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662456">662456</a></td>
<td>On a Windows Mobile device, the QAnywhere Agent (qaagent) would have sometimes given the following error messages at start up:</p>
<p>				E. 2011-03-14 08:33:50. Error registering with DBLSN code: -1</p>
<p>				The error message was displayed in a message box, even when qaagent was executed in quiet mode. This has been fixed. Now, qaagent is more tolerant to dblsn slowness at startup. Also, a message box is not displayed when qaagent is executed in quiet mode (-q or -qi), and the message is logged in the qaagent console and log file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662466">662466</a></td>
<td>Some potential security issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662477">662477</a></td>
<td>When resuming a download, the sent and received statistics are restored from the previous sync and continue as expected from that point, except the byte counts, which were reset to zero. This has now been fixed. The byte counts (like the row statistics) are cumulative for resumed downloads. These statistics are available to the synchronization observer callback and are contained in the sync-results object.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662639">662639</a></td>
<td>When a SQL Anywhere database is used as a remote database, the MobiLink client (dbmlsync) generates a remote ID which is a GUID for the database during the first synchronization. This remote ID is used by the Mobilink server to identify the remote. MobiLink keeps a list of synchronizing remotes in the ml_database table. When a blank padded SA database was used as a remote, a remote ID would have been generated during the first synchronization, sent to the MobiLink server and stored in the ml_database table. On all subsequent synchronizations, a blank padded version of the remote id would then have been sent. The results of this were: </p>
<p>				1) The server would not have been recognized on the second sync that the same remote was synchronizing and would treat the second sync as a first sync. That is to say the server would not have used state information it had from the first sync when processing the second. Third and subsequent sync&#39;s were not affected. This would have had no impact unless the first synchronization had failed. </p>
<p>				2) Two entries would have been made in the ml_database table for each remote. One would contain the blank padded remote id and the other would contain the unpadded id. </p>
<p>				This behaviour has now been fixed. Now, on first synchronization the remote_id assigned to the remote database will be blank padded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662749">662749</a></td>
<td>Proxy support for the Relay Server Outbound Enabler may only have worked with HTTPS against some HTTP 1.1 proxy servers. The down channel using HTTP instead of HTTPS would have connected successfully at first but then would have been dropped by the proxy after a period of being idle. This problem is proxy specific and is does not affect all HTTP proxy environments. This problem has been fixed in the Outbound Enabler so that HTTP will now also work. The workaround is to use HTTPS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662766">662766</a></td>
<td>When using the Deployment wizard to build an MSI install containing both 64-bit and 32-bit software, the jvm.dll in the sun\jre160_x64\bin\server directory was being replaced by the 32-bit version. This could have occurred whenever two different files were included with the same name, in a directory with the same name, and with the same parent directory. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662770">662770</a></td>
<td>There were three &quot;Update Checker&quot; tabs in the &quot;Options&quot; window -- one for SQL Anywhere, one for UltraLite, and one for IQ. Now there is just one, and it appears in the list on the left side of the window, after &quot;Compatibility&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662896">662896</a></td>
<td>When using the OLEDB provider, if a statement was prepared, executed, and then the ADO MoveFirst() (OLE DB RestartPosition() ) method was called when the cursor type was forward-only, the statement would have become unprepared. Subsequent attempts to execute the prepared statement would then have failed. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662919">662919</a></td>
<td>The SQL/Stop menu item used to have &quot;Ctrl+Break&quot; as its accelerator. This accelerator has been removed on all platforms except Windows because the accelerator did not work. Ctrl+Break continues to be supported in Windows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662942">662942</a></td>
<td>Charting metric data may have omitted some ending data points. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR662944">662944</a></td>
<td>On Mac OS X, the tool tips for the &quot;zoom in&quot;, &quot;zoom out&quot;, &quot;reset view&quot;, and &quot;save image&quot; buttons in the &quot;Value of Column&quot; dialog indicated that the Control key should be held down to activate the button. This was incorrect, it should have shown the Command key. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663056">663056</a></td>
<td>In exceptional rare situations the server could have crashed or failed assertions 106808, 100913, or 111706 if very long property values are queried. This has been fixed by truncating property values to the max varchar length of 32000 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663061">663061</a></td>
<td>Proxy support for the Relay Server Outbound Enabler may only have worked with HTTPS against some HTTP 1.1 proxy servers. The down channel using HTTP instead of HTTPS would have connected successfully at first but then would have been dropped by the proxy after a period of being idle. This problem is proxy specific and it does not affect all HTTP proxy environments. This problem has been fixed in the Relay Server so that an update to the Outbound Enabler is not required (see Engineering case 662749). The workaround is to use HTTPS, or apply the Outbound Enabler fix from case 662749.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663123">663123</a></td>
<td>Creating an ODBC data source for IQ from the Connect dialog did create a DSN, but it was not created correctly. The following issues have been fixed: </p>
<p>				1. The driver name for the data source was always &quot;SQL Anywhere 12&quot; rather than &quot;Sybase IQ&quot;. This prevented the data source from being listed in the &quot;Data Source Names&quot; window unless you checked &quot;Show all data sources&quot;. Also, to connect using the data source, the SQL Anywhere ODBC driver had to be installed. </p>
<p>				2. Creating a system data source would fail on machines that did not have &quot;dbdsn&quot; installed. This would be a problem on computers running Vista or Windows 7 which have IQ installed, but not SQL Anywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663171">663171</a></td>
<td>The Relay Server may not have responded to HTTP GET requests for non-relay purposes. For example, using a browser to visit the rs_admin extension would have resulted in a connection drop without a response. A load-balancer trying to test the Relay Server service via the rs_server extension, would also have resulted in a connection drop without a response regardless of the status of the relay service. This has been fixed so that a useful response is now provided when HTTP GET requests are issued against various Relay Server extensions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663259">663259</a></td>
<td>The Remote Data Access feature is now capable of loading the SQL Anywhere ODBC driver directly. If a remote server is defined similar to the following:</p>
<p>				CREATE SERVER remote-server CLASS &#39;saodbc&#39; USING &#39;driver=SQL Anywhere Native;...&#39;</p>
<p>				where the the USING clause contains the key pair &quot;driver=SQL Anywhere Native&quot;, and the remainder of the USING clause provides all the connection parameters necessary to successfully connect to the remote SQL Anywhere server, then the remote data access layer will load the SQL Anywhere ODBC driver directly and bypass the Windows ODBC Driver Manager on Windows based platforms and the SQL Anywhere ODBC Driver Manager on UNIX platforms. The benefit to loading the SQL Anywhere ODBC driver directly is that, although the ODBC driver still needs to be installed, it no longer needs to be registered if it is only being used for the remote data access support. What&#39;s more, if there are multiple copies of the ODBC driver installed, then loading the ODBC driver directly will guarantee that the ODBC driver for the current server version gets used rather than one that was registered with a previous version of SQL Anywhere. It should be noted that if the application also makes use of non-SQL Anywhere remote servers or if there are SQL Anywhere remote servers defined without the &quot;driver=SQL Anywhere Native&quot; key pair, then the remote data access layer will still use a Driver Manager for those other remote servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663261">663261</a></td>
<td>The Relay Server Outbound Enabler on MacOS may have failed to receive all download data from the backend server. If Relay Server for Apache was used, then it would have appended a 500 HTTP error page to the data, which most likely would have caused client failure. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663264">663264</a></td>
<td>If executing a statement causes an error, the window which shows the error now includes line numbers beside the SQL statement lines. This can make it easier to see which line caused the error when executing a compound statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663279">663279</a></td>
<td>Clicking the &quot;Stop&quot; toolbar button in the Interactive SQL utility often did not stop execution if many short-running statements were being executed. It did work correctly if executing a single long-running statement. This has been fixed. </p>
<p>				The workaround for this problem is to use the SQL-&gt;Stop menu item, which always works.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663283">663283</a></td>
<td>The server may have chosen less that optimal plans for queries with predicates of the form &#39;T.X=(unknown expression)&#39; if an index on T(X) existed. The &#39;(unknown expression)&#39; could have been, for example, a variable whose value was not used for queries inside the procedures, or could have been a complex expression (i.e. &quot;R.Y+1&quot;). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663307">663307</a></td>
<td>UltraLite now supports the &#39;armv7&#39; architecture when targeting iOS. With the just-released Xcode and SDK versions, the default includes armv7.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663442">663442</a></td>
<td>It was not possible to set the logging verbosity for backend server farms from the Farm property sheet. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663459">663459</a></td>
<td>Attempting to autostart a database server on Windows CE when one was already running was incorrectly giving the error: </p>
<p>				&quot;Unable to start specified database: server exit code -11728&quot; </p>
<p>				(where the number could vary). </p>
<p>				This has been fixed to return the correct error: </p>
<p>				&quot;Database server already running&quot; </p>
<p>				Note that on Windows CE only one database server can be running at a time, even if when attempting to start a second server with a different name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663470">663470</a></td>
<td>On CE devices, if multiple applications were running simultaneously, the library dbdata.dll could have been deployed multiple times to the temp directory. This problem has been fixed.</p>
<p>				Additionally, the version number has been added to the native dll name (i.e. dbdata12.dll). This will allow running multiple versions of the provider simultaneously on Windows CE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663502">663502</a></td>
<td>A new UltraLiteJ utility, ULjExportBuilder, has be added. This utility takes an existing J2SE UltraLiteJ database and produces a more compact file that can be deployed to J2SE or RIM clients. An equivalent database can then be created from the exported file.</p>
<p>				usage: ULjExportBuilder database-file exported-file</p>
<p>				The required two arguments are file names. The database must not be encrypted and must be a shadow-page database (the default).</p>
<p>				To invoke the export functionality from a Java program, create an object com.ianywhere.ultralitej.pgmsutility.ULjExportBuilder (there are no arguments passed to the constructor) and then invoke the export method with one argument which is a two-element String array containing the names of the database and export files respectively.</p>
<p>				The exported file can placed on a client device using, for example, a MobiLink file transfer. The database may be imported using an import method which has three arguments:</p>
<p>				java.io.InputStream which is used to read the exported file</p>
<p>				String to specify the name of the database</p>
<p>				null (no encryption) or an EncryptionControlObject which will be used to encrypt pages within the database.</p>
<p>				(1) On Rim devices the methods are:</p>
<p>				DatabaseManager.importDatabaseFileME (import to a RIM file in flash or on an SD-card)</p>
<p>				DatabaseManager.importDatabaseObjectStore (import to the Rim Object store)</p>
<p>				(2) On J2SE:</p>
<p>				DatabaseManager.importDatabaseFile (import to a file )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663573">663573</a></td>
<td>The SQL Anywhere Monitor&#39;s server console, would have shown the following incorrect error message: </p>
<p>				[Sybase][JDBC Driver][SQL Anywhere]Could not load dynamic library &#39;dbsrvmon11&#39; (SQLCODE: -620, SQLSTATE: HY000) </p>
<p>				An incorrect version number being assigned when a monitor object was removed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663596">663596</a></td>
<td>Attempting to insert a variable of type long binary, varchar or nvarchr into a proxy or IQ table that had been generated using the REPEAT() function could have caused an incorrect value to be inserted. It should be noted that this problem would only have occurred if the fix for Engineering case 662000 had already been applied. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663629">663629</a></td>
<td>When replaying a recorded protocol file more than once with the same client without using the 朼p option, all replay sessions after the first would have failed due to a progress mismatch warning received from the MobiLink server (this is expected). However, the error message that appears in the MLReplay log in this situation does not make it clear that the problem will disappear if the 朼p option is used. So, the MobiLink Replay utility has been changed so that when it receives an unexpected progress mismatch from the MobiLink server, an error message saying so is logged, which points the user to use the 朼p option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663786">663786</a></td>
<td>The Server Enumeration utility (dblocate) may have failed to list some running database servers if many (over around 50) servers were running in the TCP/IP subnet. This problem was more likely if the -d option (&quot;brief list of databases running on each server&quot;). This has been fixed by increasing the UDP receive buffer size used by dblocate. For some Unix/Linux operating systems, in order for this change to take effect, the system maximum UDP receive buffer size may need to be increased. On Linux, this can be done by increasing the sysctl net.core.rmem_max setting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663835">663835</a></td>
<td>When the Outbound Enabler shut down, on going client requests may have taken 3 times the application timeout value to abort. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663936">663936</a></td>
<td>On Unix systems, the second field in the Relay Server&#39;s log, which is the thread ID, may shown a negative number. The type used to store the thread ID value was not big enough on Unix systems, as thread IDs tend to be large, and could have overflowed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663937">663937</a></td>
<td>In the Interactive SQL utility, setting the &quot;on_error&quot; option to &quot;continue&quot; was not preventing warnings from being displayed in a popup window. This has been corrected so that when the option is set to &quot;continue&quot;, warnings are now displayed in the &quot;Messages&quot; pane.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663940">663940</a></td>
<td>In very rare cases, a spatial query that applied one of the following methods to a complex geometry value may have returned an incorrect result, or an error:</p>
<p>				1. all set operations: ST_Union, ST_Intersection, ST_Difference, ST_SymDifference</p>
<p>				2. certain aggregation functions: ST_UnionAggr, ST_IntersectionAggr</p>
<p>				3. certain spatial predicates: ST_Intersects, ST_Overlaps, ST_Within, ST_Disjoint, ST_Touches, ST_Crosses, ST_Contains, ST_Relate</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663987">663987</a></td>
<td>The Relay Server Outbound Enabler is now able to initiate SSL connections to the backend server. In the -cs option, HTTPS=1 is used to enable an SSL connection to the backend server. When SSL is enabled, the -cs option can take the values &#39;trusted_certificates&#39;, &#39;identity&#39; and &#39;identity_password&#39; for server and/or client authentication.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR663991">663991</a></td>
<td>Under some circumstances, queries with cached plans and queries containing complex correlated subqueries may have returned incomplete results if they were executed as parallel plans. This has been fixed.</p>
<p>				Note, a workaround is to disable intra-query parallelism (set MAX_QUERY_TASKS=1).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664139">664139</a></td>
<td>When a Relay Server starts up, its description was logged and the startup verbosity was applied properly, but those values were not stored correctly for later consumption. Such as for the admin tool to export the configuration or for the next configuration update to properly determine if an updated was required. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664140">664140</a></td>
<td>Sometime the MobiLink Listener (dblsn) could have taken a few minutes to shutdown if the shutdown was initiated by the QAnywhere Agent (qaagent). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664247">664247</a></td>
<td>If the system procedure sa_get_user_status() was run on a database with an extremely high number of user definitions, the procedure would have blocked DDL statements and could not have been cancelled until its result had been materialized. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664280">664280</a></td>
<td>In some cases, a sub-select that had no outer references, or a user defined function with no non-constant parameters in the select list, was evaluated when the column was first fetched from a cursor. Now these expressions are evaluated as soon as the row is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664283">664283</a></td>
<td>Relay Server enable/disable events were not broadcast to connected Outbound Enablers. For example, disabling the last Relay Server from a Relay Server farm was not going to suffer the issue described in Engineering case 664284, but when adding a Relay Server to the Relay Server farm, it would also not have woken up the Outbound Enablers to start utilizing the new Relay Server. The user workaround is to restart the Outbound Enabler. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664284">664284</a></td>
<td>The Relay Server Outbound Enabler would have stopped discovering Relay Servers after the last Relay Server was disabled from a server farm. The Outbound Enabler would have become unusable until restarted. This is fixed so that the Outbound Enabler will now attempt to discover new Relay Servers at the rate specified by the existing Outbound Enabler -d switch.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664292">664292</a></td>
<td>In rare situations, the server could have crashed if a log truncation or rename (dbbackup -x or -xo or -r) took place while the server was processing a large number of transactions, especially long-running transactions. This has been fixed.</p>
<p>				No workaround for this problem is known, except to avoid performing log truncation or renaming when the server is handling large numbers of inserts, updates or deletes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664348">664348</a></td>
<td>In very rare timing dependent cases, the server could have crashed or hung on shutdown if there were active client requests during shutdown. The databases would have already been stopped before the failure, so there was no chance of data loss. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664390">664390</a></td>
<td>End-to-end encryption (e2ee) has been added to UltraLiteJ for the Android platform. This was accomplished by using the new methods in the StreamHTTPSParms interface:</p>
<p>				void setE2eePublicKey( String file_name )</p>
<p>				String getE2eePublicKey()</p>
<p>				The file_name is the name of an RSA public key file used in the encryption.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664490">664490</a></td>
<td>Cancelling a query that referenced spatial functions could have caused the server to crash, although the probability was exceedingly small. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664506">664506</a></td>
<td>Steady Relay Server metrics, like peak values, values associated with idle farms, and idle error counts, may not have shown correctly in graphs inside the SQL Anywhere Monitor. The work around is to view them as current values instead of graphing. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664507">664507</a></td>
<td>ULDataAdapter class may have reported the error SQLE_TOO_MANY_TEMP_TABLES even if the Dispose() method was invoked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664633">664633</a></td>
<td>A synchronization using FIPS end-to-end-encryption could have corrupted a FIPS encrypted UltraLite database. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664681">664681</a></td>
<td>Server may have hang unexpectedly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664695">664695</a></td>
<td>In rare situations, the server could have erroneously reported the error &quot;Not enough memory&quot; at startup. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664702">664702</a></td>
<td>Queries using the spatial cast function TREAT( type1 AS type2 ) could have failed to return a syntax error when it was used incorrectly, and instead could have returned meaningless result sets. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_89.htm#CR664865">664865</a></td>
<td>In rare timing dependent cases, after a primary server relinquished ownership and had became the mirror server, it may not have received log page updates from the new primary. A high availability primary server relinquishes ownership when the partner is preferred, or due to a ALTER DATABASE SET PARTNER FAILOVER statement. If this problem occurred, restarting the mirror server would have caused it to start receiving log updates again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_90.htm#CR665004">665004</a></td>
<td>When trying to connect using the Ruby DBI interface, the driver did not raise an error if the username/password was invalid. Instead it silently failed. This has been fixed.</td>
</tr>
</tbody>
</table>
<p>--EOF</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">https://www.dbainfo.net/sap-asa-cr-number-6.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SAP SQL Anywhere的所有已知BUG列表（6）</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-10.htm" title="SAP PB Enterprise的所有已知BUG列表（10）">SAP PB Enterprise的所有已知BUG列表（10）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-9.htm" title="SAP PB Enterprise的所有已知BUG列表（9）">SAP PB Enterprise的所有已知BUG列表（9）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-8.htm" title="SAP PB Enterprise的所有已知BUG列表（8）">SAP PB Enterprise的所有已知BUG列表（8）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-7.htm" title="SAP PB Enterprise的所有已知BUG列表（7）">SAP PB Enterprise的所有已知BUG列表（7）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-6.htm" title="SAP PB Enterprise的所有已知BUG列表（6）">SAP PB Enterprise的所有已知BUG列表（6）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-5.htm" title="SAP PB Enterprise的所有已知BUG列表（5）">SAP PB Enterprise的所有已知BUG列表（5）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-4.htm" title="SAP PB Enterprise的所有已知BUG列表（4）">SAP PB Enterprise的所有已知BUG列表（4）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-3.htm" title="SAP PB Enterprise的所有已知BUG列表（3）">SAP PB Enterprise的所有已知BUG列表（3）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-2.htm" title="SAP PB Enterprise的所有已知BUG列表（2）">SAP PB Enterprise的所有已知BUG列表（2）</a> (1)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-1.htm" title="SAP PB Enterprise的所有已知BUG列表（1）">SAP PB Enterprise的所有已知BUG列表（1）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sap-asa-cr-number-6.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP SQL Anywhere的所有已知BUG列表（5）</title>
		<link>https://www.dbainfo.net/sap-asa-cr-number-5.htm</link>
		<comments>https://www.dbainfo.net/sap-asa-cr-number-5.htm#comments</comments>
		<pubDate>Sat, 07 Mar 2015 17:01:17 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[CR]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2854</guid>
		<description><![CDATA[随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。 只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。 考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。 在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。 需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。 以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！ 不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。 SQL Anywhere的所有已知BUG列表（1） SQL Anywhere的所有已知BUG列表（2） SQL Anywhere的所有已知BUG列表（3） SQL Anywhere的所有已知BUG列表（4） SQL Anywhere的所有已知BUG列表（5） SQL Anywhere的所有已知BUG列表（6） SQL Anywhere的所有已知BUG列表（7） SQL Anywhere的所有已知BUG列表（8） &#160; CR Number Description 542516 Shutting down the Relay Server Outbound Enabler could [...]]]></description>
			<content:encoded><![CDATA[<p><base target="_blank" /></p>
<p>随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。<br />
	只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。<br />
	考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。<br />
	在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。<br />
	需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。<br />
	以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！<br />
	不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。</p>
<p><a href="https://www.dbainfo.net/sap-asa-cr-number-1.htm">SQL Anywhere的所有已知BUG列表（1）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-2.htm">SQL Anywhere的所有已知BUG列表（2）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-3.htm">SQL Anywhere的所有已知BUG列表（3）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SQL Anywhere的所有已知BUG列表（4）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SQL Anywhere的所有已知BUG列表（5）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SQL Anywhere的所有已知BUG列表（6）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SQL Anywhere的所有已知BUG列表（7）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SQL Anywhere的所有已知BUG列表（8）</a><br />
	&nbsp;</p>
<table align="left" border="1" cellpadding="0" cellspacing="0" style="table-layout: fixed; word-break:break-all; word-wrap: break-all;" width="100%">
<tbody>
<tr align="center">
<td width="11%">CR <br />
				Number</td>
<td>Description</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542516">542516</a></td>
<td>Shutting down the Relay Server Outbound Enabler could have caused the communication error message: &quot;Communication error! Failed reading.&quot; to be logged in the Relay Server log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542519">542519</a></td>
<td>If an application made a large number of remote calls to fetch data from a JDBC based Remote Data Access server, then there was a chance the server would have crashed. For this problem to have occurred, the remote table and/or column names must have been longer than 30 characters. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542521">542521</a></td>
<td>On Unix systems, when an application crashed, rather that aborting or exiting, it may have gone intio a state of 100% CPU utilization. This would have occurred when the following conditions occurred in order:</p>
<p>				1. The application loaded one of SQL Anywhere&#39;s client libraries (JDBC driver, ODBC </p>
<p>				driver, DBLIB), which automatically install a signal handler.</p>
<p>				2. The application installs its own signal handler function</p>
<p>				3. An application fault happens which causes the application&#39;s signal handler to call the SA signal handler. </p>
<p>				The SA signal handler will return without causingan abort and the application fault would have been re-triggered. The re-trigger of the signal and the return without handling the signal generated 100% CPU utilization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542522">542522</a></td>
<td>In rare cases, executing an invalid ALTER PROCEDURE statement could have caused a server crash or an incorrect error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542523">542523</a></td>
<td>It was possible for a mirroring connection (i.e. a connection from one server to another server in a high availability configuration) to have failed with no error message being written to the console. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542524">542524</a></td>
<td>If an application on a Unix system used the iAnywhere JDBC driver to connect to a DB2 server using a 64-bit DB2 ODBC driver, then calling the Connection.getTransactionIsolationLevel() method may have crashed the client. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542528">542528</a></td>
<td>An application using the iAnywhere JDBC driver may have in rare cases received a Null Pointer Exception when calling Connection.close(). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542622">542622</a></td>
<td>If a database contained userids which had been assigned non-default login policies, running the Extraction utility (dbxtract) would have generated a reload script containing references to those users, even though some of them might not be defined in the extracted database. This has been fixed.<span id="more-2854"></span></td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542634">542634</a></td>
<td>In a MobiLink farm environment with Server-Initiated Sychronization, when the secondary notifier was under stress, it may have failed to have been promoted to the primary. This would have resulted in an I/O exception being thrown whenever a push or pollnow request arose. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542656">542656</a></td>
<td>When run on Windows Vista systems, selecting &quot;Make Interactive SQL the default editor for .SQL files and plan files&quot; in the &quot;Options&quot; dialog, did not make Interactive SQL the default editor. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542763">542763</a></td>
<td>UltraLite databases could have grown unnecessarily when blobs and clobs were updated. Pages from blobs/clobs on deleted rows were not bing properly released. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542768">542768</a></td>
<td>Incorrect parameters to the system functions LEFT(), RIGHT() and INSERTSTR() could have caused a Java exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542812">542812</a></td>
<td>If the Administration Tools were the only components installed, the tools would not run correctly, eg., Sybase Central would fail to load the SQL Anywhere plugin. The jodbc.jar file was not being installed. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542825">542825</a></td>
<td>SQL Anywhere attempts to create a single physical data structure when multiple indexes on the same table are created with identical properties. The dbspace id recorded in the catalog for a newly created index referred to the dbspace id for the new logical index instead of the dbspace id of the existing physical index shared by the new index. This problem has been corrected, and the server will now record the dbspace id of the existing index whenever sharing takes place.</p>
<p>				Note, existing databases with this problem can be corrected by dropping and recreating the logical indexes sharing a physical index. Whether or not an existing database has an instance of this problem can be determined by checking the physical_index_id and the file_id fields of the system view SYS.SYSIDX. The problem cases exist in a database when two indexes on the same table have the same physical_index_id values but their file_id values differ.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542840">542840</a></td>
<td>If a Disconnect event was defined and a connection was dropped using DROP CONNECTION, the value of event_parameter(&#39;DisconnectReason&#39;) would have been incorrect when evaluated inside the event handler. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542868">542868</a></td>
<td>In rare circumstances the server could have hung updating a blob column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542949">542949</a></td>
<td>Sybase Central would sometimes have failed to populate the All Connected Users tab and failed to graph statistics on the Performance Monitor tab. These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542959">542959</a></td>
<td>The Interactive SQL utility&#39;s (dbisqlc) OUTPUT statement was incorrectly using the value (NULL) for null values, instead of using a blank value. This has been fixed.</p>
<p>				This can be worked around by using dbisql or by correcting the output_nulls Interactive SQL option using the statement:</p>
<p>				set option output_nulls = &#39;&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542962">542962</a></td>
<td>On a busy server, if an application made an external environment or Java call which could have resulted in a thread deadlock error, there was a small possibility that the server would have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542967">542967</a></td>
<td>If the Unload utility (dbunload) was used to unload an existing database with comments on text indexes or text configurations, the comments were not unloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542977">542977</a></td>
<td>If a connection was using the CLR External Environment, and the CLR External Environment was left idle for ten minutes or so, then that connection would no longer have been able to make CLR calls, even though other connections were able to use the CLR External Environment without difficulty. This problem has now been fixed.</p>
<p>				Note that a simple workaround to the problem is to execute:</p>
<p>				STOP EXTERNAL ENVIRONMENT CLR</p>
<p>				on the connection that is having difficulty executing CLR calls. Unfortunately, stopping the CLR External Environment will have the side effect of dropping all static variables for that particular connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543002">543002</a></td>
<td>An HTTP server response returning an error status, such as &quot;404 Not Found&quot;, was returned in the server&#39;s language and the Content-Type header incorrectly specifies charset=ISO-8859-1. This has been fixed so that HTTP status messages are now always returned in the English language. Therefore the Content-Type header charset=ISO-8859-1 will now be correct.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543006">543006</a></td>
<td>If an application was using a JDBC based Remote Data Access server to fetch long multi-byte string data, then there was a possibility the server would have crashed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543011">543011</a></td>
<td>If the Windows desktop was used to associate &quot;.sql&quot; files with the Interactive SQL utility (dbisql), double-clicking a &quot;.sql&quot; file would probably not have launched dbisql. This has been fixed so that now it does, as long as the desktop was told to open the file with &quot;dbisql.exe&quot; (i.e. NOT &quot;dbisql.com&quot;). Before this change, the only reliable way to associate .SQL files with dbisql was to use the &quot;Make Interactive SQL the default editor...&quot; check box in the &quot;Options&quot; window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543069">543069</a></td>
<td>The server could have leaked memory, possibly leading to an &#39;Out of Memory&#39; error, when using TDS connections (eg. jConnect) that fetched string data. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543100">543100</a></td>
<td>The table editor would have allowed marking all columns in a table for deletion. If this was attempted in multiple operations; that is, by selecting some of the columns and pressing the Delete key, and then selecting the remaining columns and pressing the Delete key again. In such cases, attempting to save the table would have failed while attempting to delete the last column in the table. This has been fixed. Now it is no longer possible to mark all columns for deletion. Attempting to do so displays an error message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543127">543127</a></td>
<td>After executing the Unload utility (dbunload) with the -d option (data only), the resulting reload.sql file would have contained calls to the non-existent function sa_unload_display_table_status(). The same problem would have occurred when using the Sybase Central Unload wizard and chosing &quot;Unload data only&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543135">543135</a></td>
<td>When the Interactive SQL utility (dbisql) was started with the -q &quot;Suppress non-critical messages&quot; command line option, it did not suppressing the following warnings:</p>
<p>				- &quot;Interactive SQL is currently configured to quit if a SQL statement fails to execute&quot;</p>
<p>				- &quot;You are connected to an database which is not explicitly supported&quot;</p>
<p>				- &quot;ODBC tracing is currently enabled&quot;</p>
<p>				This has been corrected and these warnings are now suppressed when &quot;-q&quot; is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543210">543210</a></td>
<td>Queries with a large number of aggregate expressions in the select list, but without a GROUP BY clause, could have crashed the server. This has been fixed.</p>
<p>				A workaround for this problem is to add a GROUP BY clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543216">543216</a></td>
<td>The Schema Painter would have failed to save schema if it contained multibyte characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543231">543231</a></td>
<td>The OK button on the &quot;Connect&quot; dialog could have failed to do anything if all of the following were true:</p>
<p>				1. The &quot;Fast launcher&quot; option was enabled</p>
<p>				2. The &quot;Connect&quot; window was opened and left open in one DBISQL window</p>
<p>				3. A &quot;Connect&quot; window was opened and closed from another DBISQL window</p>
<p>				This has been fixed. To workaround the problem, close the &quot;Connect&quot; window and reopen it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543245">543245</a></td>
<td>In certain configurations, executing the REMOTE RESET statement can cause the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543248">543248</a></td>
<td>If a comment was created for a primary key, the comment would not have been unloaded by the Unload utility (dbunload). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543254">543254</a></td>
<td>The value for the &quot;EncryptedPassword&quot; connection parameter was visible in clear text on the &quot;Advanced&quot; page of the &quot;Connect&quot; window. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543261">543261</a></td>
<td>The server could have hang while concurrently updating blob columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543272">543272</a></td>
<td>Second and subsequent connections from a single application may have used TCP/SPX options specified by the first connection made by that application using the same protocol. This could potentially have resulted in a connection being made to the wrong server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543367">543367</a></td>
<td>Clicking the &quot;Options&quot; button in the Query Editor window did not automatically select the &quot;Query Editor&quot; tab in the &quot;Options&quot; window as it did in previous versions of Interactive SQL. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543375">543375</a></td>
<td>Failure of a statement which was partially executed and involved either clobs or blobs, could have caused unneccessary database growth. Blobs and clobs were not being correctly discarded following statement failure. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543380">543380</a></td>
<td>Clicking the &quot;Create a synchronization subscription&quot; task for a MobiLink user would have caused nothing to happen. Now, the &quot;Create Synchronization Subscription Wizard&quot; is opened.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543391">543391</a></td>
<td>A security flaw in the MobiLink server was fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543394">543394</a></td>
<td>An INSERT, UPDATE or DELETE statement executed on a table with an IMMEDIATE text index could have caused correctness issues for subsequent CONTAINS queries that used the text index. For the problem to have occurred, very long string values (over 32K characters) had to have been indexed by the text index and modified by the INSERT, UPDATE or DELETE statement. This has been fixed.</p>
<p>				For existing databases with IMMEDIATE text indexes that could be affected by this issue, dropping and recreating the text index is recommended.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543397">543397</a></td>
<td>If an application was connected via jConnect and attempted to query the column metadata of a table containing a DATE or TIME column, then the server would have incorrectly returned the error -186 &#39;Subquery cannot return more than one row&#39;. When support for the TDS DATE and TIME datatypes was added, the metadata information in spt_jdatatype_info was not properly updated. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543478">543478</a></td>
<td>In very rare circumstances, an auto-shutdown of a database could have caused the server to crash, if the server was in the process of shrinking the cache at the same time. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543491">543491</a></td>
<td>Sybase Central could have crash while attempting to fetch the messages for a server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543518">543518</a></td>
<td>The SQL Anywhere http option &quot;AcceptCharset&quot; generated a SQL error with &quot;SQLCODE -939 Invalid setting for HTTP option&quot; when a match was not found within the union of the client&#39;s Accept-Charset list and the server&#39;s AcceptCharset http option charset list. This has been fixed.</p>
<p>				With this change a SQL error is now generated only if the http option value is malformed or none of the charsets within the value are supported by SQL Anywhere. In addition, the run-time selection of a suitable response charset has changed to provide more control over the charset selection. Primarily, given that the union of server and client charset lists are empty, a charset is now selected based on the server&#39;s AcceptCharset http option value not from the client&#39;s Accept-Charset request header. The old behaviour is supported by allowing an asterisk (*) to be specified within the AcceptCharset http option list. An asterisk has the meaning that, should the client/server charset union be empty, try to use the preferred charset specified by the client. If none are found, then select from the server&#39;s AcceptCharset http option list. A summary of the processing priority of the various cases follow:</p>
<p>				Processing Priority cases:</p>
<p>				1 - If a charset can be selected from the union of charsets from the AcceptCharset http option and the Accept-Charset HTTP request header, then it will be used (no change in behaviour).</p>
<p>				2 - If the client sends an Accept-Charset HTTP request header, but none of the charsets match the AcceptCharset http option, then use the first and/or highest q-value charset specified within the AcceptCharset http option. (This is a behaviour change).</p>
<p>				3 - If the client does not send an Accept-Charset HTTP request header, select the first and/or highest q-value charset specified within the AcceptCharset http option (no change in behaviour).</p>
<p>				Caveats:</p>
<p>				a. Within the AcceptCharset http option value, the placement of the &#39;+&#39; token (which specifies the use of database charset whenever possible regardless of the q-value assigned to it by the client) is now significant. If &#39;+&#39; is specified anywhere within the http option value then case 1) will be true if the client happens to specify the database charset. If &#39;+&#39; is specified first and/or it has the highest q-value, then cases 2) and 3) above would resolve to using the database charset.</p>
<p>				b. Within the AcceptCharset http option value, an asterisk (*) signifies that any client charset (as specified by its Accept-Charset HTTP header) should be considered prior to defaulting to the http option charset list. The best match within the union of client/server charsets ( case 1) ) has priority. In the processing priority cases above, having failed case 1) the client&#39;s Accept-Charset is scanned for a suitable charset. If a suitable charset is not found, then a charset is selected according to case 3). </p>
<p>				c. SQLCODE -939 error is only generated if the http option value is malformed or none of the specified charsets within its value is supported by SQL Anywhere. The database charset is selected whenever a SQLCODE -939 error is generated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543525">543525</a></td>
<td>Issuing a REMOTE RESET, or granting REMOTE to a user, when the log offset was larger than 4GB could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543541">543541</a></td>
<td>If an application was connected via the iAnywhere JDBC driver, and the application had made DatabaseMetaData calls, then calling Connection.close() would have given a NullPointerException if the server has already closed the connection. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543548">543548</a></td>
<td>The version number built into the UltraLiteJ.jad file for RIM BlackBerry deployment would sometimes have been incorrecting generated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543552">543552</a></td>
<td>In a scenario where a table had a large number of initial inserts followed by a large number of deletes, inserts or updates, where the number of deletes that had taken place were always greater than the number of inserts, the database may have become corrupted. These operations may have occur via program initiated operations, or via synchronization operations. This has been fixed. Existing databases that have not yet been corrupted will be fixed when the UltraLiteJ library is updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543562">543562</a></td>
<td>If an application was connected using jConnect and attempted to fetch a result set containing a large number of columns (more than 3000), then the application would have failed with a TDS protocol error. This problem has now been fixed. </p>
<p>				Note, that in order to fetch such a result set, the application must be using jConnect 6.x.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543631">543631</a></td>
<td>If a simple statement was executed with a particular form of ORDER BY clause, then the server could have crashed while executing the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543647">543647</a></td>
<td>The REFRESH MATERIALIZED VIEW statement is used to rebuild the contents of a materialized view. When this statement was used inside a stored procedure, execution of the procedure could have caused the server to crash under certain circumstances. This problem has been corrected, and the server now executes the stored procedure correctly. The problem can be avoided by using EXECUTE IMMEDIATE with the REFRESH statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543652">543652</a></td>
<td>The stored procedure debugger would not allow breakpoints to be set within triggers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543656">543656</a></td>
<td>A database that had gone through recovery after an abnormal shutdown could have been unreadable by the MobiLink Client dbmlsync. Dbmlsync would have reported that the transaction log was corrupt, even though the server successfully recovered. At the end of recovery, the server performs a checkpoint. This checkpoint was correctly updated in the database and written to the transaction log, but was not being flushed to the log properly. This has now been fixed.</p>
<p>				The original crashed database will need to be recovered with the fixed server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543658">543658</a></td>
<td>If the property sheet for a column was opened and its comment updated when an index or text index was selected in the tree, then the updated comment would not have appeared in the right pane. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543689">543689</a></td>
<td>Sybase Central could have crashed, if when attempting to change a table&#39;s primary</p>
<p>				key from within the Table Editor the primary key was dropped, but could not be re-created. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543694">543694</a></td>
<td>When using Snapshot isolation, WITH HOLD cursors would have failed to see rows modified by their own connection after the connection executed a COMMIT. This has been fixed so that when using Snapshot, Statement-Snapshot or Readonly-Statement-Snapshot isolation, </p>
<p>				WITH HOLD cursors will see a snapshot of all rows committed at the snapshot start time, as well as all modifications done by the current connection since the start of the transaction within which the cursor was open.</p>
<p>				Note that the contents of the cursors are unaffected by the current transaction committing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543695">543695</a></td>
<td>Output parameters for stored procedure calls that were marked as indirect (DBTYPE_BYREF) were not handled properly by the SQL Anywhere OLE DB provider. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543803">543803</a></td>
<td>On the &quot;Request Logging&quot; page of a server&#39;s property sheet, the drop-down list adjacent to the &quot;All connections to the following database:&quot; radio button would actually have listed connections, not databases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543812">543812</a></td>
<td>If a user caused an event to fire, e.g. by disconnecting to fire a Disconnect event, and another user immediately caused that user to be dropped, the server would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543814">543814</a></td>
<td>The ansi_substring option, which was removed in the 11.0.0 release, has been re-instated. The default value for the option is ON, as it was in version 10. For databases created with 11.0.0 where the option did not exist, a setting for PUBLIC.ansi_substring must be defined before attempting to set the option for another user and before executing &quot;set temporary option ansi_substring ...&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543826">543826</a></td>
<td>If an application called sp_remote_columns to determine the domain ids of an UltraLite table, and the UltraLite table contained a UniqueIdentifier column, then the domain id of the uniqueidentifer column would have been incorrectly returned as Char. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543835">543835</a></td>
<td>The functions YEARS(), MONTHS(), WEEKS(), DAYS(), HOURS(), MINUTES(), and SECONDS() could have been described with the incorrect data type. If these functions were used with two parameters with the second parameter an untyped expression, then the expression was assigned the incorrect data type. Untyped expressions include NULL constant literals and host variable that are not yet bound to a type, for example during DESCRIBE.</p>
<p>				For example, the following expression was incorrectly described as TIMESTAMP (it should be INT):</p>
<p>				select months( current timestamp, NULL )</p>
<p>				This incorrect type could have affected more complex expressions composed with one of the affected functions as an argument. This problem has been fixed.</p>
<p>				Note, this change could alter the definition of materialized views; views containing the affected constructs should be refreshed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543888">543888</a></td>
<td>The SQL Anywhere OLE DB provider did not support multiple parameter sets in the ICommand::Execute method. The number of parameter sets is specified in the cParamSets field of the DBPARAMS structure, for example:</p>
<p>				HRESULT Execute (</p>
<p>				IUnknown牋牋&nbsp;*pUnkOuter,</p>
<p>				REFIID牋牋牋牋riid,</p>
<p>				DBPARAMS牋牋&nbsp;*pParams,</p>
<p>				DBROWCOUNT牋&nbsp;*pcRowsAffected,</p>
<p>				IUnknown牋牋**ppRowset);</p>
<p>				struct DBPARAMS {</p>
<p>				void *pData;</p>
<p>				DB_UPARAMS cParamSets;</p>
<p>				HACCESSOR hAccessor;</p>
<p>				};</p>
<p>				This is now supported, so it is now possible to execute one INSERT statement and specify several sets of parameters in order to insert several rows into a table.</p>
<p>				Note the following OLE DB specification restriction:</p>
<p>				Sets of multiple parameters (cParamSets is greater than one) can be specified only if DBPROP_MULTIPLEPARAMSETS is VARIANT_TRUE and the command does not return any rowsets.</p>
<p>				This means that multiple parameterized SELECT statements can not be executed that would each return a result set. For the SQL Anywhere provider, DBPROP_MULTIPLEPARAMSETS is VARIANT_TRUE (and always has been).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543910">543910</a></td>
<td>The version 10 and 11 servers were truncating 32-byte names to 31 bytes. So when a version 10 or 11 client attempted a shared memory connection specifying a 32-byte server name that had a common prefix of exactly 31 bytes with a running version 10 or 11 server that also has a 31-byte name, the connection attempt would have failed. As well, if a version 10 or 11 client attempted a shared memory connection specifying a server name that had a common prefix of exactly 31 bytes with a running version 9 or prior server that had a name longer than 31 bytes, the connection attempt would have failed. This problem has been fixed. Note that for version 10 and 11, the fix affects both client and server. For version 9, the fix is just to the server. However, an unmodified version 10 or 11 client will be able to establish such a connection against an unmodified version 9 </p>
<p>				server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543940">543940</a></td>
<td>The server could have stop responding and continue to consume CPU when processing the SUBSTR() function. For this to have occurred, the SUBSTR() must appear on the right hand side of a string concatenation operation and must also be over a string that comes from a row in a table. Additionally, the string data must be greater than one database page in length. Even if all these conditions are met, it is very unlikely that this bug will be hit, as it depends on other internal server conditions as well. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543943">543943</a></td>
<td>When using the Table editor to create a column or modify its data type, if the data type was set in the column&#39;s property sheet, then extraneous NO INDEX or COMPRESSED clauses could have been added to the CREATE TABLE or ALTER TABLE statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR543955">543955</a></td>
<td>Some files for subfeatures would still have be included in the install created by the Deployment Wizard, even if their parent feature was unselected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544030">544030</a></td>
<td>Triggers defined on global temporary tables were not fired. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544047">544047</a></td>
<td>Validation of a database may have reported that some tables contained orphaned blobs. This was only true for tables that were stored in a dbspace other than the SYSTEM dbspace. This should also have only occurred on databases using snapshot isolation. Databases containing these orphaned blobs have pages which are being wasted. The only way to free these pages for reuse is to rebuild the database file. This problem has been fix so that generating orphaned blobs should no longer be possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544069">544069</a></td>
<td>The server could have crashed if two or more connections were simultaneously scanning a table for the first time after the server was started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544094">544094</a></td>
<td>When creating a procedure or function, if an existing procedure or function was altered and a language clause was specified with an undefined language, then the server would have failed to return an error. This problem has now been fixed and the server now correctly returns an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544101">544101</a></td>
<td>The initial width of the &quot;Plan Viewer&quot; window could have been too narrow to display all of its contents. As a result, the &quot;Get Plan&quot; button could have been hidden. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544181">544181</a></td>
<td>Calling the system function traced_plan() for a query containing captured host variables could have failed and return a conversion error. When using Profiling Mode in the Sybase Central plugin, this caused the profiling browser to fail to display a &quot;Best Guessed Plan&quot; for a query whose original graphical plan was not captured. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544187">544187</a></td>
<td>A server could have failed to start if another server was starting at the same time. The server that failed to start would have displayed the error &quot;Database cannot be started -- No such file or directory&quot;. The error message was also misleading since the database file did exist; the server actually had a problem opening the database&#39;s temporary file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544191">544191</a></td>
<td>In some circumstances, host variable references in batches could have caused a server crash. This has been fixed so that the error &quot;Host variables may not be used within a batch&quot; is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544199">544199</a></td>
<td>In rare situations, the server could have crashed during graphical plan construction. For the problem to occur, one of the tables used in the query had to have a unique index and a foreign key index sharing the same columns and settings, and the index had to be considered or used for the query. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544213">544213</a></td>
<td>Comments on the following object types were not preserved by dbunload:</p>
<p>				dbspaces</p>
<p>				Java classes</p>
<p>				Java jars</p>
<p>				external environments</p>
<p>				external environment objects</p>
<p>				login policies</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544214">544214</a></td>
<td>The changes for Engineering case 535861 caused the OLE DB schema support stored procedures to not be installed in newly created databases. This problem has now been corrected. </p>
<p>				As a work-around, databases can be upgraded using dbupgrad.exe or by executing an ALTER DATABASE UPGRADE PROCEDURE ON statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544318">544318</a></td>
<td>Specific forms of SELECT statements could have caused a server crash when opened with particular cursor types. This problem has been fixed.</p>
<p>				As an interim work-around, the server command line switch &quot;-hW AllowBypassCosted&quot; can be specified to avoid this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544321">544321</a></td>
<td>An HTTPS synchronization through a proxy server that required authentication would have failed. When using HTTPS through a proxy server, the client first sends a CONNECT HTTP request to establish a channel through the proxy. Unfortunately, authentication challenges was only active for GET and POST requests. This has been corrected so that CONNECT requests are now active as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544343">544343</a></td>
<td>When the Deployment wizard was used to create an installment that included Sybase Central and the SQL Anywhere plugin, the plugin was not automatically installed in Sybase Central. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544350">544350</a></td>
<td>A user could have dropped a publication whose upload was in an unknown state. For example, the synchronization failed due to a communication error before the upload acknowledgement was received from MobiLink. Dropping a publication whose upload status is unknown could result in lost upload data or duplicate uploads. This has been fixed. Attempting to drop a publication in such a state will now result in a SQLE_SYNC_STATUS_UNKNOWN error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544460">544460</a></td>
<td>Particular forms of complex predicates could have caused the server to crash when executed against a string column with declared size no more than 7 bytes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544486">544486</a></td>
<td>If an application connected using Open Client attempted to fetch a result set containing a large number of columns (more than 3000), then the application would have failed with a TDS protocol error. This problem has now been fixed. </p>
<p>				Note, that in order to fetch such a result set, the application must be using Open Client 15.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544496">544496</a></td>
<td>If the server was started with the &quot;-x none&quot; command line option, and without the -xs option, then calling an external web procedure would have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544525">544525</a></td>
<td>If a publication that had been previous used in a synchronization was dropped, the next publication created would not have been able to synchronize due to a progress offset error from MobiLink. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544612">544612</a></td>
<td>If a row was inserted into a database table using the table in the &quot;Results&quot; panel, and the table contained a non-nullable TIME, DATE, or TIMESTAMP column, the column was initially filled with the current time or date in a format that was not necessarily parsable by the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544613">544613</a></td>
<td>In an SIS environment, if a MobiLink client device went offline (device a), and then another client device (device B) came online with the same device address (ie. IP address/port) as A, and an SIS UDP notification for client A was sent by the notifier, then client B would have received and rejected the notification with an error similar to the following:</p>
<p>				Error: &lt;Notifier(QAnyNotifier_client)&gt;: Request 1604437321 is accepted by invalid respondent &#39;ias_receiver_lsn&#39;. Please check the message filters on the listener </p>
<p>				This error would have happened whenever a UDP notification for client A was sent, resulting in wasteful SIS notifications. This has now been fixed. For 9.0.2, the fix was made only for MobiLink with messaging (QAnywhere) for ASA consolidated databases. In later versions, the fix applies to all MobiLink Notifiers in all supported consolidated databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544614">544614</a></td>
<td>Pressing the F2 key while inserting or updating a row in the &quot;Results&quot; pane table, would have resulted in an internal error. This has been fixed by ignoring the F2 key if editing mode is already entered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544626">544626</a></td>
<td>The iAnywhere JDBC driver may have crashed when allocating a new statement, and the Java VM was out of memory. This has been fixed. The driver will now either fail gracefully, or assert, depending on the circumstances.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544641">544641</a></td>
<td>When running on Windows systems, the server could have taken longer than necessary to shutdown, or could even have crashed during the shutdown process. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544651">544651</a></td>
<td>Under rare circumstances, a full text search could have returned incorrect results. For this problem to occur, the database with the text index had to have been refreshed at least once and then moved between platforms with different byte orderings. This has now been fixed. No action needs to be taken for databases with text indexes that were created on little-endian machines and were never refreshed or updated on big-endian machines. Text indexes will need to be truncated and refreshed (for MANUAL and AUTO text indexes), or recreated (for IMMEDIATE indexes), after applying this fix if they were created or refreshed on a big-endian machine.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544669">544669</a></td>
<td>If a column histogram incorrectly contained a selectivity estimate of 100% for the NULL values, the best plan found by the optimizer could have been very inefficient. This problem affected the computation of the selectivity estimation of predicates of the form &quot;T.X theta expression&quot; (theta can be =, &lt;&gt;, &gt;, &gt;=, &lt; or &lt;=) which would have incorrectly been computed as 0%. A change has been made to the optimizer so that it no longer trusts a NULL selectivity estimation of 100%, instead it uses the computed selectivity estimation of (100% - epsilon).</p>
<p>				To test the estimated selectivity of the NULL values for a column T.X use: &quot;select first estimate(X, null) from T&quot;.</p>
<p>				A workaround is to recreate statistics on the column T.X by using: &quot;create statistics T (X)&quot;. However, if the column T.X has often only NULL values, and then it is updated to some non-null values, it is recommended to upgrade to a server containing this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544670">544670</a></td>
<td>In some cases, statements containing complex expressions could have used an excessive amount of memory that could affect other connections in the server. This has been fixed so that attempts to execute large expressions that can not be handled will now generate the error:</p>
<p>				-890 &quot;Statement size or complexity exceeds server limits&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544672">544672</a></td>
<td>Some fulltext queries took inordinate amounts of memory when opening the statement. These queries typically also took too long to open. These problems predominantly affected queries with long phrases or queries over NGRAM indexes with long search terms. The memory usage and open times have been improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544689">544689</a></td>
<td>All database pages for a table may not have been freed when the table was dropped. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544763">544763</a></td>
<td>The -nc option, which limits the number of concurrent sockets opened by MobiLink server, wasn&#39;t feasible to use with non-persistent HTTP/HTTPS, because sockets that could have been continuations of valid synchronizations might have been rejected. The -sm option has been improved to provide similar functionality to -nc when used with non-persistent HTTP/HTTPS. Furthermore, the MobiLink server should usually have provided HTTP error 503 (Service Unavailable) to the remote when the -sm limit was reached and sessions were kicked out. If the -nc limit was reached, however, the error would instead have been a socket error -- usually with a system code about being unable to connect, but experience has shown the system code can vary. </p>
<p>				Note, to limit the number of concurrent synchronizations for non-persistent HTTP/HTTPS, the -nc option should be set significantly higher than -sm. The greater the difference between -sm and -nc, the more likely (but never guaranteed) the 503 error will be sent to the remote instead of a socket error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR544779">544779</a></td>
<td>Any web service in the SYSWEBSERVICE table with data in the PARAMETER column would have been disabled when the database was unloaded into a new database. This has been fixed.</p>
<p>				Note, any SOAP services that defined a DATATYPE, GROUP or FORMAT clause, or any web service that defined a METHODS clause, were affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544787">544787</a></td>
<td>If a statement required rows to be sorted and at least two rows had long ORDER BY key values that were equal in the first 256 bytes and the statement was executed with a parallel access plan, it was possible for the two rows to be returned in an order that did not match the ORDER BY clause. This problem has been fixed.</p>
<p>				Note, it was possible for text indexes that contain long search terms to be affected by this problem when the text index was built or updated. If this occured, the index should be rebuilt with a server containing this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544791">544791</a></td>
<td>In rare timing dependent cases, the server could have hung on shutdown, or possibly failed in other ways, after executing a DROP CONNECTION statement. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544925">544925</a></td>
<td>A connection may have continued to hold table or row locks even when a DDL statement failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544938">544938</a></td>
<td>The server supports the [NOT] DETERMINISTIC specification for user defined functions. When used for stored procedures the clause would have failed to generate the expected syntax error. Instead the clause was accepted and then ignored by the server. This has been fixed so that the server will now generate a syntax error when [NOT] DETERMINISTIC is used in the CREATE and ALTER PROCEDURE statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544943">544943</a></td>
<td>The MobiLink server could have hung, or crashed, when using encrypted streams. The behaviour was highly dependent on both timing and data size. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544944">544944</a></td>
<td>When calling sp_remote_tables() to get the column information for an UltraLite table, any unsigned columns would have been described as signed columns. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544948">544948</a></td>
<td>The system function xp_sendmail() would have always encoded the subject line of an email being sent. While this is properly decoded when the email is delivered to an email client, it was not decoded in many instances when sent via SMS. A change has been made to not encode the subject line when the subject contains only 7-bit ascii characters. Attempting to send a message containing non 7-bit ascii characters to a SMS client will still result in the subject line being encoded. It will be up the carrier to properly convert from SMTP to SMS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544956">544956</a></td>
<td>If MobiLink Client was performing a synchronization, and the status of the last synchronization was unknown, it was possible for the MobiLink Server to have reported that the synchronization had started twice. The MobiLink Log with no extra verbosity might contain the following messages:</p>
<p>				Request from &quot;Dbmlsync Version 10.0.1.3750&quot; for: remote ID: rem1, user name: rem1, version: v1</p>
<p>				Request from &quot;Dbmlsync Version 10.0.1.3750&quot; for: remote ID: rem1, user name: rem1, version: v1</p>
<p>				Synchronization complete</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544961">544961</a></td>
<td>The Stored Procedure Debugger was not able to set breakpoints on statements within exception handlers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544969">544969</a></td>
<td>UltraLite treated all cursors declared in embedded SQL as being FOR UPDATE. A query with the FOR READ ONLY clause could still have been updated as the clause was ignored. This has now now fixed.</p>
<p>				Also with this fix, UltraLite embedded SQL cursors are now considered read only if no clause is present. The previous behaviour can be achieved with sqlpp 杕 HISTORICAL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR544972">544972</a></td>
<td>The server could have crashed while optimizing a text query containing a phrase. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545000">545000</a></td>
<td>SELECT DISTINCT with more than 16 select-list items would have caused an exception to be thrown. A DISTINCT optimization should have tested that there were 16 or fewer select-list items and failed when that was not so. The omitted test has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545096">545096</a></td>
<td>The latest release of the Perl, PHP, etc language drivers now use the C API that was released with SQL Anywhere 11.0. To allow those new drivers to be backward compatible with 10.0.1, support has been added for this new C API to 10.0.1. Note that the language drivers that ship with 10.0.1 EBFs will continue to be the ESQL version.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545105">545105</a></td>
<td>The DatabaseInfo methods getDbFormat and getRelease, would have returned incorrect values. Additionally, getRelease now returns a String which reflects both the release version and the build number.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545251">545251</a></td>
<td>The MobiLink Listener (dblsn), with IP tracking off (-ni) or default UDP listening off (-nu), may have shutdown unexpectedly after the first notification. This problem was introduced by the changes made for Engineering case 535235. This has now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545353">545353</a></td>
<td>The cardinality estimation of the table expression &quot;P key join F&quot;, where P is the primary key table and F is the foreign key table, was incorrectly computed in certain cases for multi-column keys. This has been fixed. Now, the cardinality estimation for this class of table expressions is &quot;card(F) \ #of rows in F with at least one NULL value for multi-column key&quot;. </p>
<p>				Example:</p>
<p>				ALTER TABLE FOREIGN KEY ( fk1, fk2, ..., fkn) references P (pk1, pk2,..., pkn)</p>
<p>				Q:</p>
<p>				select * from</p>
<p>				F, P</p>
<p>				where F.fk1 = P.pk1 and F.fk2 = P.pk2 and ... and F.fkn = P.pkn</p>
<p>				returns all rows from the foreign key table F less the rows having at least one NULL for the foreign key columns F.fk1, F.fk2, ..., F.fkn.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545374">545374</a></td>
<td>When using the SQL Anywhere ODBC driver, if SQLBindCol was called immediately after a SQLFetch and before calling SQLBulkOperations( SQL_UPDATE_BY_BOOKMARK ), then the SQLBulkOperations update would have failed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545383">545383</a></td>
<td>Queries accessing a table via an index could have performed poorly after performing many update and delete operations on the indexed table. If two leaf pages that required cleaning were merged, the second of the two would not have been cleaned, which could have resulted in many almost empty leaf pages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545454">545454</a></td>
<td>The Interactive SQL utility (dbisql) could have crashed if the iAnywhere JDBC-ODBC driver was not installed correctly. This has been changed so that dbisql gives an error message instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545455">545455</a></td>
<td>A server started with the -zl or -zp command line options (or by calling the system procedure sa_server_option() with RememberLastStatement or RememberLastPlan), that services large numbers of HTTP connections could have crashed. This issue would have been rare and highly timing dependent. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545463">545463</a></td>
<td>The Interactive SQL utility (dbisql) would have crashed if a START DATABASE ... ON statement was executed when it was not connected, and had never been connected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545468">545468</a></td>
<td>Calling either of the system procedures sa_http_php_page() or sa_http_php_page_interpreted() would have resulted in a leading and a trailing space in the output. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545516">545516</a></td>
<td>The MobiLink server now requires the ASE native ODBC driver, version 15.0.0.320, which can be retrieved from the Sybase Software Developer Kit - 15 ESD #14, for consolidated databases running on ASE 12.5 or ASE 15.0 database servers. This is required due to a bug in the older versions of the ASE native ODBC driver, that has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545519">545519</a></td>
<td>The changes for Engineering case 541942 could have cause GLOBAL TEMPORARY tables to be created in the SYSTEM dbspace during database creation. Only databases created by a server with this problem are affected, and can be corrected by rebuilding with a fixed server. </p>
<p>				This problem has two visible results: </p>
<p>				Firstly, diagnostic tracing into a local database will cause the database to grow twice as large as expected due to diagnostic data. It will be necessary to rebuild a database this problem in order to prevent this growth from happening with subsequent builds.</p>
<p>				Secondly, JDBC metadata that is supposed to be unique to each connection will end up being visible to all connections. This can cause a variety of problems for applications that depend on querying this metadata. This manifestation of the problem can be avoided by running dbupgrad with a fixed server against a database with this problem.</p>
<p>				The presence of this problem in a database can be verified by querying SYSTABLE and noting that all jdbc_* tables have type of BASE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545528">545528</a></td>
<td>Inexpensive statements may have taken a long time to optimize (i.e. OPEN time was high), or may have had inefficient access plans. This has now been fixed. The only condition required for this to happen was that the parallel access plans were considered by the optimizer. </p>
<p>				For more info on intra-query parallelism see:</p>
<p>				SQL Anywhere Server - SQL Usage</p>
<p>				Query Optimizer</p>
<p>				Query optimization and execution</p>
<p>				Query execution algorithms</p>
<p>				Parallelism during query execution </p>
<p>				This change is particularly important when moving to version 11.0.1, from 10.0.1 or 11.0.0, and running the personal server (dbeng11). The 10.0.1 personal server (dbeng10) and 11.0.0 personal server (dbeng11) are restricted to using only one CPU, and only one core if the CPU has multiple cores. </p>
<p>				Also, the 10.0.1 optimizer did not consider the number of maximum concurrent threads (i.e. ConcurrentThreads global variable), and may generate parallel plans which will not be executed in parallel by the 10.0.1 personal server, only one parallel branch will process all the rows. This is a bug which was fixed in 11.0.0 GA.</p>
<p>				The 11.0.1 personal server can use all the cores available in one CPU, which means the 11.0.1 optimizer will cost and generate access plans using parallel physical operators when multiple cores are available. This difference in behaviour related to the number of cores allowed to be used by the personal server may result in a very different access plan being executed by 11.0.1 compared to the access plan executed by 11.0.0, for the same SQL statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545543">545543</a></td>
<td>Unloading and reloading a 9.0.2 db could have failed with a &#39;capability not found&#39; error if the 9.0.2 db had remote servers defined and contains capabilities that do not exist in later versions. This problem has now been fixed. The unload/reload scripts now check for the existence of each capability in SYSCAPABILITYNAME prior to issuing the ALTER SERVER ... CAPABILITY statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545546">545546</a></td>
<td>When using the Create Database wizard, if a collation&#39;s punctuation sensitivity was changed to a value other than its default, then the wizard would have failed to create the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545565">545565</a></td>
<td>When an application called the ODBC fuction SQLTables() to get a list of supported table types, the TEXT table type would not have been listed. In addition, calling SQLTables() to list tables would have incorrectly listed tables of type TEXT as LOCAL TEMPORARY. Similarly, when an application using the iAnywhere JDBC driver called DatabaseMetaData.getTableTypes() to get a list of supported table types, the TEXT table type would not have been listed; and calling DatabaseMetaData.getTables() would have incorrectly identified TEXT tables as LOCAL TEMPORARY. Both the ODBC driver and JDBC driver have now been updated to properly list the TEXT table type and identify tables of type TEXT correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545570">545570</a></td>
<td>The server could have crashed while inserting rows to a table when also creating statistics on the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545574">545574</a></td>
<td>In certain circumstances, TLS connections that should have failed, would have actually succeed. This has been fixed. Note that this problem does not occur on Mac OS X systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545611">545611</a></td>
<td>In some rare cases, errors during execution of a DROP TABLE or DROP MATERIALIZED VIEW statement, could have resulted in locks being held for too long. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545621">545621</a></td>
<td>The server may crash after a materialized view has been dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545627">545627</a></td>
<td>Clicking the &quot;File/Run Script&quot; menu item to run a script file could have caused the Interactive SQL utility to crash with an &quot;Out of memory&quot; error. This has been fixed so that a more ordinary error message is displayed, and running the script is gracefully aborted. This problem could have occurred when the script was very large (thousands of lines) and especially if it contained unclosed block statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545640">545640</a></td>
<td>Attempting to set an HTTP header from within an inner procedure would have resulted in a SQL error indicating that setting of the HTTP header was invalid. This has been fixed so that inner procedures may now modify HTTP response headers.</p>
<p>				For example:</p>
<p>				With this fix an HTTP request to the SUB service now succeeds in setting the User-Header within the SUB1 function.</p>
<p>				create service sub</p>
<p>				type &#39;raw&#39;</p>
<p>				authorization off</p>
<p>				secure off</p>
<p>				user dba</p>
<p>				as call sp_sub();</p>
<p>				create procedure sp_sub()</p>
<p>				begin</p>
<p>				select sub1();</p>
<p>				end;</p>
<p>				create function sub1()</p>
<p>				returns long varchar</p>
<p>				begin</p>
<p>				call sa_set_http_header(&#39;User-Header&#39;, &#39;test&#39;);</p>
<p>				return &#39;test&#39;;</p>
<p>				end;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545641">545641</a></td>
<td>The Interactive SQL utility (dbisql) could have crashed if the Query Editor window was open and the database connection was lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545646">545646</a></td>
<td>Creating a new connection profile by copying an existing profile, could have resulted in the copy having the wrong plugin type. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545684">545684</a></td>
<td>When optimizing simple SQL statements the server was skipping some of the optimizations implemented to improve DESCRIBE time. This has been corrected.</p>
<p>				For more information see:</p>
<p>				SQL Anywhere Server - SQL Usage</p>
<p>				Query Optimizer</p>
<p>				Query optimization and execution</p>
<p>				Query processing phases</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545690">545690</a></td>
<td>When a message was sent to a destination alias, the QAnywhere Server may not have immediately generated push notifications for some members of the alias. This could have resulted in the server taking as long as a minute to push notifications to clients. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545704">545704</a></td>
<td>When trying to create a Transact-SQL function or procedure, use of the &quot;expr AS name&quot; syntax in the arguments to a function call would have given an error. This has been fixed. </p>
<p>				A workaround is to write the function or procedure using the Watcom-SQL dialect.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545707">545707</a></td>
<td>When running on Unix systems, the server could have hung and not proceeded any further while generating a mini-core. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545713">545713</a></td>
<td>On Mac OS X systems, the function sqlany_initialize_interface() in sqlanydll.c would have failed if it attempted to use the default library name (that is, if the second argument to the function was NULL and the environment variable SQLANY_API_DLL was not set). This was due to the default library name having the wrong extension (&#39;so&#39; as opposed to &#39;dylib&#39;). This has been fixed.</p>
<p>				As a workaround, the correct library name can be specified in the second argument to sqlany_initialize_interface, the environment variable SQLANY_API_DLL can be set to the correct library name, or the extension can be manually changed in the DEFAULT_LIBRARY_NAME macro in sacapidll.c.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545744">545744</a></td>
<td>The server may found, and used, the wrong license file when starting up. This has been corrected.</p>
<p>				Note: if the server now reports a &quot;License file not found&quot; error after applying this fix, when it started prior to the fix, then the license file was not correctly installed. To correct this, the license file should be moved so that it is in the same directory as the server executable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545760">545760</a></td>
<td>The SQL tab for a Trigger, View, Procedure or Event could have contained stale SQL, if the object&#39;s SQL was modified and saved to the database in a separate window (opened using the &quot;Edit in New Window&quot; menu item). The problem would only have occurred when the object&#39;s SQL tab was displayed in the right pane before the object was modified and saved to the database in the separate window, and the object&#39;s SQL was modified and saved to the database in the separate window while the object&#39;s SQL tab was not displayed in the right pane of the main Sybase Central window.</p>
<p>				A similar problem would have occurred if a maintenance plan was modified after having shown its corresponding event&#39;s SQL tab. The event&#39;s SQL tab would have displayed stale SQL.</p>
<p>				In both cases, pressing F5 to refresh Sybase Central would have show the object&#39;s up-to-date SQL. Pressing F5 is now no longer necessary, as Sybase Central has been corrected to keep such objects&#39; SQL up-to-date.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545762">545762</a></td>
<td>The MobiLink system stored procedures for DB2 Mainframe were created with a default isolation level of RR (Repeatable Read = Serializable) instead of CS (Cursor Stability = Read Committed). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545772">545772</a></td>
<td>If an application was connected using the iAnywhere JDBC driver, and the application subsequently executed a statement that returned more than one result set, then attempting to fetch any result set after the first would have failed with a function sequence error. This problem would only have appeared once the fix for Egineering case 533936 was applied. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545785">545785</a></td>
<td>If a SELECT statement referenced a single table and contained a TOP n or FIRST clause, it was possible for a slow execution plan to be picked. In order for this to have occurred, there needed to be at least two indexes that could be used for the plan and the depth of the indexes needed to differ. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545815">545815</a></td>
<td>The database server could have leaked memory, and eventually failed with an &#39;Out of Memory&#39; error, when using TDS connections (eg. jConnect) that fetched string data. This has now been fixed. This fix is in addition to the memory leak that was fixed for Engineering case 543069.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545824">545824</a></td>
<td>When doing dynamic cache size tuning, the server could have choosen a cache size which was larger than appropriate. This could have caused performance degradation if other system components were competing for memory. The server was erroneously basing target cache size computations on the server&#39;s &quot;peak&quot; working set size, rather than its &quot;current&quot; working set size. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545899">545899</a></td>
<td>For particular structures of tables and indexes, it was possible for an ALTER TABLE statement to fail with an assertion failure such as the following:</p>
<p>				Assertion failed: 201501 - Page for requested record not a table page or record not present on page</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545901">545901</a></td>
<td>If an application called an external environment procedure immediately after issuing a commit, and the external environment procedure performed server side calls and issues its own commit, then there was a chance the server will have failed assertion 201501 &quot;Page for requested record not a table page or record not present on page&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545902">545902</a></td>
<td>If The Interactive SQL utility (dbisql) could not load the DBLIB library it would have crashed, rather than reporting the problem and degrading gracefully. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545912">545912</a></td>
<td>The original release of the Express Bug Fix for 11.0.0 1490 would have failed to install on non-English Windows systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545917">545917</a></td>
<td>When the Relay Server (rshost) or the Relay Server Outbound Enabler (rsoe) RSHOST executables printed the usage message, empty lines and/or garbage characters could have been displayed after the usage message. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545933">545933</a></td>
<td>Attempting to backup a database of size 5GB or larger with the clause &quot;WAIT BEFORE START&quot; could have caused the server to hang. Backups of databases this size and larger cause the server to calibrate the dbspaces, which is done to improve the parallel performance of the backup. However, if the calibration updated the catalog, then the WAIT BEFORE START clause would have caused the backup to wait on itself. This has been fixed by turning off calibration for large databases when the WAIT BEFORE START clause is specified. If desired, the CALIBRATE DATABASE statement can be issued before the backup begins.</p>
<p>				A workaround is to run the backup without the WAIT BEFORE START clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545934">545934</a></td>
<td>A database could have failed validation before a checkpoint, and then passed validation after a checkpoint. A possible message that may have been generated in this case was &quot;Database validation failed for page nnnnnn of database file &#39;&lt;file.db&gt;&#39;&quot;. In cases such as this, the database was in fact valid, but the validation step was falsely reporting failure. This has been fixed, although there is still a small possibility that when run on an active database, the validation step could still report errors. It is recommended that, where possible, validation occur when there is little or no database activity.</p>
<p>				A workaround is to issue a checkpoint before running validation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545949">545949</a></td>
<td>Visual Studio 2008 SP1, which contained the support for the Entity Framework, was released after the initial release of SQL Anywhere 11.0.0. Full support for the Entity Framework has now been added to SQL Anywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545950">545950</a></td>
<td>The STOPLIST setting specifies the terms to ignore when building a text index. The sample stoplists for English contained words with apostrophes as well as words. An apostrophe is treated as a whitespace for the purposes of stoplist construction, causing such words to be treated as phrases (e.g. you&#39;ll is treated as &quot;you ll&quot;). Such words have now been removed from the sample.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR545987">545987</a></td>
<td>In the Text Configuration Object wizard, the defaults for the term breaker and maximum term length were &quot;Generic&quot; and &quot;1&quot; respectively. These were not particularly useful defaults. They have been changed so that the wizard now provides a reasonable default for the term breaker based on the database&#39;s CHAR collation, and the maximum term length based on both the database&#39;s CHAR collation and the currently selected term breaker. The term breaker now defaults to N-gram if the database&#39;s CHAR collation is a Chinese (936ZHO, 950ZHO_HK, 950ZHO_TW, EUC_CHINA, EUC_TAIWAN), Japanese (932JPN, EUC_JAPAN) or Korean (949KOR, EUC_KOREA) collation; otherwise, it defaults to Generic. The maximum term length now defaults to 20 if the Generic term breaker is selected; otherwise, for N-gram it defaults to 2 if the database&#39;s CHAR collation is a Chinese, Japanese or Korean collation, and 4 otherwise.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546038">546038</a></td>
<td>Sybase Central could occasionally report an internal error when a table header on the &quot;Data&quot; tab was clicked in order to sort the data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546046">546046</a></td>
<td>The QAnywhere plugin could have reported an internal error (NoClassDefFoundError) when connecting to a server message store if the plugin was registered with Sybase Central directly (i.e. using the QAPLUGIN.JAR file) rather rather than by using an installer-created .JPR file. This has been fixed.</p>
<p>				The workaround is to add &quot;mldesign.jar&quot; to the list on the &quot;Advanced&quot; page of the QAnywhere 11 plugin properties window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546070">546070</a></td>
<td>The operation executed after an embedded SQL application executed a FETCH, could have caused a crash if the cursor was opened without WITH HOLD and a COMMIT or ROLLBACK was done by a procedure or function called by the FETCH. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546072">546072</a></td>
<td>The iAS ODBC driver for Oracle could have crashed when the application tried to create multiple connections concurrently. This problem was more likely to have occurred on Unix systems. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546074">546074</a></td>
<td>A database that was initialized with a version 10 server could have become corrupted when run with a version 11 server. The problem could have resulted in the database not starting, failing assertions, or other errors. This has now been fixed. </p>
<p>				Note that rebuilding a database to a version 11 format will provide performance improvements, while also preventing this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546104">546104</a></td>
<td>Temporary tables with LONGVARCHAR or LONBINARY columns were not being completely freed. This has been fixed.</p>
<p>				Note, temporary tables occur when there are no indexes discovered to implement operations such as ORDER BY.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546131">546131</a></td>
<td>The following bug fixes, which were originally made only for ASA consolidated databases, have now been implemented for ASE consolidated databases as well:</p>
<p>				1 - primary key conflicts for table ml_qa_global_props in upload_insert script (Engineering case 463062),</p>
<p>				2 - table ml_qa_status_history unlimited growth problem (Engineering case 495514),</p>
<p>				3 - UDP notifications to inactive devices problem (Engineering case 544613).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546164">546164</a></td>
<td>During the execution of server transmission rules, it was possible for the QAnywhere server to repeatedly report a java.util.NoSuchElement exception, and abort the rule execution. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546171">546171</a></td>
<td>When a delivery condition that referenced message properties was specified for a QAnywhere connector, message transmission to the connecting messaging system would have been disabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546172">546172</a></td>
<td>If a parallel execution plan was executed using an exists join (JE / Exists Join), then it was possible for the statement to return the wrong answer. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546173">546173</a></td>
<td>When uploading timestamp data with the .NET Direct Row API, an exception could have been thrown. Even if an exception wasn&#39;t thrown, the fractional part of the timestamp would have been incorrect. When downloading timestamps with the .NET Direct Row api, values would have been incorrect by a few seconds. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546176">546176</a></td>
<td>When running a farm of MobiLink servers with QAnywhere messaging enabled, the delete rules and archiving process could have logged &quot;deadlock detected&quot; errors in the MobiLink server log. The rules were functioning correctly, but unnecessary database contention was occurring. This has been fixed by having the delete rules and archiving process run only in the primary server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546256">546256</a></td>
<td>When connected to a DB2 Mainframe (D2M) consolidated database, the MobiLink server could have held locks across COMMITs, causing increased contention and sometimes resulting in deadlock or timeout errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546290">546290</a></td>
<td>When connected to a DB2 Mainframe (D2M) database, the iAnywhere JDBC driver could have eld locks across COMMITs, causing increased contention and sometimes resulting in deadlock or timeout errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546294">546294</a></td>
<td>The server could have failed assertion 104301 - &quot;Attempt to free a user descriptor with non-zero reference count&quot;, while trying to drop a user. This assertion was likely to occur when an attempt was made to ALTER the same user in the same server session, and the ALTER had failed due to an error. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546330">546330</a></td>
<td>In the UltraLite plug-in, it is possible to view the data of a table by choosing the table in the left pane, and clicking on the 揇ata� tab in the right pane. When this was done though, subsequent attempts to change the schema of the database could have failed with the error 揂 schema upgrade is not currently allowed�. A result set created when viewing the data was not explicitly closed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546367">546367</a></td>
<td>Sybase Central permitted utility operations while debugging or profiling. In some circumstances, running a utility operation while debugging or profiling could have caused Sybase Central to hang. This has been corrected so that utility operations are now permitted only when in Design mode.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546432">546432</a></td>
<td>The server may have hung while performing updates to rows containing blobs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546439">546439</a></td>
<td>The Interactive SQL utility would have reported an internal error if the OUTPUT statement operated on a result set that contained a UNIQUEIDENTIFIER column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546478">546478</a></td>
<td>Referential integrity constraint checking could have failed, allowing a primary key to be removed when it still had referencing foreign keys, or preventing the removal of a primary key with no referencing foreign keys. The likelihood of this happening decreased as the number of foreign tables increased. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546587">546587</a></td>
<td>If the option Chained was set to off (i.e. auto-commit enabled), executing an INSERT, UPDATE or DELETE statement inside a BEGIN ATOMIC block would have resulted in error -267 &quot;COMMIT/ROLLBACK not allowed within atomic operation&quot;. This has been fixed. The DML statement will now be allowed to execute and a commit (or rollback if an error occurs)will be performed automatically at the end of the atomic block.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546736">546736</a></td>
<td>In CONTAINS queries, the AND NOT (or -) operator applied to all expressions following (to the right of) the operator. This has been fixed so that AND NOT (and its variants listed below) now applies only to its immediate left and right arguments.</p>
<p>				For example, CONTAINS query </p>
<p>				&#39;a AND NOT b OR c&#39; </p>
<p>				would be evaluated as </p>
<p>				&#39;a AND NOT (b OR c)&#39;. </p>
<p>				After the fix, the meaning of the query is </p>
<p>				&#39;(a AND NOT b) OR c&#39;.</p>
<p>				Equivalents to the AND NOT operator are: &#39;a &amp; NOT b&#39;, &#39;a NOT b&#39;, &#39;a AND -b&#39;, &#39;a &amp; -b&#39;, &#39;a -b&#39;. Note that if hyphen is used, it has to be preceded by a space</p>
<p>				and immediately followed by it&#39;s argument. There are two other legitimate uses for hyphen in a text query: &#39;a-b&#39; and &#39;a - b&#39;. The first case is interpreted as the phrase &#39;&quot;a b&quot;&#39;, </p>
<p>				whereas the second is interpreted as &#39;a b&#39; (=&#39;a AND b&#39;).</p>
<p>				Additionally, interpretation of CONTAINS queries was dependent on exact order of operators and their arguments. For example, query</p>
<p>				&#39;a AND b OR c&#39; </p>
<p>				would be evaluated as</p>
<p>				&#39;a AND (b OR c)&#39;</p>
<p>				and query</p>
<p>				&#39;c OR b AND a&#39;</p>
<p>				would be evaluated as</p>
<p>				&#39;c OR (b AND a)&#39;.</p>
<p>				This has also been fixed by imposing an order of evaluation on all the text query operators as follows:</p>
<p>				1) FUZZY, NEAR</p>
<p>				2) AND NOT</p>
<p>				3) AND</p>
<p>				4) OR</p>
<p>				With the new rules, two examples above are equivalent</p>
<p>				&#39;(a AND b) OR c&#39; = &#39;c OR (b AND a)&#39;</p>
<p>				Full syntax for the CONTAINS queries is described in the documentation:</p>
<p>				SQL Anywhere Server - SQL Reference</p>
<p>				Using SQL � SQL language elements</p>
<p>				Search conditions</p>
<p>				CONTAINS search condition</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546742">546742</a></td>
<td>The MobiLink client (dbmlsync) could have crashed when reporting certain TLS or HTTPS errors. Certain TLS errors could have caused a null pointer dereference during creation of the error message string. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546854">546854</a></td>
<td>If a query contained DISTINCT, ORDER BY and GROUP BY clauses and an expression in the ORDER BY clause appeared in the the GROUP BY clause, but not in the SELECT list, then the wrong error was returned, namely &quot;Function or column reference to ... must also appear in a GROUP BY.&quot; This has been fixed so that the correct error message: &quot;Function or column reference to .. in the ORDER BY clause is invalid.&quot; </p>
<p>				For example, the query:</p>
<p>				SELECT DISTINCT X</p>
<p>				FROM T</p>
<p>				GROUP BY E</p>
<p>				ORDER BY E</p>
<p>				Would have returned the error: &quot;Could not execute statement. Function or column reference to &#39;E&#39; must also appear in a GROUP BY.&quot; SQLCODE=-149, ODBC 3 State=&quot;42000&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546867">546867</a></td>
<td>A partial index scan using an index with DESC columns, may have been inefficient. For this problem to have occurred, the last column used to define the range must have been in descending (DESC) order, and the index must have contained NULLs. This has been fixed.</p>
<p>				For example: </p>
<p>				Previously, the server would have read approximately 85 index leaf and table pages for the query below, now the number of pages read is approximately 10.</p>
<p>				CREATE TABLE CURRENCY_TABLE</p>
<p>				(CURRENCY CHAR(10) NOT NULL,</p>
<p>				DOLLAR_EQUIV NUMERIC(5, 2),</p>
<p>				PRIMARY KEY (CURRENCY));</p>
<p>				INSERT INTO &quot;CURRENCY_TABLE&quot; VALUES (&#39;DOLLAR&#39;, 1.00);</p>
<p>				INSERT INTO &quot;CURRENCY_TABLE&quot; VALUES (&#39;POUND&#39;, 1.91);</p>
<p>				INSERT INTO &quot;CURRENCY_TABLE&quot; VALUES (&#39;DM&#39;, .45);</p>
<p>				INSERT INTO &quot;CURRENCY_TABLE&quot;</p>
<p>				select &#39;DM&#39;, NULL from sa_rowgenerator(1,20000);</p>
<p>				commit;</p>
<p>				create index currency_idx_1 on currency_table( dollar_equiv desc );</p>
<p>				call sa_flush_cache();</p>
<p>				select count(*) from CURRENCY_TABLE with (index (currency_idx_1 ))</p>
<p>				where DOLLAR_EQUIV &lt; 1000 option( force optimization);</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546869">546869</a></td>
<td>The property sheet for connectors contained a &quot;Transmission Rules&quot; page. This was incorrect because connectors do not have transmission rules; they have delivery conditions. As a result, that page has been replaced with a new &quot;Delivery Conditions&quot; page in which the single delivery condition for the connector can be typed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546882">546882</a></td>
<td>The GrowLog system event that fires when the database transaction log grows can be setup to truncate the transaction log upon its exceeding a certain size. In cases where the database server was very busy, the transaction log would not have been truncated often enough. This may have lead to the transaction log getting significantly larger than the threshold set in the event. This has been fixed, although in a very busy server it is still possible for the log to grow larger than the threshold for short periods of time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546908">546908</a></td>
<td>When running the Unload utility (dbunload) to unload a pre-10.0 version database, the directory for the unloaded table data would not have been created. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR546912">546912</a></td>
<td>The wrong item could have been edited or deleted if the list that contained the item was sorted. This would have occurred in the following places:</p>
<p>				1. List of members for a given destination alias</p>
<p>				2. &quot;Properties&quot; tab of client store property sheets</p>
<p>				3. The &quot;Client Properties&quot; tab of the property sheet for a server message store</p>
<p>				4. The &quot;Members&quot; tab in the property sheet for a destination alias</p>
<p>				5. The property sheet for a client in a server message store</p>
<p>				6. The &quot;Transmission Rules&quot; or &quot;Deletion Rules&quot; tabs in any property sheet.</p>
<p>				7. The &quot;Properties&quot; tab of a connector&#39;s property sheet.</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547033">547033</a></td>
<td>Opening the property sheet for a table that had an embedded quote in its name or in its owner&#39;s name, would have caused Sybase Central to generate an invalid SQL statement causing an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547035">547035</a></td>
<td>Attempting to use an UltraLite remote server with the Migrate Database wizard would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547036">547036</a></td>
<td>The PacketsSent and PacketsReceived properties were being updated by HTTP and HTTPS connections, even though the HTTP protocol has no real concept of packets. This has been fixed by no longer updating these properties for HTTP and HTTPS connections. The BytesSent and BytesReceived properties will continue to be updated for HTTP and HTTPS connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547037">547037</a></td>
<td>When using the QAnywhere plugin, it was not possible to create an empty destination alias. This has been fixed so that creating an empty alias is now possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547041">547041</a></td>
<td>Some remotes could have synchronized with servers that were not licensed to synchronize with those remotes. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547045">547045</a></td>
<td>Support has been added to allow exporting a script version&#39;s connection and table scripts, as well as its defined column names, to a SQL file by selecting the version object in Sybase Central while in Admin mode, and then choosing File -&gt; Export.... The Version Export wizard prompts for a file name, and when Finish is clicked, a SQL file is created that contains a sequence of required calls to the ml_add_...() procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547049">547049</a></td>
<td>After calling SQLGetTypeInfo, the application would not have been able to get the column names through problem could have prvented exporting MobiLink Monitor data to an Oracle database. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547073">547073</a></td>
<td>Performance of database operations when there was a large transaction log (many transactions awaiting synchronization and/or checkpointing) has been improved.</p>
<p>				Note, GA versions of the software will not be able to read a database that has been used by UltraLiteJ as of this change. Earlier databases will automatically be upgraded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547076">547076</a></td>
<td>Executing a &quot;MESSAGE ... TO CLIENT FOR CONNECTION n&quot; statement could have resulted in a message with mangled characters in the message text. For this to have occurred, the source connection and destination connection must have been connected to databases with different collation sequences. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547078">547078</a></td>
<td>An ODBC or OLEDB application may have been positioned to an incorrect row when fetching by bookmark value. This would only have happened if the last column of the result set was not bound (for example with SQLBindCol). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547084">547084</a></td>
<td>A connection attempt that resulted in a warning was treated as an error and no connection was created. This was affecting the PHP, Python, and Ruby drivers. This has been fixed. Warnings no longer prevent a successful connection. The actual warning message can still be retrieved as usual.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547198">547198</a></td>
<td>Changes for Engineering case 536370 introduced a problem where simple select statements could have caused a server crash for specific forms of table schema and index definition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_61.htm#CR547205">547205</a></td>
<td>Renaming a column in a table having referential action triggers, could have resulted in a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547206">547206</a></td>
<td>Non-persistent HTTPS synchronizations could sometimes fail with stream error STREAM_ERROR_WRITE and a system error code of 10053. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547213">547213</a></td>
<td>The server could have looped forever executing a REORGANIZE TABLE statement. This should only have occurred if the table had a clustered index that contained non-unique values in the clustered column or columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547224">547224</a></td>
<td>When selecting data using the Interactive SQL utility, from an UltraLite database that was UTF8 encoded, it was possible for extra garbage characters to have be displayed at the end of the string.燜or example, if a VARCHAR column contained the string &#39;f黵&#39; (the middle letter is u umlaut) and the database was UTF8 encoded, selecting that column would have displayed a garbage character at the end (typically a box).燦ote that this was a display problem only. This has been fixed.燗 possible work around is to cast the data as VARCHAR(x), where x is a value big enough to display the data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547228">547228</a></td>
<td>n very rare circumstances, the server could have failed a fatal assertion when commiting deleted rows containing short strings (less than a database page in length). The typical assertion seen in this instance was assertion 201501 - &quot;Page for requested record not a table page or record not present on page&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547234">547234</a></td>
<td>When the UltraLite SQL functions length() and char_length() were used on LONG VARCHAR columns, the results were incorrectly the lengths of the strings in bytes, rather than characters. Note that some characters require multiple bytes internally. The function byte_length() is used to determine the length in bytes of the string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547248">547248</a></td>
<td>If the server had shut down due to a start-up error involving a database that participated in mirroring, the shutdown reason would not have been recorded correctly. On Unix systems, it would have been recorded as being a result of a SIGHUP signal. On Windows systems, it would have been recorded as being a result of a request from the console. This has been fixed so that it is now correctly recorded as being a result of a start-up error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547254">547254</a></td>
<td>The Interactive SQL utility (dbisql) could have reported an internal error if the &quot;Run Script&quot; menu item was used to execute a script file that caused dbisql to close. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547385">547385</a></td>
<td>In rare circumstances, Sybase Central could have crashed when selecting a task in the tasks list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547392">547392</a></td>
<td>Database corruption was possible if a database crashed while a lazy checkpoint was in progress. For corruption to occur, pages must have been allocated during the lazy checkpoint and one of the following must have occurred prior to the checkpoint:</p>
<p>				- dropping a table or index</p>
<p>				- truncating a table (that could have been truncated quickly, eg. no triggers)</p>
<p>				- deleting or replacing long blobs (greater than roughly page size)</p>
<p>				- [in general] an operation that resulted in pages being freed without the contents being modified</p>
<p>				This was more likely to have been an issue on heavily loaded servers. This problem has been fixed by temporarily allocating the pages at the start of the lazy checkpoint and then re-freeing them at the end.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547415">547415</a></td>
<td>If all terms in a CONTAINS query were dropped, due to STOPLIST, MINIMUM and MAXIMUM TERM LENGTH settings of the text index, unnecessary searches in the text index could still have been performed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547496">547496</a></td>
<td>A long-running HTTP connection to an OEM server would have resulted in an authentication violation. This was corrected by making all HTTP connections authenticated by default.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547498">547498</a></td>
<td>Outer references are expressions used in a nested query block which reference table columns from the outside of that query block. For example, in the query below, &#39;T.Z+1&#39; is an expression used in a subquery referencing the base table column T.Z of the base table T which is in the FROM clause of the main query block. Such expressions are now sometimes considered constants inside the nested query block. These constants are used in many optimizations by the SA optimizer, such as order optimization, functional dependencies optimization, and MIN/MAX optimization. Previously, these outer references are always treated as non-constants. </p>
<p>				Q:</p>
<p>				select *</p>
<p>				from T</p>
<p>				where T.X &lt;&gt; (select max(R.Y) from R where R.Z = T.Z+1)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547504">547504</a></td>
<td>A multithreading application using the ADO .Net provider, could have hung due to incorrect thread synchronization. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547506">547506</a></td>
<td>The server could have become unresponsive when executing a query, if during an index scan very few rows satisfied the WHERE conditions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547513">547513</a></td>
<td>When running the server on Unix systems and using the -m command line option (&quot;truncate transaction log after checkpoint&quot;), the transaction log was not being truncated on checkpoints. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547514">547514</a></td>
<td>The QAnywhere plugin could have crashed Sybase Central when connected to a message store which contained thousands of messages. This has been fixed. Now, only the first 1000 messages are displayed. If there are more messages in the store, a message window will display a message that these are the latest 1000 messages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547522">547522</a></td>
<td>If the MobiLink system setup in the consolidated database was corrupt, then using the Check MobiLink System Setup command in the MobiLink plug-in could have caused a Java null pointer exception. This would only have happened if a MobiLink system setup stored procedure incorrectly had no parameters. This bug has been fixed. </p>
<p>				A workaround is to manually remove the MobiLink system setup and then re-run the command.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547541">547541</a></td>
<td>Using a server that is in In-memory mode to start a database requiring recovery would have caused the server to fail assertion 201842, &quot;Checkpoint log: failed to write info page&quot;. The server running in In-memory mode was unable to use the transaction and/or checkpoint logs for recovery. This has been changed so that the server running in In-memory Never-write mode (-im nw) will now read both logs during recovery only. When in In-memory Checkpoint-only mode (-im c), the server will read the transaction log during recovery only. This is useful for example, to validate a backup copy of a database that requires recovery, without making changes to the backed up copy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547593">547593</a></td>
<td>When in the Maintenance Plan wizard, if the checkbox for &quot;Disallow logins while the maintenance plan is running&quot; was checked, then logins would have been disallowed for all databases running on the server. Now, logins are disallowed only for the database in which the maintenance plan is defined.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547594">547594</a></td>
<td>In the Maintenance Plan wizard, if the checkbox &quot;Validate database pages&quot; was selected, then the generated event handler would have validated tables and materialized views as well, even if the checkbox &quot;Validate tables and materialized views&quot; was not selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547708">547708</a></td>
<td>Attempting to create a database with an apostrophe in a filename or the dba user&#39;s password, could have failed with a syntax error. Also, attempting to create a database with a dbkey containing a backslash may have resulted in a database which could not be connected to. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547713">547713</a></td>
<td>Sybase Central would have failed to delete a remote server or a directory access server if it had one or more proxy tables. Now, the proxy tables are automatically deleted before</p>
<p>				the remote server or directory access server is deleted. This fix restores the behaviour to what it was in versions 10 and earlier.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547716">547716</a></td>
<td>Attempting to add a blob to the download stream when using the MobiLink Direct Row API and the MLPreparedStatement.setBytes() method, would have failed. The method would have returned the error &quot;Value is out of range for conversion&quot; if the length of the byte array was larger than 65536 bytes. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547730">547730</a></td>
<td>If a corrupted UltraLite or SQL Anywhere remote client synchronized with a MobiLink server, it was possible for protocol errors to be generated. When this occurred, the MobiLink server console log would have shown the text:</p>
<p>				I. &lt;1&gt; failed reading command with id:%d and handle:%d </p>
<p>				I. &lt;1&gt; Synchronization complete</p>
<p>				This has been fixed. Now, the error message &quot;[-10001] Protocol Error: 400&quot; will be displayed and a synchronization error will be reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547738">547738</a></td>
<td>Starting with version 10.0.0, the server now uses a new mechanism to evaluate LIKE predicates that start with a prefix of non-wildcard characters. This mechanism is needed to provide correct results with the NCHAR collation. This new algorithm operates by computing sortkey hashes that specify a range of column values that could possibly match the LIKE predicate; the LIKE predicate is retained in some cases where it may further filter these returned rows. These sortkey hashes can be used as index range bounds to quickly filter the set of rows processed by the query. In the case that an index was not selected to process the LIKE predicate, the new implementation could have been more expensive, as it had the additional cost of computing the sortkey hash. The optimization has now been adjusted so that the sortkey hash bounds are used only if the LIKE predicate is used in an index scan. Otherwise, the like_prefix predicate is evaluated by comparing the column string to the pattern prefix character by character. This should give performance that meets or exceeds previous versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547779">547779</a></td>
<td>When creating a maintenance plan, the SQL for the plan&#39;s event handler would not always have been displayed in the database&#39;s Executed SQL tab. Instead the event SQL would have contained &quot;HANDLER null&quot;. This problem would only occur if the handler did not include an SMTP or MAPI password. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547858">547858</a></td>
<td>If columns used to build an NGRAM text index contained words shorter than N, some positional information could have been lost. The positional information would also have been lost if a CONTAINS query, that used the NGRAM text index, contained terms shorter than N. For example, if the value &#39;what a weather&#39; was stored in a column col1 indexed by NGRAM text index with N=4, the following CONTAINS queries would match the row:</p>
<p>				CONTAINS( col1, &#39;&quot;what a weather&quot;&#39;)</p>
<p>				CONTAINS ( col1, &#39;&quot;what weather&quot;&#39; )</p>
<p>				CONTAINS( col1, &#39;what NEAR[1] weat&#39; )</p>
<p>				CONTAINS( col1, &#39;what NEAR[2] weat&#39; )</p>
<p>				This has been fixed, so that only the first and fourth queries will now match the row. </p>
<p>				Note, all NGRAM text indexes built before this fix should be rebuilt either by using REFRESH TEXT INDEX ... FORCE BUILD (for MANUAL or AUTO REFRESH text indexes), or by dropping and recreating (for IMMEDIATE text indexes).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547905">547905</a></td>
<td>If a SQL statement contained comments using %-style comments, then the ODBC driver could have reported a syntax error when the comment contained an unmatched quote. </p>
<p>				For example:</p>
<p>				% it&#39;s a contraction</p>
<p>				The ODBC driver has to parse statements looking for ODBC escape sequences, but did not handle %-style comments. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR547906">547906</a></td>
<td>If a column in the consolidated database was larger than the corresponding column in the remote database, then the MobiLink server may have crashed when synchronizing. This has been fixed so that the sync will now abort with the error -10038.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548007">548007</a></td>
<td>A query that executed using intra-query parallelism did not respect the Priority connection option and would have executed at the &#39;normal&#39; priority level. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548032">548032</a></td>
<td>The MobiLink server would have printed the warning, &quot;[10082] MobiLink server has swapped data pages to disk&quot;, after it had swapped 5000 pages to disk, or about 20MB of row data. This has been changes so that it now prints this message after the first time the server must swap to disk. This should make it easier to diagnose performance problems when -cm is set slightly too small.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548033">548033</a></td>
<td>When synchronizing through a third-party server or proxy and using TLS or HTTPS, the sync could have failed with the stream error code STREAM_ERROR_READ and system error code 4099 (hex 1003). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548043">548043</a></td>
<td>Under heavy load, the server could have, in rare situations, generated a log that had an operation that would have been unreadable by the MobiLink client dbmlsync. Dbmlsync would have reported: &quot;Log operation at &lt;location&gt; has bad data at offset &lt;location&gt;&quot;. This was likely only possible on multiprocessor systems, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548059">548059</a></td>
<td>A server started with a 32K page size, and a large cache size (or a very high -gn value), could have failed an assertion during or immediately following server startup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548142">548142</a></td>
<td>The messages &quot;Failed to attach database worker thread&quot;, &quot;Error while attaching database worker thread to Java VM&quot; and &quot;Unable to attach worker to VM.&quot;, mention worker threads and database worker threads, but these errors can occur on any thread within the server. They have now been changed to &quot;Failed to attach thread&quot;, &quot;Error while attaching thread to Java VM&quot; and &quot;Unable to attach thread to .NET runtime.&quot; respectively.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548144">548144</a></td>
<td>If a network error occurred during a read from the stream, some MobiLink Java clients could have hung with 100% CPU utilization. This has been fixed. The MobiLink Monitor, the SQL Anywhere Monitor, the Notifier and QAnywhere are all affected by this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548153">548153</a></td>
<td>When using Interactive SQL to select text strings that include curly brackets or braces ie the characters 憑� and 憓� using the result format 憈ext� will cause a stack trace in Interactive SQL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548160">548160</a></td>
<td>In certain specific circumstances, some expressions in triggers could have caused the server to crash when executing the trigger. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548173">548173</a></td>
<td>Repeated update synchronizations, that is where existing client rows are updated, could have caused unnecessary database growth. A row storage problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548260">548260</a></td>
<td>The function REGR_R2( Y, X ) incorrectly returned NULL as the answer when COUNT(*) * SUM( Y * Y ) was equal to SUM(Y) * SUM(Y). This has been corrected so that the server will now return the correct answer of 1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548282">548282</a></td>
<td>CONTAINS queries with prefix terms that contained non-alphanumeric characters would fail to match rows containing the matching terms. Additionally, if the columns in the CONTAINS query were indexed using NGRAM text index, and the length of the prefix was greater than N, the CONTAINS query would also fail to find matches. If the columns in the CONTAINS query were indexed using a GENERIC text index with MINIMUM TERM LENGTH set to a value other than the default, searches for the phrase with a prefix shorter than MINIMUM</p>
<p>				TERM LENGTH could fail to find matches.</p>
<p>				Examples:</p>
<p>				query with non-alphanumeric characters: &#39; pre-school* &#39;, &#39; a_variable_n* &#39;, &#39; &quot; pre-scho* children &quot; &#39;</p>
<p>				query over 4-GRAM indexed columns: &#39; weath* &#39;, &#39; &quot; beau* weath* &quot; &#39;</p>
<p>				query over columns indexed by GENERIC</p>
<p>				text index with MINIMUM TERM LENGTH = 3: &#39; singular no* ending with &#39;, &#39; &quot; singular no* ending with &quot; &#39;</p>
<p>				This has been fixed so that the above examples are now interpreted as the following queries:</p>
<p>				&#39; pre-school* &#39; = &#39;&quot;pre school*&quot;&#39; (GENERIC text index)</p>
<p>				&#39; a_variable_n* &#39; = &#39;&quot;a variable n*&quot;&#39; (GENERIC text index)</p>
<p>				&#39; &quot; pre-scho* children &quot; &#39; = &#39;&quot;pre scho* children&quot;&#39; (GENERIC text index)</p>
<p>				(Note: STOPLIST and length restrictions are applied to all resulting terms except for the actual prefix, i.e. if &#39;pre&#39; was in the STOPLIST, the last query would be interpreted as &#39;&quot;scho* children&quot;&#39;)</p>
<p>				&#39; weath* &#39; = &#39;&quot;weat eath&quot;&#39; (4-GRAM text index)</p>
<p>				&#39; &quot; beau* weath* &quot; &#39; = &#39;&quot;beau&quot; &amp; &quot;weat eath&quot;&#39; (4-GRAM text index)</p>
<p>				&#39; singular no* ending with &#39; = &#39;singular no* ending with&#39; (GENERIC text index with MINIMUM TERM LENGTH = 3)</p>
<p>				&#39; &quot; singular no* ending with &quot; &#39; = &#39;&quot;singular ^ ending with&quot;&#39; (GENERIC text index with MINIMUM TERM LENGTH = 3. The ^ in the query represents the fact that the phrases with a single term between &#39;singular&#39; and &#39;ending&#39; will be found, and not those with no intervening terms, or multiple intervening terms)</p>
<p>				The following new rules were added to the CONTAINS query grammar with respect to NGRAM text indexes:</p>
<p>				1) If a prefix term is shorter than N, all NGRAMs beginning with the prefix will be matched. For example: on a 4-GRAM text index the query &#39;a*&#39; will match all the rows that contain at least one 4-GRAM beginning with a, including the following:</p>
<p>				&#39;apple pie&#39; (contains appl)</p>
<p>				&#39;container&#39; (contains aine)</p>
<p>				2) If a prefix term has length N or higher, it is converted to a search for the exact substring equal to the prefix. This is due to the fact that information about the beginning and end of a word is not stored in NGRAM index. Searches for &#39;apple&#39; or &#39;appl*&#39; on a 4-GRAM text index will both find rows containing words &#39;apple&#39; and &#39;pineapple&#39;.</p>
<p>				3) If a prefix term appears in a phrase in the CONTAINS query that will use NGRAM text index, the phrase is converted into an AND of two phrases - one from the beginning of the phrase up to and including the prefix term, and the other one beginning at the term following the prefix term and ending at the last term of the phrase. For example, for a 4-GRAM text index, query &#39; &quot; where ord* an* relati* distance &quot; &#39; is interpreted as &#39;&quot;wher here ord*&quot; &amp; &quot;an*&quot; &amp; &quot;rela elat lati&quot; &amp; &quot;dist ista stan tanc ance&quot;&#39;</p>
<p>				4) If one of the arguments to NEAR is a prefix, NEAR is converted to AND. For example, for a 4-GRAM text index, query &#39; app* NEAR orang* &#39; is interpreted as &#39;app* &amp; &quot;oran rang&quot;&#39;</p>
<p>				The following new rules were added to the CONTAINS query grammar with respect to GENERIC text indexes with MINIMUM TERM LENGTH &gt; 1:</p>
<p>				1) In a phrase, prefix term shorter than MINIMUM TERM LENGTH will be dropped. For example, on a GENERIC text index with MINIMUM TERM LENGTH = 3, query &#39; &quot; the g* weather &quot; &#39; will be interpreted as &#39;&quot;the ^ weather&quot;&#39; and will match both &#39;the good weather&#39; and &#39;the bad weather&#39;, but not &#39;the weather is good&#39;.</p>
<p>				2) Outside of a phrase, prefix term shorter than MINIMUM TERM LENGTH will match terms that are between MINIMUM and MAXIMUM TERM LENGTH and begin with the specified prefix.</p>
<p>				For example, on a GENERIC text index with MINIMUM TERM LENGTH = 3, query &#39; the g* weather &#39; will be interpreted as &#39;the &amp; g* &amp; weather&#39; and will match &#39;the good weather&#39;, &#39;the weather is good&#39;, but not &#39;the bad weather&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548322">548322</a></td>
<td>If an application calls PreparedStatement.executeBatch(), the iAnywhere JDBC driver is supposed to return an integer array that contains a status for each row in the batch. The iAnywhere JDBC driver was instead returning an integer array containing only two elements. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548323">548323</a></td>
<td>If many connections were making external environment (or Java) calls at the same time, and the number of worker threads had not been increased by an appropriate amount, then there was a possibility that the server would either have hung or crashed. A thread deadlock error will now be returned instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548431">548431</a></td>
<td>Sybase Central could have crashed when pasting a column in the table editor. The problem would only have occurred if a new column was added, but a name for the new column had not</p>
<p>				yet been specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548437">548437</a></td>
<td>Under rare circumstances, a loss of quorum could have resulted in the database file and the transaction log on the primary becoming out of sync. Subsequent attempts to start the database would have failed with the error &quot;Unable to start specified database: Cannot use log file &#39;&lt;name&gt;&#39; since it is shorter than expected&quot;. This has been fixed.</p>
<p>				Note, the likelihood of this problem appearing with 11.0.0 servers was even smaller than with 10.0.1 servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548455">548455</a></td>
<td>When attempting to export synchronized data to an Oracle database, the application could have given a false positive for a table&#39;s existence, which would have resulted in an export failure since it would not have tried to create the table for the current user. This has been fixed.</p>
<p>				Also, exports to Oracle previously used the Date data type. Now, for Oracle 9 or later Timestamp is used instead of Date.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548463">548463</a></td>
<td>Using the Certificate creation utility (createcert) to create certificates or certificates requests would have failed with the error &quot;Error occurred encoding object&quot;, when provided non-ASCII input. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548465">548465</a></td>
<td>Database startup events that used external environments or web procedures may have failed if the database was specified on the server start line. This has been fixed. </p>
<p>				Note that databases started later (after the server is up and running) would not have this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548470">548470</a></td>
<td>If a mirror server had shut down and then very quickly restarted as a preferred server, synchronization may have been delayed by thirty seconds. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548473">548473</a></td>
<td>When a version 9 server was used to run a databases created with version 7 or older, the server could have choosen inefficient query access plans due to errors in estimation of join selectivities. These database do not contain column statistics in the form of domain distribution histograms stored in the system table SYSCOLSTAT, as with later version. This has been corrected so that the server will now do a much better job of estimating these selectivities.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548519">548519</a></td>
<td>The process for creating the MobiLink stored procedures for DB2 mainframe (D2M) via syncd2m_jcl.sql was not complete. This has been fixed.</p>
<p>				With the addition of d2mrelod.jcl, the steps are now:</p>
<p>				1) Copy syncd2m_jcl.sql and edit it.</p>
<p>				Change {MLTABLESPACE} to your qualified tablespace, eg. MYDB.MYTS</p>
<p>				Change {WLMENV} to the name of a WLM associated with your DB2 instance</p>
<p>				2) Start DBISQL and connect to DB2 mainframe.</p>
<p>				File-&gt;Run your copy of syncd2m_jcl.sql.</p>
<p>				3) From the %SQLANY%\MobiLink\setup directory, FTP to your mainframe, running the following commands after you connect:</p>
<p>				bin</p>
<p>				hash</p>
<p>				cd xmit</p>
<p>				quote site recfm=fb lrecl=80</p>
<p>				quote site cyl</p>
<p>				put d2mload.xmit</p>
<p>				put d2mdbrm.xmit</p>
<p>				quit</p>
<p>				The two XMIT files on the mainframe are now:</p>
<p>				USERID.XMIT.D2MLOAD.XMIT</p>
<p>				USERID.XMIT.D2MDBRM.XMIT</p>
<p>				where &#39;USERID&#39; is the username you gave when connecting via FTP.</p>
<p>				4) Open a terminal session and run the following commands from the</p>
<p>				ISPF Command Shell:</p>
<p>				RECEIVE INDATASET(&#39;USERID.XMIT.D2MLOAD.XMIT&#39;)</p>
<p>				RECEIVE INDATASET(&#39;USERID.XMIT.D2MDBRM.XMIT&#39;)</p>
<p>				The output is:</p>
<p>				USERID.ML.LOADLIB</p>
<p>				USERID.ML.DBRMLIB</p>
<p>				5) Copy d2mrelod.jcl and edit it.</p>
<p>				Change USERID to your mainframe userid.</p>
<p>				Change DSNDB0T to your DB2 DSN.</p>
<p>				6) Run your copy of d2mrelod.jcl</p>
<p>				7) Copy d2mbdpk.jcl and edit it.</p>
<p>				Change USERID to your mainframe userid.</p>
<p>				Change DB0T to your DB2 SSID.</p>
<p>			 <img src='https://www.dbainfo.net/wp-content/uploads/image/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Run your copy of d2mbdpk.jcl</p>
<p>				The MobiLink schema should now be ready to use.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548580">548580</a></td>
<td>Synchronizing a UNIQUEIDENTIFIER field in a remote database to Oracle via MobiLink would have resulted in a 32 character UUID, followed by a NULL character and three other characters (typically also NULL). When sending GUIDs to Oracle, MobiLink was removing the hyphens to match the GUIDs generated by the SYS_GUID() function in Oracle, but was not trimming the ODBC bind length to account for the hyphen removal, thus resulting in 4 extra bytes in the string representation of the UUID in Oracle. These four extra characters have now been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548619">548619</a></td>
<td>When using the Foreign Key wizard to create a foreign key, or the Foreign Key Change Settings dialog to drop and re-create a foreign key with new settings, then the &quot;Allows null&quot; setting chosen would have been reversed. That is, if to allow nulls was chosen, then the foreign key would have been created to prohibit nulls, and vise versa. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548625">548625</a></td>
<td>When the -z command line option was used, or when request level logging was enabled, the server could have generated thousands of message of the form:</p>
<p>				&quot;Internal warning: &lt;x&gt; dispatch took &lt;y&gt; seconds&quot;</p>
<p>				where x is an object name and y is a number. This would have affected the Windows platform only, and not necessarily on all Windows machines. This has now been fixed.</p>
<p>				A workaround is turn off the -z option or request level logging.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548626">548626</a></td>
<td>If a table had a trigger defined that made an external environment call and many connections attempted to access the table at the same time, forcing table locks and simultaneous external environment calls, then there was a chance the server would have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548627">548627</a></td>
<td>Remote TCP connection attempts to servers running on Unix systems with IPv6 enabled, may have failed with the error &quot;Connection error: An error occurred during the TCPIP connection attempt.&quot; This was only likely to happen on machines that were ONLY using IPv6. This has been fixed. As a workaround, the IPv6 address of the server machine can be specified using the HOST parameter.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548710">548710</a></td>
<td>If recovery was attempted on a database that had grown since the last successful checkpoint had been executed, some pages may have become unavailable for reuse. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548716">548716</a></td>
<td>When the server was started with a command line that specified -xs option (comma-separated list of web protocols) without a port, the server &#39;Overview&#39; did not show the default port. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548721">548721</a></td>
<td>If the CREATE SYNCHRONIZATION PROFILE statement was used to create a synchronization profile with embedded whitespace in the options string, then Sybase Central was not able to parse the string and display the option values on the Synchronization Profile property sheet. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548724">548724</a></td>
<td>When using an ASE consolidated database, the MobiLink server with messaging enabled will log deadlock errors, such as the following, when several QAnywhere clients are synchronizing concurrently:</p>
<p>				E. 10/07 09:14:13. Error: java.sql.SQLException: [DataDirect][ODBC Sybase Wire Protocol driver][SQL Server]Your server command (family id #0, process id #342) encountered a deadlock situation. Please re-run your command.</p>
<p>				These errors happen because ASE uses page-level locking by default. This locking level causes deadlocks with many of the SQL statements executed by MobiLink with QAnywhere, especially as many clients are synchronizing concurrently. This problem can be worked around by executing the following SQL statements on the ASE consolidated database, when the database server is not handling other requests:</p>
<p>				alter table ml_qa_repository lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_delivery lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_notifications lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_global_props lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_status_history lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_repository_props lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_repository_staging lock datarows</p>
<p>				go</p>
<p>				alter table ml_qa_status_staging lock datarows</p>
<p>				go</p>
<p>				create index ml_qa_delivery_cli on ml_qa_delivery ( client )</p>
<p>				go</p>
<p>				create index ml_qa_delivery_dld on ml_qa_delivery ( client, syncstatus, status )</p>
<p>				go</p>
<p>				create index ml_qa_mstage_user on ml_qa_repository_staging ( mluser )</p>
<p>				go</p>
<p>				create index ml_qa_sstage_user on ml_qa_status_staging ( mluser )</p>
<p>				go</p>
<p>				These SQL statements change the QAnywhere system tables to use row-level locking, and add some indexes for increased performance.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548833">548833</a></td>
<td>If a server was very busy, and several connections attempted to start external environments at the same time, and if several of the start external environment requests timed out, then, in very rare cases, the server could eventually have become unresponsive. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548870">548870</a></td>
<td>A database could have become corrupted when deleting rows containing long string (or binary) values that were indexed. The server then may have crashed, or failed an assertion, when attempting to read rows from the table at a later time. The server would likely have crashed during full validation of a table corrupted in this manner. This has been fixed. Dropping and re-creating the index should be a valid workaround.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548890">548890</a></td>
<td>The delivery condition for a destination alias may not have been fully visible on the &quot;Members&quot; tab of the alias&#39; property sheet. The cells in the table have their height and width set explicitly . The code which calculated a row&#39;s height looked only at data in the second column, rather than using the data in all three columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548895">548895</a></td>
<td>Sybase Central could have created a dialog, property sheet or wizard whose window was larger than the screen. This would have made it difficult to work with the window. This has been fixed so that Sybase Central now ensures that dialogs, property sheets and wizards are no longer than the screen.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548941">548941</a></td>
<td>Statements with a CONTAINS clause, and statements over text index stored procedures (for example, sa_text_index_vocab), could have incorrectly returned no results. This problem affected only MANUAL and AUTO REFRESH text indexes, and only occurred when statements that useed a MANUAL or AUTO REFRESH text index had to be executed simultaneously with a REFRESH statement on the same text index. Alternatively, if the statement was prepared or cached by the server before a REFRESH on the text index occurred, an empty result set could also be returned when the prepared statement or cached plan was used after the REFRESH has completed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR548981">548981</a></td>
<td>The pages allocated for temporary tables was not being recovered after an abnormal shutdown. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549048">549048</a></td>
<td>When displaying results as text, the row count was not being displayed under each result set. This has been corrected so that the count will now be displayed, unless the result is returned from a stored procedure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549052">549052</a></td>
<td>Scheduled transmission rules defined in the MobiLink server for QAnywhere message transmission, could have behaved unexpectedly in some circumstances. The server would have sent push notifications to clients with waiting messages satisfying the condition of a scheduled rule according to the schedule. However, if a client synchronized with the server for any reason, whether or not as a result of a push notification from a scheduled rule, messages satisfying the condition of a scheduled rule would have been transmitted to the client. Thus, the unexpected behaviour was that messages that satisfied the condition of a scheduled rule in the server could have been transmitted from the server to clients at times differing from the times specified in the schedule. This has been fixed so that the transmission of messages that satisfy the conditions of the scheduled rules from the server to clients is now governed more closely by the schedule specified in those rules.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549085">549085</a></td>
<td>A heavily-loaded server could have hang while running diagnostic tracing with a high detail level. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549088">549088</a></td>
<td>Under rare circumstances, the server could have failed to report the warning &quot;Row has been updated since last time read&quot; (SQLCODE 104), when using a value-sensitive cursor and fetching a row that had been modified since it was last fetched. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549098">549098</a></td>
<td>If an application issued an external environment request, and the external environment process crashed for whatever reason at the same time, then there was a chance, although likely rare, that the server would have crashed as well. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549142">549142</a></td>
<td>The LIKE operation could have produced incorrect results. The operation did not operate case insensitively, and the first character of a range was not accepted. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549218">549218</a></td>
<td>If an application creates a scrollable statement and then scrolls through the result set, calling ResultSet.getRow() will return the correct row number for all rows. Calling ResultSet.getRow() will also return the correct row number when the end of the result set is reached. However, if the application called ResultSet.isLast() while positioned on the last row of the result set and then called ResultSet.getRow(), the row number returned would have been &quot;invalid&quot; or &quot;unknown&quot;. This problem has now been fixed. </p>
<p>				Note that calling ResultSet.getRow() after calling ResultSet.isLast() while positioned on any row other than the last row would have returned the correct row number.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549235">549235</a></td>
<td>The external names for the D2 Mainframe stored procedures were supposed to be xxxa for version 10, xxxxb for version 11, and xxxxc for version 12. The changes for Engineering case 545762 incorrectly caused the names to be xxxxW. The scripts sent out as xxxxW will still be okay, as the important thing is that major versions differ in the external names by at least one character, so customers can use multiple versions of MobiLink in the same consolidated. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549396">549396</a></td>
<td>Some arithmetic expressions in procedure statements could have been evaluated with the incorrect result domain. This would have occurred when one of the arguments had one of the following domains { BIT, TINYINT, UNSIGNED SMALLINT, SMALLINT } and the other argument was either one of those domains or INT. The result domain would have been INT. In some cases this could have lead to a different result being returned than expected, for example if an overflow would have occurred in the correct result domain. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549419">549419</a></td>
<td>If an Open Client application that supports retrieving result sets with a large number of columns attempts to perform an encrypted login, the login would have failed with a protocol error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549424">549424</a></td>
<td>A server running a tracing database could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549431">549431</a></td>
<td>If a Windows based machine had both 32 and 64 bit client software installed, and an application subsequently attempted to use the iAnwhere JDBC driver, the driver may have thrown the exception UnsatisfiedLinkError indicating that it had attempted to load a dbjodbc11.dll of the wrong bitness. This problem has now been fixed.</p>
<p>				Note that switching the order in which the Bin32 and Bin64 directories appear in the path will work around this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549453">549453</a></td>
<td>When manually unregistering the SQL Anywhere ODBC driver from the command line using &quot;regsvr32 -u dbodbcXX.dll&quot;, the unregistration process may have failed and reported error code 0x8000ffff. Note that the failure occurred after the user successfully acknowledged the prompt to allow dbelevate (the &quot;SQL Anywhere elevated operations agent&quot;) to run as an administrator. This problem has been fixed.</p>
<p>				As a work-around, run &quot;regsvr32 -u dbodbcXX.dll&quot; from a command shell which is already elevated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549461">549461</a></td>
<td>When attempting to update data in a proxy table on the &quot;Data&quot; tab in Sybase Central, or by manipulation of the result set in the Interactive SQL utility, the operation would have failed with the error &quot;Feature remove savepoints not implemented.&quot; This been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549466">549466</a></td>
<td>The &quot;-host&quot; and &quot;-port&quot; command line options were completely ignored when connecting to a SQL Anywhere database. This problem also affected the Console utility (dbconsole) as well. It has now been fixed.</p>
<p>				As a workaround, use the &quot;-c&quot; command line option instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549518">549518</a></td>
<td>The Schema Painter Create UltraLite Database Browse dialog was not filtering for database files, but incorrectly filtered by SQL files (*.sql). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549606">549606</a></td>
<td>If an ALTER TABLE statement added a column with a user-defined type having a default value, subsequent ALTER&#39;s affecting the table could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549622">549622</a></td>
<td>A server running on a Linux system, may have hung when under heavy I/O load, and a large number of concurrent request tasks (i.e. large -gn value). Specifically, if -gn was larger than 250, then there was a chance a hang may have occurred. This has been fixed. The workaround is reduce the -gn value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549628">549628</a></td>
<td>When starting a backup, if any dbspace files had not already been opened by the server (for example, the file was moved), the server could crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549636">549636</a></td>
<td>When connected to a SQL Anywhere database in Admin mode of the MobiLink plug-in for Sybase Central, any internal tables used for maintaining text indexes would have been displayed under the Tables folder. This has been corrected so that these tables are now excluded, since they are of no use to users when creating table scripts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549644">549644</a></td>
<td>When running on Linux systems, a mini core could have been improperly generated under rare circumstances.This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549682">549682</a></td>
<td>In rare, timing-dependent circumstances, multi-threaded client applications with multiple simultaneous TLS connections could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549800">549800</a></td>
<td>The SQL Anywhere ODBC driver incorrectly described a column of type NCHAR as SQL_WVARCHAR (-9), instead of SQL_WCHAR (-8), when the odbc_distinguish_char_and_varchar database option was set &#39;off&#39;. In the following SQL statement, the two columns should be described as SQL_WCHAR and SQL_WVARCHAR respectively.</p>
<p>				select cast(&#39;abc&#39; as nchar),cast(&#39;abc&#39; as nvarchar)</p>
<p>				This problem did not affect calls to SQLColumns(), but it did affect calls to SQLDescribeCol(). This problem has been fixed. </p>
<p>				The odbc_distinguish_char_and_varchar option is intended for CHAR columns only. It is provided for backwards compatibility with older versions of the SQL Anywhere ODBC driver. For backwards compatibility, the odbc_distinguish_char_and_varchar option is set &#39;off&#39; by default. When odbc_distinguish_char_and_varchar option is set &#39;on&#39;, the ODBC driver will describe CHAR columns as SQL_CHAR, rather than SQL_VARCHAR.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549829">549829</a></td>
<td>When using the SQL Anywhere PHP driver, calling the sasql_num_rows() function always returned zero if the function sasql_query() was used with the SASQL_USE_RESULT option, or the function sasql_use_result() was called. According to the documentation, the function sasql_num_rows() is supposed to return an estimate with SASQL_USE_RESULT, and an exact value with SASQL_STORE_RESULT. This has now been fixed.</p>
<p>				The workaround is to use the SASQL_STORE_RESULT option or call the function sasql_store_result().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549846">549846</a></td>
<td>In rare cases, monitoring of a heavily loaded server using the system procedure sa_performance_diagnostics, could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549847">549847</a></td>
<td>In rare cases, an execution plan using parallelism, and index-only retrieval with a string or numeric column, could have caused a crash or possibly returned a wrong answer. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549866">549866</a></td>
<td>The server could have crashed, or failed assertions, when under heavy load if pages were freed. The assertions were most likely to be about unexpected page types or contents. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549932">549932</a></td>
<td>The iAnywhere JDBC driver has supported the PreparedStatement.addBatch() and PreparedStatement.executeBatch() methods for quite some time now, but, these methods were only supported for INSERT statements. These methods will now also be supported for UDATE and DELETE statements, provided the underlying connection is to an SA server. If the underlying connection is to a non-SA server, then these methods will still only be supported for INSERT.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549940">549940</a></td>
<td>If a transaction log was not completely written out to disk (e.g. during a low disk space scenario), it was possible for the server to crash when trying to apply a partial log operation during recovery. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549967">549967</a></td>
<td>A SELECT ... FOR XML ... over an NCHAR value could have caused a string right truncation error to be generated. </p>
<p>				For example:</p>
<p>				SELECT * from table FOR XML AUTO</p>
<p>				where table is defined with an NCHAR column, e.g.:</p>
<p>				create table (col1 LONG NVARCHAR);</p>
<p>				For the error to have occurred, the byte length of the NCHAR value must have been greater than 32767, and the &quot;string_rtruncation&quot; database option must have been set to &quot;on&quot; (which is the default). </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549983">549983</a></td>
<td>If an application executed a query involving both proxy tables and local tables, and the query had IN predicates that contained subqueries involving proxy tables, then there was a chance executing the query would have caused a server crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR549999">549999</a></td>
<td>If an Open Client application supports retrieving result sets with a large number of columns, then attempting to perform a Kerberos login using such an application would have failed with a protocol error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR550080">550080</a></td>
<td>In the Sybase Central QAnywhere Plugin, if when connected to a server message store a client was created, and then the view refreshed, the newly created client would not have been displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_62.htm#CR550083">550083</a></td>
<td>Clicking the &quot;Generate/INSERT statement&quot; menu in the &quot;Results&quot; pane could have incorrectly caused the error &quot;An INSERT statement could not be generated. The results are from more than one table or contain only computed columns.&quot; This has been fixed.</p>
<p>				Note, this problem appeared on the &quot;Data&quot; tab in Sybase Central, and has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550095">550095</a></td>
<td>If a query execution plan contained a Group-By Hash operator and one of the aggregates computed was marked as DISTINCT, then the server could have crashed while executing the statement. In order for the crash to occur, specific characteristics needed to be present in the statement. Thishas now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550103">550103</a></td>
<td>Attempting to query a proxy table with a SELECT statement that used the FOR XML RAW clause would have failed with an &quot;invalid expression&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550116">550116</a></td>
<td>In rare cases, a stored procedure call could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550120">550120</a></td>
<td>An UltraLite .NET synchronization initiated by the SYNCHRONIZE SQL statement would have hung if no global listener was provided via the DatabaseManager::SetGlobalListener method. The unmanaged code always registered a global sync listener to send sync status messages, but the managed code only created a listener for these messages if the DatabaseManager::SetGlobalListener method was called, which resulted in the hang. Now the unmanaged code now only registers a global sync listener when SetGlobalListener is called.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550159">550159</a></td>
<td>The ia32-libs package is required to install SQL Anywhere on 64-bit Ubuntu distributions. It is also required to run any 32-bit software on 64-bit Ubuntu distributions.</p>
<p>				Futhermore, resolving host names from 32-bit applications will fail on 64-bit Ubuntu installations, unless the package lib32nss-mdns is installed. See:</p>
<p>http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479144</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550236">550236</a></td>
<td>If a query execution plan included parallelism and specific expression types were used, it was possible for memory corruption or assertion failures to occur when the query was executed. The following expression types could have caused the problem:</p>
<p>				SORTKEY()</p>
<p>				COMPARE()</p>
<p>				CONVERT( &lt;date, time, or timestamp&gt;, &lt;string expression&gt; )</p>
<p>				In order for the failure to occur, further specific characteristics needed to be present in the string parameters to the above functions. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550246">550246</a></td>
<td>If an application attempted to create a proxy table to a SQL Anywhere or Micrsoft SQL Server remote server, and the remote table had an XML column, then the server would have returned an undefined data type error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550247">550247</a></td>
<td>The MobiLink Deployment wizard could have crashed with a missing resource exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550252">550252</a></td>
<td>If an application made a remote procedure call that contained output parameters of type Float, and the remote server for that RPC was using one of the SAJDBC or ASEJDBC classes, then the value of the Float output parameter would always have been 0. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550260">550260</a></td>
<td>When using UltraLite .NET, the ULConnection&#39;s SyncResult was not updated after doing a synchronization via the SYNCHRONIZE SQL statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550267">550267</a></td>
<td>If an application set the java_vm_options option, and then attempted to start the Java VM on a Unix system, there was a chance the extra VM options would not have been used when the VM was launched. This problem has now been fixed. </p>
<p>				Note that this problem does not exist on Windows platforms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550362">550362</a></td>
<td>In a database mirroring system, if the transaction log on the primary server was renamed via a backup, the mirror server could have reported various failed assertions, for example:</p>
<p>				100902, 100903: Unable to find table definition for table referenced in transaction log</p>
<p>				100904: Failed to redo a database operation</p>
<p>				For this problem to have occurred, other connections must have been making changes to the database at the time the log is renamed. The problem seemed to occur more frequently if many old log files were present on the primary server. The copy of the transaction log on the mirror server would have been corrupted as a result of this problem. When the log was renamed, there was a small window during which another connection could force a log page to be sent to the mirror before the mirror was notified that the log was renamed. The transaction log lock is now held across this window.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550379">550379</a></td>
<td>Sybase Central would have failed to load plugins on start-up when it was run on Korean Windows systems. The wrong codepage was being used to read the .jrp file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550416">550416</a></td>
<td>If an application executed a Java in the database stored procedure, and then subsequently canceled the request, in very rare cases the server may have crashed if the cancel request coincided with the Java request actually finishing. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550418">550418</a></td>
<td>The Python module would have sent all &quot;string&quot; host variable data as varchar data. This would have resulted in an unwanted character set conversion when the desired type was binary. This has been fixed.</p>
<p>				As well, Python scripts can now pass an instance of sqlanydb.Binary in the variable data list. This will cause the value to be sent as binary data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550502">550502</a></td>
<td>There was a small possibility that canceling an HTTP request to a SQLAnywhere service, as the server was shutting down, may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550503">550503</a></td>
<td>When running in console mode, if a SQL statement caused a warning, and the &quot;-q&quot; command line option was not used, the Interactive SQL utility would have prompted the user to press ENTER before continuing. This has been corrected so that the warning message is now printed, and the user is not prompted. This was the behavior in version 10.0.1 and earlier.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550506">550506</a></td>
<td>In order to determine if a stored procedure returns a result set, the iAS Oracle ODBC issues a query to the Oracle database when the DSN option, &quot;Procedure returns results&quot; is checked. However, this query was not in an optimal form and the Oracle server needed to compile it every time before execution. The query has now been rewritten by using host variables, so that the actual SQL statement is always been the same, and the Oracle server can use it from the hash without recompiling it.</p>
<p>				To further improve the query, an extra connection parameter, ProcOwner (the long form) or POwner (the short form), has been introduced in the iAS Oracle ODBC driver. This parameter can be given as follows:</p>
<p>				-c &quot;uid=...;pwd=...;powner=my_procedure_owner;...&quot;</p>
<p>				If this connection parameter is given, the query will be limited to the stored procedures owned by the given owner only. Please note, if not all the stored procedures used in the synchronization have a single owner, this extra connection parameter should not be used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550525">550525</a></td>
<td>If a communication error occurred during the last few bytes of the upload, or first few bytes of the download, UltraLiteJ would have assumed that the upload failed and revert the progress for it. In this scenario, MobiLink may have actually accepted the upload and thus its progress offsets would conflict with the client. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550536">550536</a></td>
<td>If an application was using Java in the database and the Java VM run out of memory, then the Java VM would have remained alive even though Java in the database requests could no longer be made. The Java VM will now exit in this situation, and new Java in the database requests will now automatically restart a new Java VM.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550555">550555</a></td>
<td>The server could have crashed when executing the WRITE_CLIENT_FILE() function, or when unloading a table to a client file. This failure was more likely when the data being written was large (on the order of tens of megabytes), and when the server was heavily loaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550669">550669</a></td>
<td>If a query plan contained a hash-based operator (group-by, distinct, or join) and the plan allowed at least one other operator to consume memory at the same time as the hash-based operator, then the execution plan could have been slower than it should have been. This slowness would also have resulted from high CPU usage. The slow behaviour did not occur if the hash-based operator appeared in a parallel execution plan, but only occurred in specific memory configurations. This slowdown has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550676">550676</a></td>
<td>Attempting to construct a string value longer than the server&#39;s maximum string length (2^31-1) would have resulted in silent trucation of string data. </p>
<p>				For example, the statement:</p>
<p>				select length(repeat(&#39;a&#39;, 2000000000) || repeat(&#39;b&#39;, 2000000000))</p>
<p>				returns 2147483647 (i.e., 2^31-1) characters, but does not raise a SQL error to indicate the operation failed and truncated the string data. This has been fixed so that SQL Error -1313 MAX_STRING_LENGTH_EXCEEDED will now be generated whenever an operation attempts to construct a string value longer than the server&#39;s internal maximum string length.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550687">550687</a></td>
<td>In very rare circumstances, a server acting as a mirror in a High Availability setup may have spuriously hit assertion 100917 - &quot;Unable to re-read a transaction log page&quot; while shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550693">550693</a></td>
<td>The server could have generated bad query execution plans due to incorrect index statistics. This has now ben corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550694">550694</a></td>
<td>A string ending with an incomplete multi-byte character may have had extra characters appended to its escaped representation as generated by an UNLOAD TABLE statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550695">550695</a></td>
<td>Under rare circumstances, the server could have crashed while trying to load trigger definitions from the catalog. The error was likely to have occurred while trying to compile an invalid query. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550716">550716</a></td>
<td>If an application updated a proxy table and then queried the TransactionStartTime property, the value returned by the property would not have been properly updated. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550723">550723</a></td>
<td>If the Data tab for a table or view was selected, columns were added, modified or removed from the table or view, and the Data tab was selected again, then the column changes would not have been reflected in the Data tab. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550725">550725</a></td>
<td>A query with many predicates (original or inferred) was slower than some earlier versions, due to many semantic transformations in the parse tree. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550729">550729</a></td>
<td>The user-supplied comment clause provided by the WITH COMMENT clause that may accompany the BACKUP statement was written to the backup.syb log in the database character set, rather than the OS character set. All other information, such as database name is written in OS charset. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550803">550803</a></td>
<td>When using the system procedure xp_sendmail(), if the message body contained a period &quot;.&quot; on a line by itself, text following that line would have been removed from the message that was sent. A line containing a single period is the end-of-message marker for the SMTP protocol. When sending a line that begins with a single period, clients must precede it with another period character, which xp_sendmail() was not doing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550838">550838</a></td>
<td>The server was not utilizing 100% of all CPUs with a workload that should have been mostly CPU bound with interleaving I/O. This would likely have occurred on lightly loaded servers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550839">550839</a></td>
<td>Dynamic cache size tuning was not enabled while databases were recovering at server startup. Prior to 9.0.0, dynamic cache size tuning was enabled during recovery. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550841">550841</a></td>
<td>Entity headers and a response body should not have been returned by a web service having explicitly set a &#39;Not Modified&#39; HTTP status via a call to sa_set_http_header ( &#39;@HttpStatus&#39;, &#39;304&#39; ). The following response headers were being returned:</p>
<p>				Transfer-Encoding: chunked</p>
<p>				Expires: ... GMT</p>
<p>				Content-Type:...</p>
<p>				As an artifact of the chunked transfer encoding, a response body consisting of a 0 chunk length was returned. This has been corrected so that a response body and the above headers will not be sent by the server when a 304 &#39;Not Modified&#39; HTTP status has been explicitly set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550956">550956</a></td>
<td>The Relay Server may have reported the error &quot;Internal error! Session number out of sync.&quot; when handling a server response. When this error occurred, further traffic going through the same Relay Server to this particular responding backend server, had an increased chance of failure. This would have reduced the quality of service to the affected Relay ServerS serving the backend server where the problem first arose. The problem also would not have cleared itself until the affected Relay Server was restarted. Traffic going through other Relay Servers in the Relay Server farm, traffic going through the same Relay Server to other backend farms, or traffic going through the same Relay Server to other servers within the same backend farm would not have been affected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550957">550957</a></td>
<td>The Relay Server cannot grow the pre-allocated shared memory dynamically and it is essential that users start up the server with sufficient memory to handle foreseeable peak traffic. As well. there has been no tool for users to determine the amoumt of shared memory Relay Server was using. Now, a snap shot of shared memory usage is reported in the log file whenever the log is archived. That is when rshost.exe -ua is executed, the running Relay Server will log the current shared memory usage, archive and then truncate the log file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550985">550985</a></td>
<td>There are documented rules for making Relay Server configuration changes in a Relay Server farm environment. When those rules were violated, a farm of Relay Servers may have resulted in heterogeneous backend farm and server indices on different Relay Servers. When a tcp load-balancer, instead of a http load-balancer, was used to maintain client-RS affinity, client sessions could not survive moving across Relay Servers in such Relay Server farms. This has been fixed by remoings the need to keep the indices in sync across all Relay Servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550989">550989</a></td>
<td>When the Relay Server was relaying normal Afaria traffic, it would have reported the following error and warning:</p>
<p>				... &lt;F0B1S0R0&gt; IIS ReadClient error(10054): Connection was forcibly closed by the remote host.</p>
<p>				... &lt;F0B1S0R0&gt; Failed reading from client. Aborting this request.</p>
<p>				... &lt;F0B1S1R1&gt; Communication warning! Backend server disconnected before finishing response.</p>
<p>				These are expected, as Afaria traffic uses false http content-length. The Relay Server will now suppress these messages for Afaria traffic.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550991">550991</a></td>
<td>Client type information was not available in Relay Server log. Alternatively, users may have been able to derive the client type by looking at the optional user-agent header logging in the Web server&#39;s access log. However user-agent headers can be uncontrollable on certain mobile application platforms. Changes have been made which now allows the Relay Server to identify the following 11 types of known clients using a combination of user-agent header and proprietary header:</p>
<p>				Afaria</p>
<p>				dblsn</p>
<p>				DBMLSync</p>
<p>				MLClient // All pre-11.0.1 ml clients</p>
<p>				MLFileTransfer</p>
<p>				MLLightPoll</p>
<p>				MLMonitor</p>
<p>				UltraLite</p>
<p>				UltraLiteJ</p>
<p>				QAnywhere</p>
<p>				QAnywhereUL</p>
<p>				These client types, and the full client information (usually including build and version), will be logged by the Relay Server under verbosity level 1 or higher.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR550999">550999</a></td>
<td>If an error occurred while the Relay Server Outbound Enabler was attempting to renew the up channel, it did not try again. Current client sessions going through the Outbound Enabler would not have survived. This has been fixed so that the Outbound Enabler now attempts again to renew the up channel, in order to preserve active client sessions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551002">551002</a></td>
<td>When a backend farm or backend server was disabled, the associated Relay Sserver Outbound Enabler could still have connected to a Relay Server even though further new relay service to that farm or server was blocked. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551003">551003</a></td>
<td>When a backend server entry was removed from the Relay Server configuration file, and the rshost -u command was applied, the removed backend server should have been disabled, but it was not. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551112">551112</a></td>
<td>If a database mirroring server encounters a failed assertion, the desired behaviour is for the server to exit. This allows the mirroring partner server to detect that a failure has occurred and take an appropriate action. After a failed assertion on Windows, the server was exiting in such a way as to cause Windows to display a dialog noting the abnormal exit. This prevented the server from actually exiting until action was taken to clear the dialog, and thus prevented the partner server from being notified. This has been fixed. </p>
<p>				In addition to this change, customers should consider configuring dbsupport to ensure that it does not prompt when a failure occurs. For example:</p>
<p>				dbsupport -cc autosubmit</p>
<p>				or </p>
<p>				dbsupport -cc no</p>
<p>				A future version of the software may avoid the need to configure dbsupport to prevent prompting in this situation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551124">551124</a></td>
<td>Typing completion would have inadvertently added the table&#39;s owner name when completing a column name after a table alias in the following places:</p>
<p>				1. The column list in a SELECT statement</p>
<p>				select C. from customers C</p>
<p>				^</p>
<p>				2. The WHERE clause in a DELETE statement</p>
<p>				delete from customers C where C.</p>
<p>				^</p>
<p>				3. The SET or WHERE clauses of an UPDATE statement</p>
<p>				update Customers C set C.</p>
<p>				^</p>
<p>				update Customers C set C.City = &#39;Waterloo&#39; where C.</p>
<p>				^</p>
<p>				This has been fixed by suppressing adding the owner&#39;s name if the inserted text immediately follows a table alias.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551146">551146</a></td>
<td>When creating or renaming an object, if the name specified was a SQL keyword, Sybase Central could have erroneous issued a warning that the specified name would need to be double-quoted when used in a SQL script. This has been fixed. Now, Sybase Central only issues a warning if the specified name is both a SQL keyword and a SQL reserved word.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551255">551255</a></td>
<td>In certain circumstances, the server could have crashed, or otherwise failed, when executing mutliple LOAD TABLE statements concurrently when in in-memory no write mode (i.e., the server was started with the &quot;-im nw&quot; option). This failure was far more likely to occur if one or more of the LOAD TABLE statements failed with a SQL Error, as would be the case if the file being loaded from could not be located or opened. There was also a very small window of opportunity where the server could have crashed, or failed an assertion, even if none of the LOAD TABLE statements failed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551259">551259</a></td>
<td>If a mirror server encountered a failed assertion, the primary server could have hung when the mirror server was stopped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551261">551261</a></td>
<td>Index scans done with a snapshot isolation level could have returned incorrect results if there were concurrent UPDATE and DELETE statements to the underlying table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551262">551262</a></td>
<td>If a cached plan for a MERGE statement was reused, the MERGE statement could have failed to perform the required updates. In particular, this problem could have affected immediate materialized view maintenance, if the view was updated multiple times by the same connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551264">551264</a></td>
<td>On Windows systems, if msvcr71.dll is not on the path and Java, the Notifier, QAnywhere or SQLPassthrough were being used, then the MobiLink server would have failed to start with an error stating that MSVCR71.DLL could not be loaded. This has been fixed.</p>
<p>				A work around is to put msvcr71.dll on the path. It is installed with the JRE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551297">551297</a></td>
<td>When unloaded using the Unload utilities external unload (i.e., dbunload -xx or -xi), a table containing binary values could have had the contents of these values truncated. The binary values would typically have to have been longer than approximately 500 bytes for this bug to occur. This has been fixed.</p>
<p>				A workaround is to use an internal unload.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551406">551406</a></td>
<td>A MobiLink server with messaging enabled, using an ASE consolidated database, could have logged errors such as the following when a QAnywhere client synchronizes:</p>
<p>				Stored procedure &#39;ml_qa_upsert_global_prop&#39; not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).</p>
<p>				(ODBC State = 42000, Native error code = 2812)</p>
<p>				Error: Unable to insert into table &#39;ml_qa_global_props_client&#39; using upload_insert</p>
<p>				This problem may have been as a result of the fix made for Engineering case 546131. That fix involved MobiLink creating this stored procedure at startup if it does not exist. In order for MobiLink to be able to create the stored procedure, the database option &quot;ddl in tran&quot; needed to be true. Therefore, there are two possible workarounds for this problem:</p>
<p>				Workaround 1: Set &quot;ddl in tran&quot; to true in the database by executing the following SQL statements on the database, where database_name is the name of the database used as the QAnywhere server message store.</p>
<p>				use master</p>
<p>				go</p>
<p>				sp_dboption database_name, &quot;ddl in tran&quot;, true</p>
<p>				go</p>
<p>				Workaround 2: If workaround 1 is not desirable, execute the following SQL statements on the database to make the changes described in case 546131:</p>
<p>				drop trigger ml_qa_repository_trigger</p>
<p>				go</p>
<p>				create trigger ml_qa_repository_trigger on ml_qa_repository for delete</p>
<p>				as</p>
<p>				delete from ml_qa_repository_props from deleted d, ml_qa_repository_props p</p>
<p>				where d.msgid = p.msgid</p>
<p>				delete from ml_qa_delivery from deleted d, ml_qa_delivery p</p>
<p>				where d.msgid = p.msgid</p>
<p>				delete from ml_qa_status_history from deleted d, ml_qa_status_history p</p>
<p>				where d.msgid = p.msgid</p>
<p>				go</p>
<p>				drop procedure ml_set_device_address</p>
<p>				go</p>
<p>				create procedure ml_set_device_address</p>
<p>				@device varchar(255),</p>
<p>				@medium varchar(255),</p>
<p>				@address varchar(255),</p>
<p>				@active char(1),</p>
<p>				@ignore_tracking char(1),</p>
<p>				@source varchar(255)</p>
<p>				as</p>
<p>				declare @d varchar( 255 )</p>
<p>				if @active = &#39;y&#39; begin</p>
<p>				update ml_device_address</p>
<p>				set active = &#39;n&#39; </p>
<p>				where address = @address</p>
<p>				and medium = @medium</p>
<p>				and active = &#39;y&#39;</p>
<p>				and device_name &lt;&gt; @device</p>
<p>				end</p>
<p>				select @d=device_name from ml_device_address</p>
<p>				where device_name = @device and medium = @medium</p>
<p>				if @d is null begin</p>
<p>				insert into ml_device_address( device_name, medium, address, active, ignore_tracking, source )</p>
<p>				values( @device, @medium, @address, @active, @ignore_tracking, @source )</p>
<p>				end</p>
<p>				else begin</p>
<p>				if @source = &#39;tracking&#39; begin</p>
<p>				update ml_device_address </p>
<p>				set address = @address,</p>
<p>				active = @active,</p>
<p>				ignore_tracking = @ignore_tracking,</p>
<p>				source = @source</p>
<p>				where device_name = @device and medium = @medium and ignore_tracking = &#39;n&#39;</p>
<p>				end</p>
<p>				else begin</p>
<p>				update ml_device_address </p>
<p>				set address = @address,</p>
<p>				active = @active,</p>
<p>				ignore_tracking = @ignore_tracking,</p>
<p>				source = @source</p>
<p>				where device_name = @device and medium = @medium</p>
<p>				end</p>
<p>				end</p>
<p>				go</p>
<p>				exec sp_procxmode &#39;ml_set_device_address&#39;, &#39;anymode&#39;</p>
<p>				go</p>
<p>				create procedure ml_qa_upsert_global_prop</p>
<p>				@client varchar(128),</p>
<p>				@name varchar(128),</p>
<p>				@modifiers integer,</p>
<p>				@value varchar(16384)</p>
<p>				as</p>
<p>				begin</p>
<p>				if exists( select 1 from ml_qa_global_props gp</p>
<p>				where gp.client = @client and gp.name = @name )</p>
<p>				update ml_qa_global_props</p>
<p>				set modifiers = @modifiers, value = @value</p>
<p>				where client = @client and name = @name</p>
<p>				else</p>
<p>				insert into ml_qa_global_props (client,name,modifiers,value)</p>
<p>				values( @client, @name, @modifiers, @value )</p>
<p>				end</p>
<p>				go</p>
<p>				exec sp_procxmode &#39;ml_qa_upsert_global_prop&#39;, &#39;anymode&#39;</p>
<p>				go</p>
<p>				These SQL statements make the changes to the server message store that are done automatically if database option &quot;ddl in tran&quot; is true.</p>
<p>				Note, MobiLink system schema changes can only be made in a major release, so these documented workarounds are provided. Later versions contain these fixes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551433">551433</a></td>
<td>Calling to the StartServer or WaitForServerShutdown methods when using the Dbmlsync .NET API, would have caused problems for some values of the timeout parameter. If the timeout value was greater than 2147483647, the WaitForServerShutdown method would always have returned DBSC_ERR_TIMED_OUT, and the StartServer method would also have returned DBSC_ERR_TIMED_OUT, unless the call was able to connect to an existing dbmlsync server on the port specified. The calls will now treat values greater than 2147483647 as equivalent to DBSC_INFINITY.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551442">551442</a></td>
<td>The changes for Engineering case 547228 did not fully eliminate the assertions and other failures that could have occurred when committing deleted rows containing short strings. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551458">551458</a></td>
<td>If an application that was connected using jConnect called DatabaseMetaData.getPrimaryKeys() to get the primary key information for a table, the key sequence of the primary key would not have been returned correctly. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551460">551460</a></td>
<td>In very rare circumstances the server could have crashed when executing Java, HTTP web procedures, or Remote Data Access RPC calls. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551562">551562</a></td>
<td>If an execution plan contained an index-only retrieval scan and the scan had a predicate on a NUMERIC/DECIMAL or short string column, then it was possible for the scan to return the wrong result, omitting rows from the scan that should have been returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551589">551589</a></td>
<td>The batch file uljdbtserv.cmd did not work when SQL Anywhere was installed in a path that contained spaces. It also relied on environment variables other than SQLANY11. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551593">551593</a></td>
<td>When the MobiLink system tables were not present on the consolidated database, the MobiLink server would have displayed the following error on start-up:</p>
<p>				[-10076] The MobiLink server was unable to calculate the timestamp precision on the consolidated database using the ml_scripts_modified table. Timestamp precision related warnings will not be generated.</p>
<p>				This has been fixed. The following error will now be displayed:</p>
<p>				[-10100] The MobiLink system table &#39;ml_user&#39; is missing or a table column is missing</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551602">551602</a></td>
<td>The file sbgse2.dll was a new file added in a 9.0.2 EBF for the support of FIPS encryption. The EBF installer was incorrectly installing this file only when MobiLink was installed. It was therefore possible to break FIPS encryption by installing an EBF. </p>
<p>				For example:</p>
<p>				- 9.0.2.GA was installed with Mobilink deselected,</p>
<p>				- FIPS is installed, again with Mobilink deselected,</p>
<p>				- a 9,0,2 EBF is installed accepting all the defaults.</p>
<p>				FIPS gets broken because sbgse2.dll does not get installed.</p>
<p>				This has been fixed. The installer now checks if FIPS is installed before copying sbgse2.dll.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551611">551611</a></td>
<td>If an application had uncommitted data in a local temporary table, and then called a Java, or any other, external environment procedure, there was a chance the server would have crashed if the application subsequently performed a rollback later on after the Java or external environment procedure had completed. This problem has now been fixed. </p>
<p>				Note that this problem will not show up if the local temporary table is declared with &quot;on commit preserve rows&quot; or &quot;not transactional&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551615">551615</a></td>
<td>With Microsoft SQL Server 2005 and higher, the check for the existance of an index on given table did not work with tables under schemas that did not have a corresponding user. This has been fixed.</p>
<p>				A workaround is to deploy to file and then modify the SQL file to use the sys.schemas table wherever the sysusers table is currently used, and change the id, uid column references to object_id and schema_id for that table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551622">551622</a></td>
<td>The system procedure sa_get_user_status() required the connection calling the procedure to have DBA authority in order to obtain information about users other than the current user. Calling sa_get_user_status() from a procedure owned by a user with DBA authority was not sufficient to return information about other users. This has been fixed. Now, if sa_get_user_status() is called from a procedure owned by a DBA, information about all users will be returned. In addition to an updated server, this fix requires the sa_get_user_status() procedure to be updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551686">551686</a></td>
<td>If a statement contained a work table, and evaluation of the expressions for the work table generated an error (for example, string trunctation or data overflow), then the server could have incorrectly returned an assertion failure error message (assertion 106502) instead of returning the appropriate error code. This assertion failure would have occurred only if expressions in the work table were not nullable. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551690">551690</a></td>
<td>If a request was made that was larger than the packet size, then, in rare timing dependent cases, the connection could have hung until it was cancelled or dropped. Examples of requests larger than the packet size include executing a statement with long SQL text, or executing a statement with large host parameters. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551692">551692</a></td>
<td>If a query consisted of a non-zero number of UNION DISTINCT operations, followed by a non-zero number UNION ALL operations, the result set could have had twice as many columns as were specified by the query. The leftmost columns would have been correct, while the rightmost extra columns were bogus. The alorithm for creating the selection list for the overall query was flawed, and has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551695">551695</a></td>
<td>The Table editor would have allowed the removal of all columns from a new table (that is, a table which had yet to be saved to the database) by selecting all columns and then selecting Edit -&gt; Undo, clicking the Undo toolbar button, or typing Ctrl-Z. This has been fixed. Now attempting to remove all columns from a new table causes an error dialog to be displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551700">551700</a></td>
<td>Column widths in the debugger Details panel were not persistent. This has been fixed so that column widths are saved in user preferences.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551739">551739</a></td>
<td>When a TCP/IP connection abnormally disconnected from the server (for example due to the DROP CONNECTION statement), there was a chance that a network buffer was leaked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551740">551740</a></td>
<td>If a query contained an outer join and a predicate of that included the concatenation operator (||), then the server could have returned the incorrect answer for the query. In the incorrect case, the outer join was converted to an inner join. This has been fixed.</p>
<p>				For example, the following two queries should be equivalent, but the first incorrectly returned no rows:</p>
<p>				select R.row_num || &#39;z&#39; x, string(R.row_num ,&#39;z&#39;) y</p>
<p>				from dummy D left outer join rowgenerator R on 1=0</p>
<p>				where x = &#39;z&#39;</p>
<p>				select R.row_num || &#39;z&#39; x, string(R.row_num ,&#39;z&#39;) y</p>
<p>				from dummy D left outer join rowgenerator R on 1=0</p>
<p>				where y = &#39;z&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551747">551747</a></td>
<td>Deadlocks could have occurred more often than expected at isolation level 3, if more than one transaction attempted to update the same row concurrently. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551749">551749</a></td>
<td>Connections that had executed a Java stored procedure would have taken three seconds longer than necessary when attempting to disconnect. Connections that were not used to make Java stored procedure calls are unaffected by this problem. The problem has now been fixed. </p>
<p>				Note that this problem was introduced in the changes made for Engineering case 548322.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551750">551750</a></td>
<td>Executing a Java stored procedure that attempted to fetch resources using getResourceAsStream() or getResource(), would have had the fetch of the resource fail. This problem has now been fixed.</p>
<p>				Note that due to differences in compression schemes, it is strongly recommended that jars containing textual resources be created without compression turned on. For jars containing binary resources (ex. movies or images), using a compressed jar will work fine.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551751">551751</a></td>
<td>Attempting to use the QAnywhere Server to cancel a message in an Ultralite Client Message Store would have failed with a NullPointerException. This problem was more likely to occur when using the Sybase Central plugin to connect to an Ultralite client database and then attempting to cancel a message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551752">551752</a></td>
<td>Calling the system procedure sa_server_messages() could have resulted in the server crashing. This problem would have been rare, requiring a busy server to reproduce. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551813">551813</a></td>
<td>Messages printed to the MobiLink server log could have been mangled on systems with non-English character sets. This would have happened most often on errors from QAnywhere or the Notifier. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551820">551820</a></td>
<td>If a PARAMETERS statement was run from an Interactive SQL window a dialog was displayed prompting for the values. If the PARAMETERS statement was then rerun, the prompt was not displayed, and the previously values were used. This behavior was not intentional and has been corrected. Now, the prompt is displayed each and every time the PARAMETER statement is executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551839">551839</a></td>
<td>Host variables used as function arguments did not work correctly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551850">551850</a></td>
<td>Attempting to execute a badly formed UPDATE statement of the form &quot;update test X set X..a = 2&quot;, where test is a proxy table, would very likely have lead to a server crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551858">551858</a></td>
<td>If a remote server used character length semantics for a string column (e.g. a SQLAnywhere remote with an nchar column, or an UltraLiteJ remote with a char column), and the column on the remote database was smaller than the column in the consolidated database, then the MobiLink server could have failed to report the truncation. The server was already counting the number of characters in the the column coming out the consolidated, but it wasn&#39;t checking the length against the domain info given by the remote. This has now been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551944">551944</a></td>
<td>The fix for Engineering case 549983 introduced a problem such that two simultaneous remote data access requests from two separate connections could have caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551953">551953</a></td>
<td>It was possible for the MobiLink client .NET API to have thrown an unhandled socket exception when attempting to disconnect from a socket that had been forcibly closed by the operating system. This exception is now caught and handled within the dbmlsync .NET API.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551956">551956</a></td>
<td>When the TargetType parameter to the ODBC function SQLGetData() is SQL_C_DEFAULT, the driver selects the default C data type based on the SQL data type of the source. &nbsp;</p>
<p>				For NCHAR types, the Microsoft ODBC driver selects a SQL_C_CHAR binding. Microsoft acknowledges in its knowledgebase article http://support.microsoft.com/default.aspx/kb/293659 that to do so is an error, but states that it does this to support older legacy applications. The SQL Anywhere ODBC driver selected a SQL_C_WCHAR binding. This caused problems with applications like Microsoft Access, that expected the Microsoft ODBC behaviour. This problem in Access could have been seen when setting up a linked table using the SQL Anywhere ODC driver to a database table containing NCHAR, NVARCHAR, or LONG NVARCHAR column types. The resulting table columns were displayed with &quot;#deleted&quot; values. To conform to the Microsoft ODBC driver behaviour, the SQL Anywhere ODBC driver has been changed. Now,爐he SQL Anywhere ODBC driver selects a SQL_C_CHAR binding for NCHAR, NVARCHAR, and LONG NVARCHAR (including NTEXT) types when the &quot;MS Applications ( Keys In SQLStatistics)&quot; checkbox is selected in the ODBC Administrator configuration dialog for SQL Anywhere datasources. This option can also be specified as the connection parameter &quot;KeysInSQLStatistics=YES&quot; in a SQL Anywhere ODBC driver connection string. This change affects any ODBC function, like SQLBindCol, SQLBindParameter, and SQLGetData, where SQL_C_DEFAULT can be specified.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551967">551967</a></td>
<td>Attempting to view a column value which contained image data would have crashed Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR551978">551978</a></td>
<td>If an application called ResultSet.getString() on a uniqueidentifier column, the iAnywhere JDBC driver would have incorrectly returned a string of binary bytes. This problem has now been fixed and the iAnywhere JDBC driver now returns a properly formatted GUID string.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552057">552057</a></td>
<td>In general, applications that use Java in the database support install the classes and jars to be used into the database. Doing so allows the database to be moved from one machine to another, or from one platform to another. The other benefit of installing classes and jars into the database is that the SQL Anywhere class loader can then be used to fetch the classes and resources from the database allowing each connection that is using Java in the database support to have its own instance of these classes and its own copy of static variables within these classes. In VERY rare cases, it is beneficial to have the system class loader load a class instead of the SQL Anywhere class loader. The only real reason for having the system class loader load the class is that statics within classes loaded by the system class loader can then be shared across all connections using Java in the database support. There are of course many reasons why the system class loader should not be used:</p>
<p>				1) since statics are shared across all connections, there is an issue with the security of data</p>
<p>				2) mixing classes loaded by the SA class loader and the system class loader can lead to the VM throwing IllegalAccess and ClassCast exceptions</p>
<p>				3) there is now the danger that the system class loader will get used for loading classes that should actually have been loaded by the SA class loader</p>
<p>				Because of these potentially serious problems, it has always been STRONGLY recommended that all classes and jars to be used for Java in the database support be explicitly installed within the database. However, for those rare cases where the class really needs to be loaded by the system class loader, the server&#39;s classpath argument (-cp) can be used to add directories and jars to the classpath that the server builds for launching the JVM. Unfortunately, as of version 10.0, the server&#39;s classpath argument was being ignored when launching the JVM. This problem has now been fixed and the server&#39;s classpath argument is now properly appended to the classpath the server builds when launching the VM. Again, the use of the server&#39;s classpath argument is STRONGLY discouraged; instead, it is STRONGLY recommended that all classes and jars to be used for Java in the database support be installed explicitly in the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552066">552066</a></td>
<td>If a SQL Anywhere database used with Replication Server was unloaded using the Unload utility (dbunload), some tables and procedures used by Replication Server would not have been included. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552067">552067</a></td>
<td>The server could have become deadlocked if the &#39;wait after end&#39; option was used when performing a backup. For the deadlock to have occurred, there must have been an active transaction when the backup attempted to truncate the log, and then a checkpoint and commit must have occurred, in that order on separate connections, between the time that the backup attempted to truncate the log and when the backup noticed that there was an active transaction (a very short time interval). This has now been corrected.</p>
<p>				A work around in most cases is to omit the &#39;wait after end&#39; option, as it is often not required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552077">552077</a></td>
<td>The server could have become deadlocked when frequently executing UPDATE ststements on the same set of rows. This would only have occurred if the table being updated had a non-unique index defined. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552094">552094</a></td>
<td>When AES_FIPS or AES256_FIPS database encryption was used for a long enough period of time, the server would have eventually failed to allocate memory, due to a small memory leak. This included use of the encrypt() or hash() functions with FIPS algorithms, or if the -fips server command line option was used. There was also a leak on the client side of approximately 1k per TLS connection attempted. All of these leaks have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552144">552144</a></td>
<td>The SQL script file passed to UltraLite抯 ALTER DATABASE SCHEMA FROM FILE statement and used by the SQL Passthrough feature, must have been in a specific format. Each SQL statement must have ended with 慻o� on a line by itself. </p>
<p>				For example:</p>
<p>				ALTER TABLE T RENAME R</p>
<p>				go</p>
<p>				This format was assumed and if &#39;go&#39; was not found on a line by itself, nothing would have been executed, but no error would have been generated. Now, the error SQLE_SCRIPT_MISSING_DELIMITER (-1315) is generated if &#39;go&#39; is not found on a line by itself. Moreover, with this change the file may end with &#39;go&lt;eof&gt;&#39; (previously, it had to be &#39;go\n&#39;). Note that even single line script files must end with the 揼o� separator. This includes SQL Passthrough scripts. So the following is a correct example of adding a SQL Passthrough script:</p>
<p>				call ml_add_passthrough_script( 憇cript1�, null, null, 慉LTER TABLE T RENAME R\ngo� )</p>
<p>				If an error occurs and only part of the file is applied, the database must be shutdown and restarted (and the schema will as it was prior to the ALTER DATABASE statement).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552171">552171</a></td>
<td>When applying a series of renamed transaction logs to the server, or when the MobiLink client (dbmlsync) reads a series of renamed transaction logs, the error &quot;Missing transaction log(s) after file ...&quot; cound have been reported. The offsets reported in the error message (between the end of one log and the start of the next) can be subtracted to determine the size of gap; this apparent gap would have been exactly 24 bytes. With a 4K pagesize, this would have happened to roughly 1 out of every 4000 renamed logs; it is less likely with a larger pagesize. It was only a problem when the affected log was the last one before the online (currently active) log. This has been fixed.</p>
<p>				Note, despite the reported gap, no data was actually lost from the logs. The data can be recovered by using dbtran to generate a .SQL script and then applying this to the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552186">552186</a></td>
<td>Truncating a table with deleted rows could have caused the server to fail assertion 201501 - &quot;Page for requested record not a table page or record not present on page&quot;. For this to have occurred, the table must have contained string data shorter than a page, and one of those short values (which had to have come from one of the deleted rows) must have been held active in an open cursor or variable. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552189">552189</a></td>
<td>The changes for Engineering case 545904 introduced a problem where the server could have issued a variety of assertions, including &quot;200610: Attempting to normalize a non-continued row&quot; while concurrently updating rows containing blobs. For this to have occurred, the string values must have been less than a page size, but larger than the column&#39;s inline amount. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552196">552196</a></td>
<td>Quoted SQL identifiers that were part of the Interactive SQL utility&#39;s command line were inadvertently stripped of their quotes before being passed to the database. This has been fixed.</p>
<p>				For example, the following command line was not being handled correctly:</p>
<p>				dbisql -c &quot;uid=dba;pwd=sql&quot; CREATE TABLE &quot;123TEST&quot; ( c INT )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552210">552210</a></td>
<td>After selecting the Network tab in the ODBC Administrator (ODBCAD32) for ASA 9.0.2 data sources, it was not possible to configure RSA_TLS_FIPS. The RSA_TLS option would have been selected and the suboptions string would have been garbled. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552226">552226</a></td>
<td>The cast of a LONGVARCHAR value to VARCHAR value could have caused a crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552293">552293</a></td>
<td>Execution of a query with a left outer join could have caused database corruption when the null-supplying table supplied a null row, and that table was subsequently updated. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_63.htm#CR552302">552302</a></td>
<td>If the HTTP listener was enabled, the server may have crashed on shutdown. There is no risk of data corruption. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552304">552304</a></td>
<td>If the OS and database character sets were not the same, localized server window messages pertaining to checkpoints and events could have been mangled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552311">552311</a></td>
<td>If a SELECT statement contained a procedure call with arguments that contained column references to other tables in the from clause, the server may have return a &quot;Column not found&quot; error for these column references. This would have occurred when the query rewrite process can remove tables from the query. </p>
<p>				For example:</p>
<p>				create table T1( a int primary key )</p>
<p>				create table T2( a int primary key, c int )</p>
<p>				create procedure P1 ( u int ) begin select a from T1 where a = u; end </p>
<p>				select dt.* from T1 left outer join T2 on T1.a = T2.a, lateral( P1(T2.c) ) dt </p>
<p>				For every row in T1 the left outer join can return at most one row because of the join on primary keys. So the query rewrite removed the left outer join and the table T2 from the query which caused a &quot;Column T2.c not found&quot; error for the procedure argument. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552312">552312</a></td>
<td>The changes made for Engineering case 541615 introduced a problem where attempting to create a proxy table to a DB2 or Microsoft SQL Server table using Sybase Central could have failed with a strange conversion error, instead of creating the proxy table. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552314">552314</a></td>
<td>If an application called the ResultSet.getBlob() method, and if fetching the blob should have thrown a valid SQLException, then quite often the exception would not have been thrown and an empty blob would have instead been returned to the client. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552319">552319</a></td>
<td>If an operation (INSERT, UPDATE or DELETE) occurred on a remote database, and the operation belonged to one or more publications that were subscribed to by different users, then the operation would have been uploaded once for each user that had subscribed to a publication containing it. This has been fixed so that the operation will now only be uploaded once.</p>
<p>				For example, suppose two publication P1 and P2 are defined that both contain a table T1. Two ML users, U1 and U2 are defined on the remote. U1 is subscribed to P1, and U2 is subscribed to P2. A row is inserted into T1 in an operation I&#39;ll call O.</p>
<p>				The old behaviour would have been to upload O when the subscription between U1 and P1 was synchronized, then upload it again when the subscription between U2 and P2 was synchronized. The new behaviour is that O will be uploaded for the subscription that is synchronized first (U1-P1 or U2-P2), and not uploaded when the other subscription is synchronized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552321">552321</a></td>
<td>If an error or warning occurred when commiting, the MobiLink server would not have reported any error or warning messages. If it was an error, the MobiLink server would have just failed the synchronization request without giving any reasons. This problem is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552323">552323</a></td>
<td>The conversion of NUMERIC values to or from VARCHAR was incorrect. This has now been corrected. UltraLiteJ should now produce the same conversions as does UltraLite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552355">552355</a></td>
<td>The table editor could have crashed when the Compressed column heading was selected. It could also have crashed when opening, if the last time a column heading was selected in the Table editor, the Compressed column was selected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552454">552454</a></td>
<td>The Import Wizard would have shown an empty combobox of databases when importing from an Oracle database. Clicking on the combobox would have caused the Interactive SQL utility to report a NullPointerException. This has been fixed. The combobox is now hidden in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552465">552465</a></td>
<td>If an application attempted to migrate tables containing unique constraints, either by using sa_migrate or Sybase Central, then there was a possibility that the migration would have failed because some of the foreign keys could not have been created. This problem has now been fixed, but only if the remote data access class involved is one of SAODBC or SAJDBC.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552473">552473</a></td>
<td>When attempting to export results to an Oracle database using the iAnywhere Oracle ODBC driver, the Export wizard would have inappropriately prompted for a database name and then reported a NullPointerException when the &quot;Next&quot; button was clicked. This has been fixed. The &quot;Database&quot; combobox is no longer displayed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552488">552488</a></td>
<td>The server could have failed assertion 201138 - &quot;Attempt to allocate page ... beyond end of dbspace&quot;. For the assertion to have occurred, the database must have had an additional (non-primary) dbspace, and an operation such as TRUNCATE, DROP TABLE, DROP INDEX, etc must have been performed on an object in that dbspace. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552493">552493</a></td>
<td>When rebuilding databases on Windows Mobile devices, the Unload utility (dbunload) could have failed with the error &quot;Table SYSPROCP not found&quot;. If the unload was successful, reloading the new database by running the resulting reload.sql file with the Script Execution utility (dbrunsql) could have failed with the error &quot;Cursor not open&quot; when executing a call statement. Both of these problem have now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552501">552501</a></td>
<td>The Export wizard could have crashed when exporting to ASE, using the ASE Organic ODBC driver, into a new table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552503">552503</a></td>
<td>SQL statements which don&#39;t contain Transact-SQL OUTER JOINs, OUTER JOINs, KEY JOINs, or NATURAL JOINs will now skip some of the optimizations implemented in the server, which will improve the DESCRIBE time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552587">552587</a></td>
<td>If an application created a remote server and then accessed that remote server using a different case than the one specified on the CREATE SERVER statement, the server would have incorrectly opened additional connections to the remote server. For example, suppose the application executed the following CREATE SERVER statement:</p>
<p>				CREATE SERVER MyServer CLASS ...</p>
<p>				and then created two proxy tables as follows:</p>
<p>				CREATE EXISTING TABLE table1 AT &#39;myserver...&#39;</p>
<p>				CREATE EXISTING TABLE table2 AT &#39;MYserver...&#39;</p>
<p>				If the application now queried &quot;table1&quot;, the remote data access layer would have correctly established a connection to the remote and returned the requested data. If the application then queried &quot;table2&quot;, the data access layer should reuse the connection previously established to the remote, but the server instead would have created a new connection to the remote. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552591">552591</a></td>
<td>If an Open Client or jConnect application executed a query that involved the use of host variables within a batch, then the server would have crashed, rather than giving the &quot;Host variables may not be used within a batch&quot; error message. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552595">552595</a></td>
<td>In exceptionally rare conditions, typically while the server was under heavy load or processing many backups on many databases simultaneously, a backup could hang and the CPU usage of the server could have gone to 100%. This has been fixed.</p>
<p>				A workaround is to use a higher value on the -gn command line switch.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552620">552620</a></td>
<td>After the server had started a database that required recovery, it could have crashed when running a cleaner. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552627">552627</a></td>
<td>If the language DLL was missing, the utilities createcert, viewcert, createkey, and mlfiletransfer would all have continued to execute, but would not have output any string resources. These utilities will now fail in this case with an appropriate error message.</p>
<p>				Also, the usage text for createcert and viewcert will now display the options in alphabetical order.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552638">552638</a></td>
<td>The Relay server may have run out of shared memory when under high load. This was more likely to have occurred when the Relay Server was hosting a large number of backend servers. This has been fixed by leaving spare room in shared memory according to the startup configuration. The user specified amount of shared memory is left for relaying traffic.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552644">552644</a></td>
<td>Up channel recovery upon the Relay Server Outbound Enabler detecting a communication error may have sometimes failed on some active sessions. This has been corrected.</p>
<p>				Note, normal up channel renewal was not affected by this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552648">552648</a></td>
<td>Renaming a transaction log via a BACKUP statement could have failed as a result of a transient sharing violation error on Windows. The error may have been caused by a virus scanner or other software accessing the file as it is being renamed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552649">552649</a></td>
<td>The Relay Server Outbound Enabler would have held on to a backend connections until the application timed out, when the request/response processing of the associated session had failed. Tnis has been fixed so that the Relay Server will now forward a command to the Outbound Enabler to explicitly disconnect the faulty session.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552653">552653</a></td>
<td>Some situations, similar to those fixed for Engineering case 545904, allowed the server to hang while concurrently updating rows containing blobs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552658">552658</a></td>
<td>The Relay Server may have crashed under stress and the Outbound Enabler may not have been able to recover connections to it, even when IIS replenished the service with a new worker. These potential crashes have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552672">552672</a></td>
<td>The combination of the HAVING clause containing a single-row subquery, and a temporary table referenced in the ORDER BY and/or GROUP BY clauses, could have produced incorrect results or a crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552716">552716</a></td>
<td>The Relay Server&#39;s throughput may have been reduced significantly when under load with Afaria traffic. This was caused by Afaria traffic not terminating persistent http sessions properly, when using Connection: close header. IIS did not release its resources until the connection&#39;s Keep-Alive timeout. Per-process resource limits cap the throughput when enough sessions are waiting to be timed out by IIS. This has been fixed bay having the Relay Server terminate Keep-Alive connections regardless of the presence of the Connection: close header, in the case where content-length is violated. Since Afaria traffic always violates content-length on the last request, in both of their POST and GET sessions, IIS will no longer hold on to keep-alive resources when the last request of their session exit the web server extension. This change also stops the Relay Server from complaining about content-length violations, if the client identifies itself as an Afaria client. The I/O error only is being suppressed.</p>
<p>				A user workaround is to increase web garden size (i.e. adding more worker processes) of the application pool associated with the rs_client.dll web server extension. This user workaround is inefficient though, letting limited resources to be held idle for unnecessary amount of time. With this fix, per process resource caps are no longer a reason for increasing the web garden size.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552720">552720</a></td>
<td>When the Relay Server was under heavy load, with verbosity set to 4 or higher, it may have occassionally reported an OE_BACKEND_DISCONNECTED error. This was due to another session having taken over the request id. This was not harmful to known client types, as all known clients initiates their own disconnect. However, this may have caused the Relay Server to hold onto resource for the worker waiting for that packet. This would have timeout in 100 sec, and was transparent to the client. This has been fixed, the client worker is no longer held up until it ties out, as the faulty discarding has being removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552729">552729</a></td>
<td>Under rare circumstances, the server could have crashed, or failed an assertion, if it needed to grow a database file quickly by a large amount (e.g., as a result of inserting a very large blob). Furthermore, there was a possibility for corruption affecting the data that triggered the file growth. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552739">552739</a></td>
<td>For an ADO/OLE DB application, if the CursorLocation was adUseClient and the size of the query was larger than 4K characters, then the SQL Anywhere OLE DB provider would have crashed. Also, if the client query contained single quotes (apostrophes), then the query metadata would not have been obtained. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552760">552760</a></td>
<td>If the default port number was already in use (eg. by another server), the server may have failed to start TCP/IP, rather than choosing a different port number. If the -z command line option was used, the error &quot;TCP/IP link, function bind, error code 10013&quot; would have been displayed on the server console. This would only have happened on Windows Server 2003, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552767">552767</a></td>
<td>A QAnywhere application could have reported a deadlock error from the SQL Anywhere server, if the application was attempting to retrieve a message from the message store while the QAnywhere agent was synchronizing. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552771">552771</a></td>
<td>Using a poorly formed connection string (&quot;-c&quot; command line option) could have caused the Interactive SQL utility (dbisql) to crash on startup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552779">552779</a></td>
<td>When executing an &quot;OUTPUT&quot; statement, dbisqlc would have executed the current query two extra times. Some output file formats require a particular date format to be used and in version 10.0.0 and later, changing the date format option on a connection does not affect cursors that are already open. To work around this change of behaviour, dbisqlc closed the current query, changed the DATE_FORMAT option to the format required by the output file format and then reopened the query to write the result set to the output file. It then closed the query again, restored the old DATE_FORMAT option, and reopened the query. Thus the query was executed a total of three times. </p>
<p>				Note that the Java-based dbisql has always executed the query a total of two times (once for the original query, once for the OUTPUT statement). That behaviour is not addressed by this change.</p>
<p>				The problem in dbisqlc has been corrected in most cases by avoiding the close/set-date-format/reopen operations if the requested output file format does not have a mandated date format or if the current date format matches the date format required by the output file format. If the specified output file format requires a specific date format and it is different from the current date format, the query will still be executed two extra times. To avoid executing the query multiple times, set the DATE_FORMAT option for the current connection as listed below before executing the query for the first time:</p>
<p>				Output file format DATE_FORMAT setting</p>
<p>				DBASEII MM/DD/YY</p>
<p>				DBASEIII YYYMMDD</p>
<p>				FOXPRO YYYMMDD</p>
<p>				WATFILE YYYY/MM/DD</p>
<p>				Output file formats not listed above do not have a mandated date format and dbisqlc will not close/reopen the current query to execute the OUTPUT statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552888">552888</a></td>
<td>If an application called PreparedStatement.setBlob(), and if the underlying java.sql.Blob implementation misbehaved, then there was a chance that the iAnywhere JDBC driver would have failed when the PreparedStatement was executed. Workarounds have now been implemented in the iAnywhere JDBC driver to attempt to handle the Blob implementation misbehaviour.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552921">552921</a></td>
<td>When assigning the result of a bitwise NOT operation on a value of type Bit, TinyInt or Unsigned SmallInt to the same type, the error &quot;Value -1 out of range for destination&quot; was returned. This was due to these types being converted to an Integer before applying the operation. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR552931">552931</a></td>
<td>When executing a batch command which returned multiple resultsets, if fetching the second or subsequent resultset caused an error, no exception was returned to the application. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553064">553064</a></td>
<td>If an application accidentally defined a Remote Data Access server that used the SAJDBC class and connected back to the same database as the local user connection, then an error indicating that the server definition was circular was not displayed. This problem is now fixed and an error message is now displayed. Note that this problem does not affect SAODBC class remote servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553103">553103</a></td>
<td>During the optimization process, the optimizer creates and maintains order properties for all physical operators placed in the access plans generated as part of the search space generation process. These order properties are used to decide if SORT physical operators are needed, for example to satisfy an ORDER BY clause at the root of the access plan. Maintaining and tracking order properties are expensive operations as described in [1]. For performance reasons, the optimizer will now build and maintain only those order properties needed by an interesting order property, such as the one imposed by an ORDER BY clause. This change does not affect in anyway the performance of the order optimization, it just makes the optimization process more efficient.</p>
<p>				[1]揇atabase System with Methodology for Generalized Order Optimization擬atthew Young-Lai, Anisoara Nica, 2007 US Patent 7,359,922.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553289">553289</a></td>
<td>If a query execution plan contained a SORT operator in a parallel execution strategy, it was possible for the server to crash while processing the request. This type of plan can be used during a CREATE INDEX statement. The crash was timing and load dependent and would have predominantly affected servers processing requests from multiple connections. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553300">553300</a></td>
<td>Network error messages in the MobiLink monitor, the SA Monitor, the Notifier or the QAnywhere server could have been garbled on non-English machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553309">553309</a></td>
<td>A cursors position in a result set was not always correct after changes were made (i.e. inserts, updates and deletes). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553310">553310</a></td>
<td>An application that uses the iAnywhere JDBC driver must now have the jodbc.jar built with the same build number as the dbjodbc and mljodbc shared objects. If the jar and shared objects are out of sync, a SQLException will be thrown at connect time and the connection will be refused.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553312">553312</a></td>
<td>If the MobiLink Monitor&#39;s Details Table, Utilization Graph, or Overview panes were disabled, when reenabled they might not be visible, under some circumstances, or a program error may have occurred. Also, resizing a pane or the application, could have produced unexpected results. These problems have been fixed. Now when resizing the application, only the Chart pane size is changed; and when resizing a pane, only the panes on either side of the splitter bar are affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553387">553387</a></td>
<td>The following fixes have been made to support MobiLink in DB2 Mainframe Compatibility Mode</p>
<p>				- The ml_pt_script table did not have an explicit ROWID column. This was required for the CLOB column. Some D2M deployments support an implicit ROWID, and some do not, inluding compatibility mode. Fixed by adding an explicit ROWID column.</p>
<p>				- The SQL used for JCL-based CREATE PROCEDURE statements included the SQL body of the stored procedure. This worked most of the time, but not under compatibility mode. Now, the external-procedure form of CREATE PROCEDURE is used, which doesn&#39;t include the body (which of course isn&#39;t necessary because it is in the *.xmit files).</p>
<p>				- The SQL used to create the SQL-based D2M stored procedures didn&#39;t escape single quotes. This wasn&#39;t noticed because D2M treats most unquoted text between single quotes as a string, so it just worked. Single quotes are now escaped in the procedure body, inside the call to DSNTPSMP.</p>
<p>				- The D2M ml_add_pt_script stored procedure didn&#39;t work under compatibility mode, for several reasons:</p>
<p>				1) it had a VARCHAR( 256 ) parameter (the flags for the SQL Passthrough script) that caused conversion problems inside the procedure when run under compatibility mode. This parameter has been changed to VARCHAR( 255 ).</p>
<p>				2) it referenced a Unicode string, which isn&#39;t supported under compatibility mode. This has been fixed by replacing it with a non-Unicode string.</p>
<p>				3) it used a form of the SIGNAL statement that isn&#39;t supported under compatibility mode. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553469">553469</a></td>
<td>Backups done where the checkpoint log was copied (WITH CHECKPOINT LOG COPY), did not mark the dbspaces as active. This allowed databases that possibly required recovery to be started in read-only mode. If this was done, it could have lead to assertion failures as the server tried to flush pages that had been dirtied. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553482">553482</a></td>
<td>Prior to executing the &quot;begin_connection_autocommit&quot; script, the MobiLink server will temporarily turn on auto-commit on the ODBC connection, due to restrictions with some consolidated databases. On ASE consolidated databases, this will generate a warning (SQL_SUCCESS_WITH_INFO) in the ODBC driver:</p>
<p>				&quot;AutoCommit option has changed to true. All pending statements on this transaction (if any) are committed.&quot;</p>
<p>				This warning was being generated whether the begin_connection_autocommit script was defined or was absent. This has been fixed. The server will now only turn on auto-commit when the script is defined and will only execute the script if it is defined. If the script is defined, it is still possible to see this warning logged in the MobiLink server console log. This is expected behaviour.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553491">553491</a></td>
<td>The Apache redirector module would have crashed when used with the Sun built Apache web server that currently ships with the Solaris operating system. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553520">553520</a></td>
<td>If a database server acting as mirror lost its connections to the arbiter and primary server, the database being mirrored did not restart and wait for the connections to be re-established. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553561">553561</a></td>
<td>The OUTPUT statement would have unnecessarily re-executed the query which generated the last result set, if the Interactive SQL utility was run in windowed mode and the result set had not already been displayed. This has been fixed so that the statement is not re-executed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553600">553600</a></td>
<td>A query of the form: &quot;SELECT * FROM table-expression&quot; could have been misdiagnosed as a syntax error when there was exactly one column in the select list. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553687">553687</a></td>
<td>Tables storing CHAR and NCHAR values longer than approximately 126 bytes, may have used two bytes of storage more per value than was necessary. If the column&#39;s PREFIX value was smaller than 126, then strings longer than the specified prefix value would have used two extra unnecessary bytes as well. This has been fixed.</p>
<p>				Note, rebuilding the database after applying this fix will remove all of the unneeded bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553689">553689</a></td>
<td>If a query contained at least two predicates on the same column T.A with the following conditions:</p>
<p>				1. there existed an equality predicate T.A = expression, with a selectivity estimation of selectivity1, and the expression was not a constant</p>
<p>				2. there existed a range predicate on T.A with constant bounds (for example, T.A &gt; 111), with a selectivity estimation of selectivity2</p>
<p>				3. there existed an index on column T.A, where the column T.A may have been the only column in the index, or the index had a prefix of other columns before T.A, all of which are equated with constants in the query: e.g., the index idx&lt;C1, C2, A&gt; is defined, and the predicates &#39;T.C1 = 10 and T.C2 = 20 and T.A &gt; 111 and T.A = R.X&#39; are used in the query.</p>
<p>				4. The selectivity estimation of the range predicate was much larger then the selectivity estimation of the equality predicate, i.e., selectivity1 &lt;&lt; selectivity2</p>
<p>				Such a query had an overestimated number of rows, and the execution plan chosen by the optimizer may have been inefficient. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553693">553693</a></td>
<td>If a server had many external environment requests active, and several of these external environment requests were subsequently cancelled at the same time, there was a chance the server would have crashed. There was a very small window where a cancel request could have been ignored by the external connection. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553719">553719</a></td>
<td>The Unload utility (dbunload) was not able to rebuild a pre-Version 10 database if the variable SATMP was unset, but variable ASTMP was set. Dbunload would have returned a connection error in this case. This has been fixed.</p>
<p>				Note, as workaround the SATMP variable can be set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553720">553720</a></td>
<td>If an HTTP/1.1 client made a request on a keep-alive connection, and then after receiving the response, did not send another full request over the connection for one minute, the connection would have timed out and sent a 408 Request Timeout status message. This is consistent with the HTTP/1.1 specification, but if the HTTP client was Apache, it would have been confused by the error message. The behaviour has been changed so that the error status code is suppressed (and the connection is simply closed) if all of the following are true:</p>
<p>				- A complete request and response have previously been sent on the connection</p>
<p>				- No data has been received on the connection since the most recent response was sent</p>
<p>				- The keep-alive timeout has expired</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553748">553748</a></td>
<td>When using the iAS ODBC driver for Oracle, calling SQLColAttribute with an attribute code of SQL_DESC_TYPE_NAME would not have returned the type names of columns. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553752">553752</a></td>
<td>If a CREATE SYNCHRONIZATION SUBSCRIPTION statement was executed with an OPTION clause that gets the option value from a variable (e.g. OPTION sv=@Var) and the variable was set to null, then the server may have crashed, or inserted a random option value into the catalogs. This has been fixed so that the server now returns a sql error (SQLSTATE_BAD_SYNC_OPTION_VALUE) &quot;Synchronization option &#39;%1&#39; contains semi-colon, equal sign, curly brace, or is null&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553759">553759</a></td>
<td>The &quot;Replace All&quot; action in the syntax highlighting editor could have corrupted the text if the action was restricted to the selected text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553775">553775</a></td>
<td>While synchronizing a large download using &quot;direct TCP&quot; on BlackBerry devices (not through the BES), the synchronization would have failed with &quot;... Max connections opened&quot;.</p>
<p>				This has been fixed.</p>
<p>				Note: For IDENT BlackBerry devices, the default is Direct TCP connections. For non-IDENT BlackBerry devices, the default is BES connections. Using the URL suffix &quot;;deviceside=false&quot; forces Direct TCP connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553897">553897</a></td>
<td>If an application used one of the C_ODBC32, C_ODBC64, C_ESQL32 or C_ESQL64 external environments and specified .dll or .so in the external name clause, then the external environment would have incorrectly added an extra .dll or .so to the shared object name and then give an error. This problem has now been fixed. </p>
<p>				Note that a workaround is to not specify the .dll or .so in the external name clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553901">553901</a></td>
<td>On rare occasions, a mirror server could have crashed, or failed an assertion on shutdown, particularly if the arbiter and primary were being shut down at the same time. On Linux, the problem could have also manifest itself as a hang in libc&#39;s __lll_mutex_lock_wait. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR553911">553911</a></td>
<td>The Service utility (dbsvc) included with versions 10.0.0 and up, did not recognize services created with pre-10.0 versions of dbsvc. This has been fixed. Old services can now be viewed, deleted, started and stopped. If an old service is created using the patched dbsvc, the new service will no longer be visible by pre-10.0 dbsvc.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554067">554067</a></td>
<td>A Windows application using the iAnywhere JDBC driver, could have hung if all of the following conditions were true:</p>
<p>				1) the application installed a message handler connections</p>
<p>				2) the application shared a connection amongst multiple threads</p>
<p>				3) one of the threads executed a statement that returned an asynchronous message</p>
<p>				4) at the same time another thread used the same connection and called createStatement(), prepareStatement() or prepareCall(), before the asynchronous message was returned from the server</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554080">554080</a></td>
<td>Applications which used the EncryptedPassword connection parameter could have crashed when attempting to connect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554106">554106</a></td>
<td>The ODBC driver would have issued an HY090 error if any of the connection string parameter to SQLConnect were specified as a combination of a NULL pointer and SQL_NTS. This situation is permitted by the ODBC specification. As a result, this restriction has now been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554242">554242</a></td>
<td>The Validation utility (dbvalid) was not validating materialized views by default. The utility was generating a list of tables to validate that only included base tables. This has been corrected incorporate initialized materialized views in either the fresh or stale state.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554265">554265</a></td>
<td>If more than one message store connection was open, and the connections were broken from outside of Sybase Central, attempting to then disconnect from within Sybase Central could have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554271">554271</a></td>
<td>If the MobiLink client (dbmlsync) was run against a database with a character set that was different from the operating system&#39;s character set, then errors generated by the database would have been garbled when displayed in the dbmlsync log. This has been corrected so that these messages will now be displayed correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554273">554273</a></td>
<td>If a database mirroring system was running in asynchronous mode and experienced a very high rate of transaction log page updates, the mirror server could have crashed or reported a failed assertion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554369">554369</a></td>
<td>Using the property sheet to rename a primary key, foreign key or unique constraint, could have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554373">554373</a></td>
<td>Sybase Central would have crashed if the server was shut down while the Performance Monitor tab was displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554383">554383</a></td>
<td>In the MobiLink Monitor Details Table, if the optional column &quot;connection_retries&quot;, or optional columns starting with &quot;download_&quot; or &quot;sync_&quot;, were enabled, the column labels for these columns would have been misaligned by one or two columns. A similar problem would have occurred when exporting to a database, where that data was exported to incorrect columns in the database tables. Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554708">554708</a></td>
<td>Attempting to install an EBF against an Evaluation, Developer, Web or Runtime edition of 11.0.0 would have failed with a missing directory table entry error. This has been fixed in version 11.0.1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554764">554764</a></td>
<td>When running on heavily loaded Unix systems, applications using a large number of connections may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554779">554779</a></td>
<td>It was not possible to retrieve index or key information through calls to the SAConnection.GetSchem method. The SAConnection.GetSchema method was using a view which did not include the primary keys. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554781">554781</a></td>
<td>In a database mirroring system, if the mirror server was starting while the transaction log on the primary server was being renamed, the primary server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554782">554782</a></td>
<td>For particular forms of statements, it was possible for the server to incorrectly return the following error when trying to open a cursor:</p>
<p>				The optimizer was unable to construct a valid access plan [-727] [&#39;WI010&#39;]</p>
<p>				In order for the problem to have occurred, the statement must have referred to only a single table and used only columns satisfied by an index. Further, snapshot isolation must have been enabled. This has now been fixed.</p>
<p>				As a workaround, the statement hint &quot;options(force optimization)&quot; can be included to avoid the error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554854">554854</a></td>
<td>If the evaluation of certain expressions resulted in an error code, it was possible for memory to be leaked. When this memory leak occured in an INSERT, UPDATE, DELETE, or SELECT statement, the memory leak would have been transient. In the case of stored procedures and triggers, this leak could have lead to a slow increase in the size of the main heap. In that case, less memory would have been available for caching file pages, or other purposes, until a reboot. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554876">554876</a></td>
<td>If an application established an HTTP session from the PHP external environment, then the server may have hung or crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554880">554880</a></td>
<td>If the Server Monitor was used to monitor several servers, and one or more of those servers were down, then it was likely that the server monitor requests would have started to time out, and cause communication errors within the browser. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554886">554886</a></td>
<td>Some particular constructions of the LIST aggregate could have caused the server to crash while processing the statement containing the LIST aggregate. In order for the crash to occur, the LIST must have contained an ORDER BY clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554889">554889</a></td>
<td>Simple SELECT, UPDATE, and DELETE statements with a specific predicate structure could have caused the server to crash. A workaround to avoid the crash is to set the option Max_plans_cached=0. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR554998">554998</a></td>
<td>When ADO asks for the schema information related to a query (e.g., SELECT * FROM Products), it requests a number of attributes like &quot;IDNAME&quot;, &quot;TABLENAME&quot;, etc. The SQL Anywhere OLE DB provider returns a DBID for schema rowset columns that matches Microsoft&#39;s declared DBID. For example, the schema column DBCOLUMN_IDNAME is defined in Microsoft&#39;s OLEDB.H header file as follows:</p>
<p>				extern const OLEDBDECLSPEC DBID DBCOLUMN_IDNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (LPOLESTR)2};</p>
<p>				This is what the OLE DB provider would return as the DBID for the &quot;IDNAME&quot; column. This strategy works for many ADO methods that request schema information. However, the following example illustrates a problem with the ADO RecordSet Save() method.</p>
<p>				Dim strConnection = &quot;PROVIDER=SAOLEDB;ServerName=demo;DatabaseName=demo;USERID=DBA;PASSWORD=sql&quot;</p>
<p>				Dim strSQLStatement = &quot;SELECT ID, Name FROM Products&quot;</p>
<p>				Dim strXMLLocation = &quot;c:\\temp\\products.xml&quot;</p>
<p>				Dim objADOConnection As New ADODB.Connection</p>
<p>				Dim objADORecordSet As New ADODB.Recordset</p>
<p>				objADOConnection.Open(strConnection)</p>
<p>				objADORecordSet.Open(strSQLStatement, objADOConnection, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)</p>
<p>				If Not (objADORecordSet.EOF And objADORecordSet.BOF) Then</p>
<p>				objADORecordSet.MoveFirst()</p>
<p>				objADORecordSet.Save(strXMLLocation, ADODB.PersistFormatEnum.adPersistXML)</p>
<p>				End If</p>
<p>				For reasons unknown, the ADO RecordSet Save() method returns the error &quot;catastrophic failure&quot;.</p>
<p>				The SQL Anywhere OLE DB provider has been changed to return only the &quot;property ID&quot; part of the DBID. This is equivalent to returning the following structure.</p>
<p>				extern const OLEDBDECLSPEC DBID DBCOLUMN_IDNAME = {NULL, DBKIND_PROPID, (LPOLESTR)2};</p>
<p>				This permits the ADO RecordSet Save() method to complete successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555007">555007</a></td>
<td>Sybase Central could have crashed when attempting to change the visible columns (via View -&gt; Choose Columns...), or column widths, while the MobiLink 11 node was selected in the tree. In addition, when in Model mode, the list of columns under the View -&gt; Sort menu would sometimes not have contained all the displayed columns when the MobiLink 11 node was selected in the tree. Both of these issues have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555024">555024</a></td>
<td>When the server was run on Unix systems, the PHP external environment would have reported all errors, warnings, etc, even when PHP was explicitly configured not to do so. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555033">555033</a></td>
<td>Providing the function ML_GET_SERVER_NOTIFICATION() with long MobiLink stream parameters (longer than 128 characters) could have caused the results of the function call to be incorrect. This has been fixed so that the poll will now work with arbitrary length </p>
<p>				stream parameters</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555034">555034</a></td>
<td>Push notifications over a SYNC gateway may have stopped working after the listener reconnected. The was timing dependent and was more likely to have occurred when there was a proxy, a redirector, or a relay server being used between the listener and the SYNC gateway of the MobiLink server. The listener may have reconnected to the SYNC gateway when the IP address of the remote device had been changed, when the QAAgent registered with the listener on startup, or a communication error had occurred. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555054">555054</a></td>
<td>Sybase Central was allowing the modification or deletion of the QAnyNotifier_client notifier. Doing so could have caused problems with QAnywhere. To prevent any problems, it is now only possible to modify the notifier&#39;s description, polling interval and event SQL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555056">555056</a></td>
<td>A new feature was added to the Interactive SQL utility (dbisql) in version 11.0.0, which automatically released database locks after executing queries when it was run as a windowed application. This feature was on by default, and was undocumented. It unfortunately also broke the locking tutorial, and introduced an unexpected behavioral change. The behavioral change has now been rectified. Automatic lock releasing is now OFF by default. This is a behavioral change from 11.0.0, but it makes dbisql consistent with older versions. Also, users can now control the automatic lock releasing feature explicitly. The &quot;Result Set&quot; tab in the &quot;Options&quot; window contains a new checkbox called &quot;Automatically release locks&quot;. Check this if dbisql is to release locks after executing a statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555059">555059</a></td>
<td>When using Microsoft&#39;s AppVerifier (a development/debugging tool), the tool may have reported various errors, such as the use of an invalid handle in client libraries (ODBC, dblib, etc) or in the database server. These problems have been fixed and the database server and client libraries now run cleanly under AppVerifier.</p>
<p>				Note, without the use of AppVerifier it would have been extremely rare for users to encounter these problems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555181">555181</a></td>
<td>In very rare circumstances, cancelling a DDL statement could have caused the server to crash, cause corruption or possibly other erratic behaviour. The cancel would need to have been detected after a DDL completed successfully, but before the DDL was auto-committed, which is a very tiny window. Whether or not a problem would be caused by a cancel at that time, and if so, the nature of that problem also depended on the DDL itself and what the connection did afterwards. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555185">555185</a></td>
<td>It was not possible to retrieve the columns for a primary key index using the method SAConnection.GetSchema. The SAConnection.GetSchema method was using a view which did not include the columns for primary keys. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555208">555208</a></td>
<td>Interactive SQL utility options, which were set from a .SQL file while it was running as a console application, would not have been saved. This has been corrected so that now they are.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555211">555211</a></td>
<td>Sybase Central would have crashed when attempting to use the Column property sheet to rename a column that had not yet been saved to the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555228">555228</a></td>
<td>Under some circumstances the server could have crashed when a table was dropped. This has bben fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555236">555236</a></td>
<td>SQLColumns returns a result set including COLUMN_SIZE, BUFFER_LENGTH, and CHAR_OCTET_LENGTH among other things. For a column typed NCHAR(30) or NVARCHAR(30), the COLUMN_SIZE was returned as 30 and the BUFFER_LENGTH as 30. The BUFFER_LENGTH should have been 60. For CHAR_OCTET_LENGTH, NULL is returned, whereas it should have ben 60 as well.</p>
<p>				From the ODBC standand:</p>
<p>				&quot;COLUMN_SIZE&quot;: For character types, this is the length in characters of the data; The defined or maximum column size in characters of the column or parameter (as contained in the SQL_DESC_LENGTH descriptor field). For example, the column size of a single-byte character column defined as CHAR(10) is 10.</p>
<p>				&quot;BUFFER_LENGTH&quot;: The defined or the maximum (for variable type) length of the column in bytes. This is the same value as the descriptor field SQL_DESC_OCTET_LENGTH.</p>
<p>				&quot;CHAR_OCTET_LENGTH&quot;: The maximum length in bytes of a character or binary data type column. For all other data types, this column returns a NULL.</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555245">555245</a></td>
<td>Under rare circumstances, selecting a table type in the Query Editor could have caused an internal error. This problem was highly timing-dependent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_64.htm#CR555250">555250</a></td>
<td>The name of the current user did not appear in the list of owners in the Import Wizard on the page that asks &quot;Where do you want to save the data&quot; if the current user does not own any database objects. Now, the user name always appears in the list of owners.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555390">555390</a></td>
<td>If the option PUBLIC.quoted_identifier was set to &#39;off&#39;, executing the reload script produced by Unload utility (dbunload) would have failed when attempting to set subsequent options. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555444">555444</a></td>
<td>When synchronizing using HTTPS through an HTTP proxy, MobiLink clients would have incorrectly appended the url_suffix to the HTTP CONNECT request, which could have caused some proxies and servers to fail. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555450">555450</a></td>
<td>Column names that are greater than 29 bytes in length were being truncated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555453">555453</a></td>
<td>If an encryption key was specified, it was not possible to create a server message store when running on Linux systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555616">555616</a></td>
<td>he MobiLink server was allocating more memory than necessary and thus wasting memory. The amount wasted was approximately equal to 13% of the -cm option value. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555617">555617</a></td>
<td>When calling SQLForeignKeys(), the result set was not returned in the correct sort order. According to the ODBC standard, the sort orders are:</p>
<p>				1. If the foreign keys associated with a primary key are requested, the result set is ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ. </p>
<p>				2. If the primary keys associated with a foreign key are requested, the result set is ordered by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ. </p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555621">555621</a></td>
<td>When displaying a graphical plan without statistics, estimates for internal nodes were not included. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555622">555622</a></td>
<td>Lower bounds are imposed on selectivity and cardinality estimates during the optimization process. These bounds are meant to be greater than 0, but less than one row of the result set of a physical operator, and are set to be a very small percentage, which in the case of very big tables, or big intermediate result sets (&gt; 10,000,000 rows), were actually bigger than one row. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555623">555623</a></td>
<td>The following fixes have been made to graphical plan descriptions:</p>
<p>				1. Range expressions of a partial index scan are now always printed as &quot;low expression &lt;[=] column name &lt;[=] high expression [ASC |DESC]&quot;. The low and high expressions can be NULL value if the real fence post was set to NULL value; they can be &#39;*&#39; if the real fence post is not set (this is actually an open range partial index scan).</p>
<p>				2. Selectivity estimations are now printed with 9 decimal digits.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555626">555626</a></td>
<td>If the server used a cached plan for a query with an IN list predicate which contained a variable, and used the IN list predicate to return the rows in descending order</p>
<p>				using a table index, then the result set may have had fewer rows than it should have.</p>
<p>				For example, if table T1 had an index on column col, then the following query may have return too few rows:</p>
<p>				select * from T1 where col in ( 5, Var1 ) order by a desc;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555765">555765</a></td>
<td>There was a very small chance that the server would have returned a thread deadlock error on an external environment call in situations where no actual thread deadlock occurred. For this problem to have occurred, a previous valid thread deadlock must have been returned by the server, resulting from a large number of connections attempting to issue an external environment call at the same time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555769">555769</a></td>
<td>If an application, or set of applications, constantly connected, made a Java call, and then subsequently disconnected, then there was a chance the Java VM used by the server would have thrown an &#39;out of memory&#39; exception. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555789">555789</a></td>
<td>In very rare circumstances, the server could have reported assertion failures 101428 or 101424 &quot;Writing page with no position in file.&quot; when running with AWE enabled and under periods of heavy activity or high server stress. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555808">555808</a></td>
<td>For a query containing a WITH RECURSIVE table, if the estimated cardinality of the recursive table after the first iteration was lower than 2 rows, the optimizer would not have set the alternative JNL operator if an alternative index existed. The resulting execution plans may have been very inefficient, depending of the number of rows on the right hand side of the JoinHashRecursive operator. This has been fixed.</p>
<p>				Example:</p>
<p>				with recursive Ancestor( child) as</p>
<p>				(select row_num from rowgenerator R1 where R1.row_num = 1 ) </p>
<p>				UNION ALL </p>
<p>				(select R2.row_num+100 </p>
<p>				from Ancestor, rowgenerator R2</p>
<p>				where Ancestor.child = R2.row_num </p>
<p>				) )</p>
<p>				select * from Ancestor</p>
<p>				Ancestor(child) has exactly one row after the first query block is computed. Computing the second query block is very efficient if the executed plan is &quot;Ancestor&lt;seq&gt; JNL R2&lt;row_num&gt;&quot;. However, because the optimizer did not set up the JNL operator, the inefficient plan &quot;Ancestor&lt;seq&gt; JH* R2&lt;seq&gt;&quot; was executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555809">555809</a></td>
<td>The Server Message Store would have been unable to connect to the store after creating it, if an encryption password was specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555827">555827</a></td>
<td>When using the Create Table wizard to create a new table, or the Table Duplicate dialog to duplicate a table, the default_value for the dbspace option was ignored; that is, the dbspace selection in the wizard or dialog would have always defaulted to &quot;system&quot;. This has been corrected so that it now defaults to the value of the default_dbspace option, if the option value corresponds to the name of a dbspace.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555936">555936</a></td>
<td>An attempt to drop a database whose page size was larger than the server&#39;s page size, using the &#39;DROP DATABASE&#39; statement, would have resulted in the error &quot;An attempt to delete database &#39;database file&#39; failed&quot;, leaving the reason for the failure unclear. The server will now raise the more specific error, &quot;Page size too big: &#39;database file&#39;&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555940">555940</a></td>
<td>Simple statements of the form &quot;select TOP n from T order by T.X [asc|desc]&quot; may have had a very inefficient query access plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555959">555959</a></td>
<td>If an application executed a remote query that involved a User Defined Function, and the call to the function passed in column references as parameters, there was a chance the server would have crashed when the server decided to run the query in partial passthru mode. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555961">555961</a></td>
<td>The server&#39;s log window could have contained garbage characters if a language DLL was used that was older than the server. There was also a very small chance that the server could have crashed in this case. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555963">555963</a></td>
<td>If an NCHAR, NVARCHAR, or LONG NVARCHAR parameter was bound as SQL_C_DEFAULT, the binding would have defaulted to SQL_C_CHAR, instead of SQL_C_WCHAR. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555965">555965</a></td>
<td>In rare and timing dependent circumstances, a request could have hung on a heavily loaded server. This has only been observed when the request was a cached statement with host variables containing data larger than the communication buffer size, after a schema change, set option or drop variable. This has been fixed.</p>
<p>				Note, setting the max_client_statements_cached database option to 0 may workaround this issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555973">555973</a></td>
<td>Tested and reproduced with:</p>
<p>				Product: SQL Anywhere 11.0.0.1526 with UltraliteJ feature</p>
<p>				OS: Windows XP SP2</p>
<p>				BlackBerry Java Development Environment: JDE 4.1.0.185 and MDS 4.1.0.22 20050927</p>
<p>				Remote Database for ASA Proxy tables: Oracle 10g</p>
<p>				After synchronizing UltraliteJ app tables with Consolidate ASA database, BlackBerry application exits with java.lang.OutOfMemoryError. When confirming BlackBerry memory, there&#39;s actually 17M free.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555976">555976</a></td>
<td>With the release of SA 10.0.0, identifiers were restricted such that they could no longer include double quotes or backslashes. Unfortunately, if an application wants to create an externlogin to a remote SQL server using secure logins, then the remote login needs to be specified in the form user\domain. As a result, the remote login specification of a create externlogin statement has now been extended to accept both identifiers and strings. Note that no catalog changes have been made; hence, the remote login specification is still restricted to 128 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555978">555978</a></td>
<td>Executing a &quot;CREATE PROCEDURE ... LANGUAGE ...&quot; or a &quot;START EXTERNAL ENVIRONMENT ...&quot; statement when connected to a case sensitive database, would have failed with an &quot;external environment not found&quot; error, if the external environment name was not specified in lower-case. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555985">555985</a></td>
<td>The MobiLink server would given an error message that the classpath was too long if the Java classpath given in the -sl java option was longer than about 3000 characters. This restriction has been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR555989">555989</a></td>
<td>It was possible that the last download timestamp for one or more publications would not have been updated after receiving and applying the download from the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556111">556111</a></td>
<td>In specific situations, it was possible for the server to crash when processing a statement that contained a LIST aggregate function with an ORDER BY specification inside of a subquery. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556121">556121</a></td>
<td>Changes made as part of the fix for Engineering case 554242, introduced a problem where running the Validation utility (dbvalid) with a user who did not have DBA authority, or execute permission on the dbo.sa_materialized_view_info procedure, would have failed </p>
<p>				with the error message:</p>
<p>				Permission denied: you do not have permission to execute the procedure </p>
<p>				&quot;sa_materialized_view_info&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556123">556123</a></td>
<td>Under certain circumstances, use of the system procedure sa_row_generator() could have caused the server to crash, or enter an infinite loop. This problem has been fixed. </p>
<p>				Note that the result set of the stored procedure will be empty when the specified values are not appropriate.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556127">556127</a></td>
<td>If the server could not find a transaction log file when attempting to start a database that needed recovery, it would have returned the misleading error &quot;Specified database not found&quot; (SQLCODE -83). This has been fixed. The error now returned in this situation is &quot;Cannot open transaction log file -- &lt;filename&gt;&quot; (SQLCODE -106).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556132">556132</a></td>
<td>The name of a .SQL file to run can be specified on the command line without an explicit READ keyword. If the .SQL file requires parameters, it is now possible to give the parameters following the file name without the READ keyword. For example,</p>
<p>				DBISQL x.sql [parm1]</p>
<p>				is equivalent to</p>
<p>				DBISQL READ x.sql [parm1]</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556146">556146</a></td>
<td>The optimizer may have generated a query access plan that used intra-query parallelism that could not be executed in parallel, by underestimating the execution cost. This has been corrected by adjusting the costing of such enumerated plans during the optimization process so that it is closer to what the server does during query execution. This was done by using a new property of the partial access plans - &quot;partitioned during execution&quot;. Hence, less than optimal parallel plans are more likely to be estimated as such by the optimizer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556154">556154</a></td>
<td>A server participating in mirroring system may have crashed if a mirroring connection timed out due to liveness, or, on very rare occasions, if a connection attempt to the partner or arbiter failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556162">556162</a></td>
<td>If concurrent connections made DDL changes to the same global temporary table, then it was possible for the server to fail to reapply the resulting transaction log using the &quot;-a&quot; server command line option. Normal recovery should have been performed properly. This has been fixed so that the server will now be able to apply the transaction logs without error. Existing transaction logs will work correctly as expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556163">556163</a></td>
<td>If the sa_validate() procedure was called without arguments, materialized views were not being validated. This has been fixed. </p>
<p>				Note, for changes to the sa_validate() procedure to take effect, the database will need to be rebuilt with a server containing this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556175">556175</a></td>
<td>Queries with unflattenable subqueries may have returned incorrect results, or crashed the server. The following conditions must have been true for the incorrect result set to have been, or for the server to have crashed:</p>
<p>				- the query contained a subquery predicate (e.g., EXISTS() , NOT EXISTS()) which could not be flattened in the main query block, which was used in the cost-based optimization by the SA Optimizer</p>
<p>				- the subquery predicate was correlated to at least two tables from the main query block</p>
<p>				- a correlation expression was equated to a constant in the main query block</p>
<p>				For example:</p>
<p>				select *</p>
<p>				from f, i, fi </p>
<p>				where f.fund_id = 1 &lt;==== f.fund_id is a correlation expression for the NOT EXISTS() predicate and it is equated to a constant</p>
<p>				and f.fund_id = fi.fund_id</p>
<p>				and fi.investor_id=i.investor_id</p>
<p>				and i.investor_id not in ( select ib.investor_id &lt;=== i.investor_id is a correlation expression for the NOT EXISTS() predicate</p>
<p>				from ba , ib</p>
<p>				where f.fund_id = ba.fund_id &lt;==== f.fund_id is a correlation expression for the NOT EXISTS() predicate</p>
<p>				and ib.bank_account_id=ba.account_id</p>
<p>				)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556292">556292</a></td>
<td>Output host variables for SQL statements would not have been updated when using the UltraLite engine if a warning had been triggered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556296">556296</a></td>
<td>In rare cases, creating a procedure could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556326">556326</a></td>
<td>Applications running on Unix systems, and using the iAS ODBC driver for Oracle, could have received an &quot;Out of memory&quot; error when calling SQLTables, SQLColumns, SQLPrimaryKeys, SQLForeignKeys, SQLProcedureColumns, SQLProcedures, or SQLStatistics. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556340">556340</a></td>
<td>Applications fetching data from an NCHAR column that was greater than 32767 bytes, using the Perl, Python, PHP, or Ruby drivers, may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556447">556447</a></td>
<td>When editing a DATE value in the &quot;Results&quot; pane of the Interactive SQL utility (dbisql), or on the &quot;Data&quot; tab in the SQL Anywhere plug-in for Sybase Central, if the date was typed in, rather than using the date chooser dialog, the value entered was ignored when the value was updated. This has been corrected so that the value entered is now sent to the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556453">556453</a></td>
<td>Newly added or modified DATE values on the &quot;Data&quot; tab for a table, could have been displayed using the canonical YYYY-MM-DD format rather than that specified in the &quot;Date_format&quot; database option. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556516">556516</a></td>
<td>If an application was using one of the JDBC based Remote Data Access classes (i.e. either SAJDBC or ASEJDBC), and the remote login failed, then there was a possibility that the error reported would not contain the actual reason for the failed login. When jConnect throws a JZ00L SQLException, the actual reason for the failed login is usually contained in a chained SQLException, rather than the main SQLException. The server will now report the error on the chained exception instead of reporting the topmost SQLException.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556527">556527</a></td>
<td>A new network protocol option &#39;http_buffer_responses&#39; has been added. When set to &#39;On&#39;, HTTP packets from MobiLink will be completely streamed into an intermediary buffer before being processed, instead of processing the bytes as they are read off the wire.</p>
<p>				Syntax: http_buffer_responses = { off | on }</p>
<p>				Protocols: HTTP, HTTPS</p>
<p>				Default: off</p>
<p>				Because of the extra memory overhead required, this feature should only be used to work-around HTTP sync stability issues. In particular, the ActiveSync proxy server for Windows Mobile devices will throw away any data that is not read within 15 seconds after the server has closed its side of the connection. Because MobiLink clients process the download as they receive it from MobiLink, there is a chance they will fail to finish reading an HTTP packet within the allotted 15 seconds causing synchronization to fail with stream error code STREAM_ERROR_READ, when synchronizing using non-persistent HTTP. By specifiying &#39;http_buffer_responses=On&#39;, the client will read each HTTP packet in its entirety into a buffer before processing any of it, thereby beating the 15 second timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556539">556539</a></td>
<td>UltraLite and UltraLiteJ were not able to recognize a correlation name following the table name in UPDATE and DELETE statements. Without this ability, WHERE clauses that require the correlation name to disambiguate column references could not be written.</p>
<p>				For example:</p>
<p>				update Employee E</p>
<p>				set salary = salary * 1.05</p>
<p>				where EXISTS( SELECT 1 FROM Sales S HAVING E.Sales &gt; Avg( S.sales) GROUP by S.dept_no )</p>
<p>				The syntax for UPDATE and DELETE statements was been expanded to correct this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556552">556552</a></td>
<td>In certain cases, rebuilding a pre-10.0 database to version 10.0 or later may have failed due to an incorrectly charset-converted database file-name. The SQL error that was reported was:</p>
<p>				&quot;Cannot access file &#39;&lt;incorrectly-converted-file-name&gt;.db&#39; -- The filename, directory name, or volume label syntax is incorrect.&quot;</p>
<p>				This issue only occurred when using an OS charset whose label was not used prior to version 10.0.0, such as &quot;GBK&quot;. Additionally, for this issue to have occurred, the database must have used a different charset than the OS charset - specifically, the filename must contain characters that require translation to be valid in the database charset. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556724">556724</a></td>
<td>Using the &quot;Request Logging&quot; page of a server&#39;s property sheet to attempt to enable request level logging for all connections to a database, or for a single connection, would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556754">556754</a></td>
<td>When deleting a row containing a CHAR or BINARY (i.e. string) column, there were some circumstances where the space on the table page for the string might not have been reclaimed. This problem only occurred with string data shorter than approximately one page in size, and the string must have been held active, either in a cursor or in a variable, then inserted into a new row, and then deleted while still held active. The database cleaner must also run after commiting the delete, but before closing the cursor or value holding the string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556757">556757</a></td>
<td>If a JDBC application called ResultSetMetaData.getColumnTypeName() with an invalid column index, then the application may have crashed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556771">556771</a></td>
<td>On Windows platforms other than Windows Vista, performance counters for the server were not visible in the performance monitor when the server was started as a service. The code to check if the process was still alive was using the wrong permissions to open the process. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556778">556778</a></td>
<td>The return values of the built-in functions user_id() and suser_id() may have incorrectly been described as not nullable even if the function argument was not nullable. This may have lead to the assertion error 106901 &quot;Expression value unexpectedly NULL in write&quot;. This has been fixed so that the functions&#39; results are always described as nullable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556913">556913</a></td>
<td>SQL Anywhere JSON services incorrectly encoded the apostophe (&#39;) within a string to a double backslash (\\), the backslash was not encoded. This has been fixed so that a backslash is now correctly encoded to a double backslash, and the apostrophe is not encoded.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556925">556925</a></td>
<td>The fix for Engineering case 553312, may have prevented restarting the MobiLink Monitor after disabling the Details Table, Utilization Graph, or Overview panes. This has been fixed. Pane sizes are now also properly restored when re-enabling after restarting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556960">556960</a></td>
<td>The &quot;Join Type&quot; value on the &quot;Join&quot; page of the Query Editor could not be reset to its initial empty value. This has been corrected so that now it can.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556974">556974</a></td>
<td>Using a QAnywhere JMS connector to communicate with a Websphere MQ JMS provider could have resulted in the following two issues:</p>
<p>				- The MobiLink server could have reported the error &quot;The property name &#39;JMSTimestamp&#39; is reserved and cannot be set.&quot; when Sending a message from a QAnywhere application to the JMS connector.</p>
<p>				- The ReplyToAddress of a QAnywhere message originating from a Websphere JMS provider could have contained a malformed queue name.</p>
<p>				Both of these issues have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR556989">556989</a></td>
<td>The server may have crashed, or returned incorrect data, on GET DATA requests if the cursor reused a query access plan for a simple SELECT statement. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557107">557107</a></td>
<td>When locking a table in exclusive mode (i.e. LOCK TABLE {tablename} IN EXCLUSIVE MODE), the server would first obtain a read lock on the table, increasing the likelihood of deadlocks occurring. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557311">557311</a></td>
<td>A connection established by an HTTP request to an HTTP listener port, would have leaked a small amount of memory when the connection was closed. This has been fixed. </p>
<p>				Connections to HTTPS listener ports were not affected by this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557328">557328</a></td>
<td>If an application logged on the database using a userid with multibyte characters, and the application subsequently made a Java in the database call, then there was a chance the Java VM would have failed to start if this was the first time a Java call was made since the database was started. This problem has now been fixed.</p>
<p>				The workaround is to log in using a userid without non-multibyte characters and execute a START JAVA statement. Once the Java VM is successfully started, making Java calls using userids with multibyte characters will work fine.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557332">557332</a></td>
<td>If a string column used a UCA collation with accent or case sensitivity, and the column appeared in an index with order DESC, then the server could have returned incorrect answers for LIKE predicates on the column. Problematic LIKE predicates started with a prefix of non-wildcard characters, such as the following: &quot;T.x LIKE &#39;01234%&#39;&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557363">557363</a></td>
<td>By default (or with SET &#39;HTTP(CH=auto)&#39;) an SA HTTP client procedure would have sent its HTTP request using chunk mode transfer encoding when posting data that was greater than 2048 bytes. If the server rejected the request with a 501 &quot;Not Implemented&quot; or 505 &quot;HTTP Version Not Supported&quot; status, the procedure would have automatically re-issued the request without using chunk transfer encoding. When in default mode, an SA client would not have used chunk transfer encoding when posting data that was less than 2048 bytes in length. This has now been changed so that the data byte limit is now 8196 bytes, from 2048 bytes, and the status 411 &quot;Length Required&quot; has been added to its criteria for re-issuing the request without using chunk mode transfer encoding.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557465">557465</a></td>
<td>In exceptionally rare circumstances, the server may have crashed during the rewrite phase of optimization, when attempting to execute a very large and complex SELECT statement. This may have occurred when the server was close to running ouf of stack space, or was low on cache. The problem was seen with queries containing UNION, EXCEPT, INTERSECT, and deeply nested subselects. This has been fixed. The server will now correctly return the error &quot;-890: Statement size or complexity exceeds server limits&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557507">557507</a></td>
<td>If the statement:</p>
<p>				set option public.login_mode=&#39;Standard,Integrated&#39;</p>
<p>				was executed, it would have been recorded in the transaction log as</p>
<p>				set option public.login_mode=&#39;Standard&#39;</p>
<p>				This could have affected mirroring environments where the login_mode was set correctly on the primary server, but not on the mirror. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557518">557518</a></td>
<td>An extremely busy server with multiple CPUs, maxed on processing queries, could have crashed in rare conditions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557527">557527</a></td>
<td>A SQL Anywhere HTTP client function was only able to return a varchar data type. Support has now been added to the HTTP client so that it can also be defined to return binary, varbinary or long binary data types, i.e.:</p>
<p>				CREATE function client() RETURNS long binary URL &#39;http://localhost/image_service/...&#39; TYPE &#39;HTTP:GET&#39;</p>
<p>				Note, this change only extends the semantic meaning of the returned value, declaring the return data type as binary does not change the behaviour at the transport level. Textual data may still be converted to the database character set based on Content-Type HTTP header or SOAP envelope encoding criteria.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557677">557677</a></td>
<td>The server automatically collects and updates column statistics during the execution of DML statements. Earlier versions of the server did the auto collection only when a single DML statement affected more than a threshold number of rows, in order to reduce the overhead of collecting statistics on a relative basis. Support was added in release 10.0.1 to also do some automatic statistics collection on all DML statements, including those affecting as few as a single row. A subtle defect in this new support caused the server to miss some opportunities for automatic statistics collection for UPDATE statements, as opposed to the INSERT and DELETE statements. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557679">557679</a></td>
<td>When running a 64-bit version of perfmon, the Adaptive Server Anywhere or SQL Anywhere counters would not have been displayed if the 64-bit version of the counters library (dbctrsX.dll) was registered and the 32-bit version was not. This has been corrected.</p>
<p>				Note, both versions of the counters library are registered during a normal product installation so it is unlikely that users would encounter this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557685">557685</a></td>
<td>UltraLite and UltraLiteJ erroneously accepted DEFAULT TIMESTAMP as a clause in the CREATE TABLE and ALTER TABLE statements, and treated the clause as if DEFAULT CURRENT TIMESTAMP had been entered. Attempts to execute CREATE TABLE or ALTER TABLE statements with this clause will now result in a syntax error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557686">557686</a></td>
<td>The MobiLink server could not start in a server farm if the consolidated databases were running on DB2 or DB2 mainframe database servers, and the MobiLink server in the farm was requested to start with a liveness setting from the ml_property table (the ml_property table in the consolidated database contained a liveness value for the server farm). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557767">557767</a></td>
<td>If an ALTER TABLE statement needed to rewrite the rows of the table (for example, if a 17th nullable column is added) and the table contained long or compressed strings, the operation could have taken much longer than necessary and the database may have end up with many more free pages than before the ALTER. The number of extra pages would have been approximately the number of pages in the table in question. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557794">557794</a></td>
<td>Under certain circumstances, it is possible that database indexes could have become corrupt. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557802">557802</a></td>
<td>In rare circumstances, server CPU usage could have been unnecessarily high. The problem would only have occurred with certain layouts of memory within a heap, and when certain heap operations were being performed on the heap. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557808">557808</a></td>
<td>The changes for Engineering case 552171 introduced a problem where occasionally the use of the db_backup() function on a running database server could have returned a corrupt transaction log page. This would have caused the MobiLink client (dbmlsync) to fail the synchronization, or the Backup utility (dbbackup) to fail to recover the newly backed-up file. In both cases, this was a transient failure, and the sync/backup could simply have been restarted when the error was detected. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557812">557812</a></td>
<td>If an UPDATE or DELETE statement used a keyset cursor and the statement executed at isolation level 0 or 1, it was possible for the statement to update or delete rows improperly. This could have occurred if another transaction deleted a row identified by the UPDATE or DELETE statement and committed, and then another transaction inserted a row and committed before the UPDATE or DELETE statement had finished processing. In this case, the newly inserted row would have been improperly processed by the UPDATE or DELETE statement. DELETE and UPDATE statements use a keyset cursor if there is a possibility that an updated row could be re-processed by the statement (for example if an UPDATE modifies a column in the index scan, or if a join is present). This has now been fixed.</p>
<p>				A workaround would be to use a higher isolation level (2 or 3).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557818">557818</a></td>
<td>When running on Windows CE devices, an UltraLite database could have failed to start, reporting SQLE_DYNAMIC_MEMORY_EXHAUSTED, when the default cache size chosen for the database was too large. The default cache size that is now chosen takes the physical memory available in to consideration, and limits our size accordingly. The cache size allocated on Windows was also somewhat reduced. Specifying the cache_size connection parameter with an appropriate value will work around this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557829">557829</a></td>
<td>If the MobiLink Listener (dblsn) was started with the -q option (&quot;run in minimized window&quot;), and it was then restored by double clicking on the icon from the today screen, the &quot;shutdown&quot; button did not appear. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557837">557837</a></td>
<td>Incorrect results were possible when there was both an equality condition and another redundant conjunctive expression such as:</p>
<p>				x &gt;= 2 AND x = 3</p>
<p>				with only a column name on one side of the comparison. That column name must also have been the first column in an index. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557849">557849</a></td>
<td>The Interactive SQL utility (dbisql), or the SQL Anywhere plug-in for Sybase Central, could have crashed when opening the &quot;Connect&quot; dialog when run with JRE 1.6.0 update 11. This has been fixed. </p>
<p>				Note, SQL Anywhere 11.0.0 and 11.0.1 ship with JRE 1.6.0 update 4, which does not suffer from this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557870">557870</a></td>
<td>If a table containing columns declared as compressed strings was used in a parallel plan that contained a parallel hash join, it was possible, in rare circumstances, for the server to have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557924">557924</a></td>
<td>If a connection string containing the &quot;verify=no&quot; TCP option was passed to the Interactive SQL utility (dbisql) and the -jconnect option was used, the dbisql would have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557938">557938</a></td>
<td>It was possible for a deadlock to have occurred in the database server if the QAnywhere server was performing delete rules and archiving messages at the same time. Furthermore, the exception thrown by this deadlock exposed another problem in the QAnywhere server error handling where it was possible for a transaction to be left open, causing other connections to block due to unreleased table locks. Both of these issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557953">557953</a></td>
<td>The Index Consultant may have caused the server to crash following query optimization. The class of queries for which this could happen was characterized by the existence of a comparison or EXISTS() subquery predicate in one of the query blocks.</p>
<p>				For example:</p>
<p>				select * from sales_order_items soi1, sales_order_items soi2</p>
<p>				where soi1.id = soi2.id </p>
<p>				AND </p>
<p>				soi1.quantity &lt;</p>
<p>				(</p>
<p>				select avg( quantity ) from sales_order_items soi3</p>
<p>				where soi3.prod_id = soi1.prod_id</p>
<p>				);</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557955">557955</a></td>
<td>Calls the function SQLGetInfo() would have incorrectly returned SQL_CB_NULL for SQL_CONCAT_NULL_BEHAVIOR. As the result of the server concatenating a string and NULL is the string, calls to SQLGetInfo() have now been corrected to return SQL_CB_NON_NULL for SQL_CONCAT_NULL_BEHAVIOR.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557960">557960</a></td>
<td>The UltraLite Unload utility (ulunload), when run with the -s option &quot;Unload schema as SQL statements&quot;, would have generated invalid unique constraints when they contained more than one column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR557973">557973</a></td>
<td>If an index already existed on a particular set of columns, attempting to create a unique index over the same set of columns might have failed, if the index contained deleted, but not cleaned, entries. This has been fixed.</p>
<p>				Note, a work around would be to call sa_clean_database manually before creating the index.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558001">558001</a></td>
<td>Under certain circumstances, the server could have computed, and displayed, incorrect statistics, For example, the selectivity may have been reported as infinite. This were likely no side effects on query performance related to this defect, which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558084">558084</a></td>
<td>A new tailoring of the Japanese UCA collation has been added which defines primary-level differences between all Hiragana letters, as well as primary-level differences between all Katakana letters. This new tailoring will permit correct equality comparisons of Hiragana and Katakana letters in case-insensitive collations. The new collation is used by specifying a collation of UCA(locale=ja;sorttype=direct;...).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558085">558085</a></td>
<td>The MobiLink server now supports two new command options,</p>
<p>				-vR show the remote ID in each logging message</p>
<p>				-vU show the ML user name in each logging message</p>
<p>				When both -vR and -vU are specified, the MobiLink server will add the remote ID and the MobiLink user to each message logged:</p>
<p>				yyyy-mm-dd hh:mm:ss. &lt;sync_id&gt; ({remote_id},{user_name})</p>
<p>				When started with -vR and without -vU, the prefix will be just the remote_id:</p>
<p>				yyyy-mm-dd hh:mm:ss. &lt;sync_id&gt; (remote_id,)</p>
<p>				and the MobiLink user name will be empty. When started with -vU and without -vR, the</p>
<p>				prefix will be just the user name:</p>
<p>				yyyy-mm-dd hh:mm:ss. &lt;sync_id&gt; (,user_name)</p>
<p>				and the remote ID will be empty.</p>
<p>				The new feature may be useful for MobiLink users who are running the MobiLink server with the command options -on or -os, as the logging messages for a synchronization can span multiple MobiLink server logging files, which makes it is hard to find out the remote ID and MobiLink user name for a given sync ID from such logs. This extra logging information will only apply to the synchronization threads. For the main thread of the MobiLink</p>
<p>				server, the logging messages will still contain the following prefix,</p>
<p>				yyyy-mm-dd hh:mm:ss. &lt;Main&gt; </p>
<p>				because there is no remote ID or MobiLink user name for the main thread. These two command line options will not be affected by the -v+ option, that is, the MobiLink server will not add the remote ID or the ML user name into its logging messages, even if the -v+ option is used. Therefore, the description for the -v+ option</p>
<p>				has been changed to - &quot;show all verbose logging specified with lower case letters&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558108">558108</a></td>
<td>Calling the function SQLGetTypeInfo() would have returned an incorrect AUTO_UNIQUE_VALUE column value in the result set for non-numeric types. The value return would have been 0, but according to the ODBC specification a NULL should have been returned.</p>
<p>				ODBC specificatrion for AUTO_UNIQUE_VALUE :</p>
<p>				Whether the data type is autoincrementing: </p>
<p>				SQL_TRUE if the data type is autoincrementing.</p>
<p>				SQL_FALSE if the data type is not autoincrementing.</p>
<p>				NULL is returned if the attribute is not applicable to the data type or the data type is not numeric.</p>
<p>				The behaviour has been corrected to follow the ODBC specification.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558232">558232</a></td>
<td>The MobiLink Monitor has a default filter which highlights failed synchronizations in red. Failed synchronizations logged by the MobiLink Server were not being shown in the Monitor in red as the server was telling the Monitor that every sync was successful. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558286">558286</a></td>
<td>A query may have taken a very long time to execute if it contained an uncorrelated subquery in an ANY or ALL predicate that referenced a procedure that was not inlinable. The problem was due to the subquery plan that was generated not having a work table above the procedure call, so every repeated subquery execution caused the procedure to reexecute. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558446">558446</a></td>
<td>Executing an insert statement of the form: &#39;INSERT INTO &lt;remote table&gt; ON EXISTING UPDATE SELECT * FROM &lt;table&gt;&#39;, would have caused the server to correctly return an error; but, if the application attempted to execute an insert statement of the form: &#39;INSERT INTO &lt;table&gt; ON EXISTING UPDATE SELECT * FROM &lt;remote table&gt;&#39;, the server would have crashed. The problem has now been fixed and the server now correctly returns an error in both cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558481">558481</a></td>
<td>The Interactive SQL utility (dbisql) could have crashed when executing a statement which returned a result set, if the redirection operator ( &quot;&gt;#&quot; ) was used to save the result set to a file. This has been fixed. </p>
<p>				Note, this problem only affected graphical operation of the program.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558510">558510</a></td>
<td>A table in the QAnywhere for Ultralite schema could have been created improperly, resulting in a failure to initialize the message store with the error (-131) &quot;param 1: timestamp&quot;. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558554">558554</a></td>
<td>If a user-defined domain was created with char-length semantics, the Unload utility (dbunload) would not have preserved this attribute. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558580">558580</a></td>
<td>Incorrect results could have been obtained with queries containing a temporary table on left side of a LEFT OUTER JOIN. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558713">558713</a></td>
<td>If a simple SELECT statement was executed with the option Row_counts set to &#39;on&#39;, the returned row count value on open may have incorrectly been zero. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558739">558739</a></td>
<td>After deploying a synchronization model with logical deletes to a DB2 consolidated database, and then synchronizing, either of the following synchronization errors would have occurred for the MobiLink server (depending on the database setup):</p>
<p>				[IBM][CLI Driver][DB2/NT] SQL1216N Graphic data and graphic functions are not supported for this database. SQLSTATE=56031</p>
<p>				[IBM][CLI Driver][DB2/NT] SQL0104N An unexpected token &quot;N&#39;&#39;&quot; was found following &quot;, ?, ?, ?, ?, &#39;&#39;&quot;. Expected tokens may include: &quot;&lt;space&gt;&quot;. SQLSTATE=42601</p>
<p>				This has been fixed. A workaround is to deploy to a file and edit the consolidated SQL file to change instances of four single quotes to two single quotes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_65.htm#CR558753">558753</a></td>
<td>Attempting to cancel an external environment request while the server was very heavily loaded may have caused the server to crash. Note that this problem would have been quite rare. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR558756">558756</a></td>
<td>Attempting to execute a query that referenced a view containing a remote query, could have crashed the server. The crash would have occurred if the remote query had both GROUP BY and HAVING clauses, and/or aliases. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR558915">558915</a></td>
<td>When deploying a Synchronization Model to file, any characters in .SQL files that are not supported by the OS console code page would be changed to a substitution character, even though the character would have been displayed correctly in the MobiLink plug-in. This has been fixed so that .SQL files now use UTF-8 character encoding. The generated .bat or .sh file is still written using the console code page, since it must run in a console, but the UTF-8 character encoding is now specified when the Interactive SQL utility is invoked in the .bat or .sh file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR558953">558953</a></td>
<td>Executing a CONNECT statement could have caused the Interactive SQL utility (dbisql) to connect to the wrong database if a connection had been already made to a database, and the CONNECT statement did not specify an engine name (ENG) or database name (DBN). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR558973">558973</a></td>
<td>Using the ATLER EXTERNAL ENVIRONMENT ... LOCATION statement to set the executable path to a MBCS string, could have caused the server to subsequently fail to launch the external environment. When fetching the external environment location from the catalog, the server was not subsequently converting the string to the OS charset. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR558984">558984</a></td>
<td>The JDBC sample applications incorrectly contained references to the SQL Anywhere 10 ODBC driver. This has been fixed.</p>
<p>				Comments were also added that explain the DriverManager.registerDriver and DriverManager.getConnection code.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559185">559185</a></td>
<td>Attempting to execute a CONNECT statement could have crashed the Interactive SQL utility (dbisql) if it was started without an initial connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559192">559192</a></td>
<td>If an application fetched columns of type NUMERIC, DATE, TIME, or TIMESTAMP, and the column was bound as a string in the client application, then performance could have decreased. The slowdown was most apparent in statements where a large number of rows were fetched with relatively little server processing per row. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559197">559197</a></td>
<td>When creating a new user, or changing an existing user&#39;s Profile authority setting, Sybase Central would not have always updated its group memberships in the Users &amp; Groups folder. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559258">559258</a></td>
<td>The stored procedure debugger failed to report information about the size of string and numeric data types when debugging a stored procedure. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559360">559360</a></td>
<td>Sybase Central allowed for explicitly adding members to, or removing members from, the diagnostics group, but in some instances the members would not have actually been added or removed. This has been fixed by no longer permitting this. Now members can be added to, or removed from, the diagnostics group implicitly by granting or revoking Profile authority via the user&#39;s properties dialog. In addition, Sybase Central no longer allows deleting the diagnostics, rs_systabgroup and SA_DEBUG groups, nor change any of these groups to users.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559372">559372</a></td>
<td>If an application used one of the connection scoped external environments (i.e. PHP, PERL or one of the external C environments); and the external environment failed to start up due to high server load or time-out, then there was a chance the external environment executable would not have ended. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559383">559383</a></td>
<td>When configuring an ODBC FileDSN on Windows, NEWPWD=* incorrectly showed up in the Advanced tab of the configuration dialog. The NEWPWD=* parameter was not actually added to the FileDSN though. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559399">559399</a></td>
<td>If the deleted_length of a text index was greater than 50% of the doc_length, the server should refresh the text index. However, it was possible to get into a state where the pending length was very small and the deleted_length was very large, yet refreshes still did not occur. The check for the pending_length was occurring too early and prevented the server from ever checking the pending length. As a result, the index was never being refreshed. This has been corrected so that the server now checks that one condition or the other is true to continue to the refresh code.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559402">559402</a></td>
<td>In previous versions of SQL Anywhere, a password connection parameter was not written to a FILEDSN (.dsn file). Beginning with version 11.0.0, the password is written to the .dsn file in the format &quot;Password={some pwd}&quot;. This behavior is not in keeping with the spirit of the ODBC specification which states, &quot;the PWD keyword is not stored in a .dsn file&quot;. This change in behavior occurred as a result for a change to the SQL Anywhere ODBC driver to return &quot;Password={some pwd}&quot;, instead of &quot;PWD={some pwd}&quot; in the connection string. Also, &quot;Userid=user&quot; was returned instead of &quot;UID=user&quot;. The Microsoft driver manager only recognizes the UID and PWD forms of the connection parameters, which caused it to add the Password parameter. This problem has been corrected. The SQL Anywhere ODBC driver will now return &quot;UID={user};PWD={some pwd}&quot; in the connection string, as it did in earlier versions. This will result is the Driver Manager no longer including the password.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559403">559403</a></td>
<td>If a connection with a Configuration object failed, for example due to an incorrect password, a connection then with a corrected configuration object would have caused a SQLE_CONFIG_IN_USE error to have been thrown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559412">559412</a></td>
<td>The OUTPUT USING statement could have failed to export the results of a DESCRIBE statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559413">559413</a></td>
<td>If many connections made concurrent external environment requests, and some of these requests failed due to thread deadlock, then attempting to close one of these connections may have caused the client to hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559431">559431</a></td>
<td>Attempting to execute an INPUT USING statement would have cause the Interactive SQL utility to crash if the connection string was empty or missing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559440">559440</a></td>
<td>When run on Linux systems, a server that had been handling TCP/IP connections could have displayed the message &quot;epollerr: Bad file descriptor&quot; in the console on shutdown. Also, under very rare circumstances on all UNIX platforms, the server could have experienced problems handling TCP/IP connections. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559446">559446</a></td>
<td>If a server running on Linux systems with GTK libraries installed was auto-started, or started by the Start Server utility (dbspawn), in an X Window environment, an empty window titled &quot;SQL Anywhere Developer Edition&quot; would have remained visible until the server was shut down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559481">559481</a></td>
<td>Executing an ALTER TABLE statement could have caused unneccessary database growth.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559600">559600</a></td>
<td>Executing a &quot;MESSAGE .. TO CLIENT FOR CONNECTION conn-id IMMEDIATE&quot; statement shortly before the target connection abnormally disconnected could have resulted in the message callback being called after an API request returned an error. The abnormal disconnect could have been caused by a liveness timeout, idle timeout, DROP CONNECTION, server shut down, or other conditions. Depending on the application&#39;s message callback routine, this could have resulted in a crash or other incorrect behaviour. This has been fixed so that the message callback will not be called after an API request has returned an error due to an abnormal disconnect.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559632">559632</a></td>
<td>An embedded SQL PREPARE or OPEN request could have caused the application to crash in rare cases, if the connection was dropped before, or during, the request. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559636">559636</a></td>
<td>MobiLink clients, except UltraLiteJ, now support a new network protocol option on Windows Mobile and desktop, &#39;network_adapter_name&#39;, which allows clients to explicitly specify the name of the network adapter to be used to connect to a MobiLink server. Example: &quot;network_adapter_name=Serial on USB&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559653">559653</a></td>
<td>When connected to an authenicated SQL Anywhere database from the MobiLink plug-in in Sybase Central using the &quot;Generic ODBC DSN&quot; option, the connection would have been read-only. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559678">559678</a></td>
<td>Incorrect results could have been obtained with queries containing IF search expressions, aggregate functions, or references to columns not specified in the GROUP BY clause. These are now diagnosed as errors.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559694">559694</a></td>
<td>The persistent store was not being properly closed on open failure (such as authentification failure) with write-at-end configuration. This could have lead to problems reconnecting to the database. The store is now closed on an open failure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559810">559810</a></td>
<td>If an INSERT statement inserted a string into a CHAR or VARCHAR column with character-length semantics, then it was possible for the server to fail with the following assertion failure:</p>
<p>				100914: string too long when recording operation in transaction log.</p>
<p>				In order for the failure to occur, the inserted string must have had byte-length semantics and it must have contained more characters than the column definition. Further specific characteristics of the database and statement were needed to reproduce the problem. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559813">559813</a></td>
<td>The server would have reported the number of processors detected and some imposed limits. The messages have been changed so that they will now report:</p>
<p>				- number of processors detected (changed format)</p>
<p>				- processor limits imposed by Edition, licenses purchased, and -gt option</p>
<p>				- max number of processors that will be used</p>
<p>				Also, the Edition limit that is imposed during licensing is now also imposed by the server itself.</p>
<p>				For some Unix systems, the number of processors used can not be limited. If the number to be used exceeds the per-processor license limitation, an additional message is reported, and is unchanged from previous versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559822">559822</a></td>
<td>If the optimizer selected a parallel execution plan for a query with a GROUP BY operator on the right hand side of a nested loops join, and the group by contained an AVG or other composite aggregate function, then it was possible for the statement to incorrectly generate the error: &quot;Field unexpected during compilation&quot;. In this case the server would have continue to process other requests. This problem has been fixed.</p>
<p>				A workaround is to disable parallel plans by setting Max_query_tasks=1 as a connection option, or in the query OPTIONS clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559844">559844</a></td>
<td>If a query execution plan used a multiple index scan with an Except Merge operator (EM), then it was possible for the statement to fail with an assertion failure such as the following:</p>
<p>				Assertion failed: 106502 - NULL in not-NULL work table column</p>
<p>				In order for the failure to occur, one of the indexed columns in the query must have been declared not-NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559864">559864</a></td>
<td>Connecting, disconnecting, and reconnecting using the same connection handle would have caused error -298 &quot;Attempted two active database requests&quot; in dbcapi.</p>
<p>				For example:</p>
<p>				conn = sqlany_new_connection();</p>
<p>				sqlany_connect( conn, &lt;connection_string&gt; );</p>
<p>				sqlany_disconnect( conn );</p>
<p>				sqlany_connect( conn, &lt;connection_string&gt; );</p>
<p>				The last sqlany_connect() call would have returned error -298. This has been fixed. The workaround is to call sqlany_free_connect() and allocate and new handle.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559897">559897</a></td>
<td>If a critical error occurred and an application then called db_fini, without first closing the connection, the database could have become corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559898">559898</a></td>
<td>If an application made use of one of the Remote Data Access JDBC classes, and the application then disconnected abnormally, then the connection to the remote server was never closed. The problem did not exist if the application used one of the Remote Data Access ODBC classes instead. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR559941">559941</a></td>
<td>NULL values were not being handled properly in single-valued SELECT queries. The value was treated as if it was not null, and an unpredicatable value was used. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560044">560044</a></td>
<td>In some cases, an error was generated for expressions that contained only values that were known at open time.</p>
<p>				For example, the following generated a &quot;division by zero&quot; error:</p>
<p>				select if 1=0 then 1/0 else 42 endif val</p>
<p>				This problem occurred because the expression &#39;1/0&#39; was evaluated as part of building the access plan for the query. Constant expression trees were evaluated at open time in a bottom-up fashion so that the value can be used at execution time (avoiding multiple evaluations and supporting optimizations). In some cases, the expression was not actually needed, as in the above example with an IF expression. In these cases, the constant folding process could have generated an error that would not have been returned if the constant literals were replaced with field references.</p>
<p>				This has been changed. Errors generated during constant folding are no longer returned at open time. Instead, the constant expression tree is left in its original structure and evaluated at execution time if the value is needed. This execution-time evaluation will generate the related error if the value is actually needed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560045">560045</a></td>
<td>When the QAnywhere consolidated database contained a large number of messages that satisfied a delete rule, and there were QAnywhere clients synchronizing frequently, it was possible that delete rules would have always failed because of database deadlock errors such as:</p>
<p>				Error: [QA] Problem evaluating transmission rules for user ianywhere.server.deleteRules: Problem updating object in repository using key &quot;delete from ml_qa_repository from ml_qa_repository mbr where msgid in (select msgid from ml_qa_messages ml_qa_messages where status &gt; 20 and (syncstatus = 1 or originator in (&#39;ianywhere.connector.beajms&#39;,&#39;ianywhere.server&#39;)))&quot;: java.sql.SQLException: [Sybase][ODBC Driver][Adaptive Server Anywhere]Deadlock detected: [Sybase][ODBC Driver][Adaptive Server Anywhere]Dea</p>
<p>				Error: dlock detected</p>
<p>				This has been fixed. It is possible that some deadlock errors will still occur, but the errors will not prevent delete rules from deleting old messages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560056">560056</a></td>
<td>If a connection was forcibly closed by the server (via DROP CONNECTION, liveness or idle timeout), or was closed by the client libraries because of a liveness timeout, the client application could have crashed if the next operation it attempted was to open a cursor </p>
<p>				without preparing it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560069">560069</a></td>
<td>When executing a VALIDATE statement, or running the Validation utility (dbvalid), table validation would have failed to report errors when an index did not contain all the rows in the table. This has now been corrected.</p>
<p>				Note, when validating a database with a 10.0.1 server between 3920 and 3930 inclusive, it was also possible for errors to be reported, when in fact there were no error. I this case, the 10.0.1 server should be updated to a build number of 3931 or higher, and the validation rerun to see if the errors are still reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560080">560080</a></td>
<td>If a user-defined function was created with the DETERMINISTIC keyword, the parsed version of the CREATE FUNCTION sstatement that was placed in the catalog did not contain this keyword. The function may not then have been treated as deterministic, and if it was unloaded, the CREATE FUNCTION statement would also not have contained the keyword. This has been fixed.</p>
<p>				Note, to fix existing user-defined functions created with DETERMINISTIC, the function will need to be recreated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560107">560107</a></td>
<td>Table names in case insensitive databases are required to be unique under case insensitive comparisons, e.g., names FOO and foo refer to the same table. In some cases, the server may have allowed multiple tables with the same name that differed only in case to be created. This has been fixed so that the server will now generate the expected error.</p>
<p>				Note, once a database contains multiple tables with the same names, all variations of the name will refer to the same (somewhat non-deterministic) instance of the table. The situation can be corrected by dropping and recreating the tables. Any existing data needs to be saved and restored as necessary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560109">560109</a></td>
<td>A reboot was required after the SQL Anywhere Monitor was installed when it was to be used as a service. This problem has now been fixed, and a reboot should no longer be required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560351">560351</a></td>
<td>Columns of type UNIQUEIDENTIFIER were being fetched in binary format in the SQL Anywhere C API (php, Perl, Python and Ruby), where as they should have been returned as strings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560678">560678</a></td>
<td>If a database&#39;s CHAR collation was a tailored UCA collation with a sorttype specified, then comparisons for catalog strings (such as table names and user names) would have incorrectly ignored the sorttype. For example, the Swedish collation UCA(locale=swe; sorttype=phonebook) considers &#39;v&#39; and &#39;w&#39; to be different characters at the primary level; however, those letters would have been considered equal during catalog string comparisons, as if the catalog collation were UCA(locale=swe) with no sorttype specified. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560902">560902</a></td>
<td>Complex queries involving proxy tables may have cause the server to crash. Some known instances of this issue have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560908">560908</a></td>
<td>When the UltraLiteJ Database Transfer tool was run on a BlackBerry device or simulator, a user may have left the password field blank assuming that the utility would use the default password &quot;dba&quot;. However, leaving the password field blank would have resulted in a failure to connect to the database. This has been corrected. If the password is now left empty, the default password will be used to connect to the specified database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560924">560924</a></td>
<td>Executing an ALTER TABLE statement could have caused unneccessary database growth.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560935">560935</a></td>
<td>Restoring a database from a backup archive using the RESTORE DATABASE command with the RENAME option could have corrupted the transaction log associated with the restored database. Translating the transaction log file using the dbtran.exe utility would have resulted in an error indicating that the log was missing a CONNECT operation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR560943">560943</a></td>
<td>The dbmlsync ActiveX component was not able to launch the dbmlsync application properly on Windows if some or all of the dbmlsync options are given by a file, and the dbmlsync command line contained the option @filename. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561067">561067</a></td>
<td>The QAnywhere Agent (qaagent) now attempts to reconnect to the message store database when the connection is dropped.</p>
<p>				Notes:</p>
<p>				- The initial database connection will be retried a given number of times if the first connection fails</p>
<p>				- Command line options for connection retries and retry delay:</p>
<p>				-cr &lt;n&gt; (n is the number of retries to connect after a failure)</p>
<p>				-cd &lt;n&gt; (n is delay, in seconds, between retries)</p>
<p>				- The defaults are 3 retries with a 10 second delay between retries</p>
<p>				- If all retries fail, the QAnywhere Agent displays an error and waits to be shut down</p>
<p>				- If a database connection fails during operation, the QAnywhere Agent will go through termination steps, including finalizing connections, terminating threads and external processes, and then re-starts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561095">561095</a></td>
<td>Incorrect results could have been obtained with queries containing IF search expressions, aggregate functions, or references to columns not specified in the GROUP BY clause. These are now diagnosed as errors.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561118">561118</a></td>
<td>The persistent store was not being properly closed on open failure (such as authentification failure) with write-at-end configuration. This could have lead to problems reconnecting to the database. The store is now closed on an open failure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561122">561122</a></td>
<td>The .NET QAManagerBase class now supports ExceptionListener delegates, which allows for applications to be notified of QAExceptions that occur while receiving messages on the background thread. </p>
<p>				The following are the relevant APIs:</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// ExceptionListener delegate definition.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;param name=&quot;ex&quot;&gt;The exception that occurred.&lt;/param&gt;</p>
<p>				/// &lt;param name=&quot;msg&quot;&gt;The message that was received, or null if the message</p>
<p>				/// could not be constructed.&lt;/param&gt;</p>
<p>				public delegate void ExceptionListener( QAException ex, QAMessage msg );</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Sets an &lt;see cref=&quot;ExceptionListener&quot;/&gt; delegate to receive QAExceptions</p>
<p>				/// when processing QAnywhere messages asynchronously.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;param name=&quot;address&quot;&gt;The address of messages.&lt;/param&gt;</p>
<p>				/// &lt;param name=&quot;listener&quot;&gt;The exception listener to register.&lt;/param&gt;</p>
<p>				public void SetExceptionListener( string address, ExceptionListener listener );</p>
<p>				In 10.0.x and later, the .NET and Java QAManagerBase class now supports exception listeners.</p>
<p>				The .NET and Java QAManagerBase class now supports a property, RECEIVER_INTERVAL, that represents the maximum wait interval (in milliseconds) in the background receiver thread for receiving messages. The default is 60000 milliseconds. As with other QAManager properties, this property must be set before calling an Open() method.</p>
<p>				The .NET and Java QAManagerBase class now supports a ReOpen() method that can be called in an ExceptionListener or MessageListener to re-establish connections to the message store database. Following is the API description.</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Reopens the QAManagerBase. This re-establishes connections to the message</p>
<p>				/// store, without releasing any resources. This method may called in a</p>
<p>				/// message or exception listener, and in that case it is not necessary to</p>
<p>				/// call Start() again. This method simply executes Close() then Open() if</p>
<p>				/// not called in a listener, and in that case Start() must be called to</p>
<p>				/// restart receiving of messages.</p>
<p>				/// &lt;/summary&gt;</p>
<p>				/// &lt;exception cref=&quot;iAnywhere.QAnywhere.Client.QAException&quot;&gt;</p>
<p>				/// if there is a problem reopening the manager.</p>
<p>				/// &lt;/exception&gt;</p>
<p>				public void ReOpen();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561127">561127</a></td>
<td>By default, the reload.sql script generated by the Unload utility (dbunload_) includes calls to a temporary procedure (sa_unload_display_table_status) to display progress messages when loading tables and creating indexes. The -qr command line option will now suppress generation of these calls.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561311">561311</a></td>
<td>Executing a MESSAGE ... IMMEDIATE statement shortly before a connection was disconnected, could, in rare timing dependent cases, have caused the application to crash, or the message callback to run after the connection was disconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561321">561321</a></td>
<td>When aggregate functions processed a NULL value for one or more rows, they generate the following warning: (SQLCODE 109) &quot;Null value eliminated in aggregate function&quot;. If the aggregate function was specified with DISTINCT for its argument, this warning was not set for execution plans that used the SingleRowGroupBy or OrderedGroupBy execution algorithms. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561378">561378</a></td>
<td>The Relay Server Outbound Enabler could have logged one of the following error messages in the log file:</p>
<p>				&quot;Failed to retrieve session[x]&quot;</p>
<p>				or</p>
<p>				&quot;Session mismatch: session[x].snum=y instead of z&quot;</p>
<p>				or</p>
<p>				&quot;Session mismatch: session[x].sfp=y instead of z&quot;.</p>
<p>				when a client unexpectedly disconnected from a Relay Server in the middle of sending a request, or receiving a response. These errors would have happened in a Relay Server farm environment with more than one Relay Servers in the farm and in particular, in the general case when using an Afaria client or a QAnywhere client running a listener. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561524">561524</a></td>
<td>Under very specific and rare memory conditions, the server could have crashed while performing a sort. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561553">561553</a></td>
<td>When a query of the form &quot;SELECT f(c) from t where t.c &lt; 5&quot;, where f() was a user-defined function and t was a proxy table, was executed the server would have attempted to push the &quot;where c &lt; 5&quot; to the remote server in order to reduce the number of rows being returned. Unfortunately, due to the fix for Engineering case 555959, this behaviour was changed such that the WHERE clause was no longer getting pushed to the remote, resulting in more rows being fetched from the remote than necessary. Note that the fix for case 555959 resulted in a performance degradation only, the resulting result set was still correct. Nevertheless, this has now been resolved and the WHERE clause will now properly be pushed to the remote server when it is safe to do so.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561554">561554</a></td>
<td>It was possible for the server to crash while processing a specific builtin function in the context of a procedure. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561596">561596</a></td>
<td>Incorrect values were being used by the SQL scanner for some hexadeciml constants. This was corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561603">561603</a></td>
<td>Synchronizing with UltraLiteJ, through the Relay Server to a MobiLink server farm with more than one server, would have caused erratic behaviour. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561616">561616</a></td>
<td>Application errors could have occurred after opening and closing more than 255 connections. Each .NET connection allocated two SQLCAs, but only one was freed when the connection was closed. The other would not have been freed until the connection was garbage collected. This has been fixed. </p>
<p>				A workaround for this problem is to call GC.Collect() regularly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561801">561801</a></td>
<td>In rare circumstances, selecting a table in the tree and clicking its Data tab, would either have caused an &quot;Invalid ORDER BY specification&quot; error or the table&#39;s rows would not be sorted by the primary key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561813">561813</a></td>
<td>The MobiLink server could have crashed when using the -xo option (&quot;specify network protocol and options for version 8 and 9 clients&quot;). Monitoring pre-10.0.0 synchronizations would also have had erratic behaviour. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561816">561816</a></td>
<td>The Relay Server State Manage (rshost) would have crashed if its configuration file was missing or invalid, or if a non-switched command line argument was used (i.e. one that was not preceded with &#39;-&#39; in Unix, or &#39;-&#39; or &#39;/&#39; in Windows). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561820">561820</a></td>
<td>The iAS ODBC driver for Oracle could have leaked memory when fetching binary data (CLOB, BLOB, NCLOB, LONG VARCHAR, and LONG RAW) from an Oracle database. This problem would only have occurred when sending the fields as part of the MobiLink download stream to the remote. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561825">561825</a></td>
<td>The PHP external environment did not expose all of the $_SERVER fields during an HTTP request, as specified by the CGI/1.1 specification. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561831">561831</a></td>
<td>The PHP external environment, when used in the HTTP context, was not sending the appropriate HTTP status code back to the client. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561839">561839</a></td>
<td>There was a possibility, although small, that a busy SQL Anywhere server may have truncated HTTP response data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR561989">561989</a></td>
<td>The Interactive SQL utility (dbisql) would have failed to launch on Windows machines when run as a console application, if a connection parameter was given and the parameter value contained a space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562026">562026</a></td>
<td>Using the UltraLiteJ Database Load utility (ULjLoad) with the -a, -i or -f options may have caused the tool to crash or produce incorrect results. The rows loaded without the -i switch would still be synced to the server. The -a switch would not load schema information from an existing database file. The -f switch would crash the tool. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562027">562027</a></td>
<td>When running on Sun SPARC systems, the MobiLink client (dbmlsync) would have complained about &quot;missing transaction log files&quot;, if there were any offline transaction log files bigger than 2GB. This problem now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562037">562037</a></td>
<td>When using the UltraLiteJ Database Load utility (uljload) with the -d option, in combination with the -a option, in order to load data into an existing database with the schema information in it, no data was loaded into the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562039">562039</a></td>
<td>The start times for synchronizations reported by the MobiLink Monitor and the MobiLink Server, when used with the -vm option, could have been incorrect if the MobiLink Server had been running for several days. Also, the output for the -vm option could have been incorrect if a request used non-blocking download acks, and phase durations reported by -vm option could have been slightly different than phase times reported by the MobiLink Monitor. These issues have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562083">562083</a></td>
<td>The MobiLink server could have silently ignored bad HTTP requests. In particular, subsequent requests received by MobiLink server B, for a session started in MobiLink server A, would have been silently ignored. The error was particularly likely to appear if an HTTP intermediary was misbehaving and sending different HTTP requests for the same session to different MobiLink servers. This has been fixed, and this case will now issue an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562171">562171</a></td>
<td>The SQL Anywhere server generates &quot;expression error&quot; messages for generic semantical problems in queries. Under certain circumstances, the server could have generated an expression error with a parameter that did not point to the correct problematic part of the query.</p>
<p>				For example, the following query:</p>
<p>				select manager_id, </p>
<p>				sum(emp_id), max(manager_id) over (order by manager_id rows between manager_id preceding and salary following) as max_mgr </p>
<p>				from employee </p>
<p>				where manager_id &gt; 5 </p>
<p>				group by manager_id, salary, max_mgr</p>
<p>				would have resulted in an error &quot;Expression error near &#39;employee.manager_id &gt; 5&#39;&quot;, rather than the more appropriate &quot;Expression error near &#39;max(employee.manager_id) over( ... ) ... as max_mgr&quot;. The real problem with this query is that the alias &#39;max_mgr&#39; cannot refer to a window aggregate expression, as the alias is part of the group by list.</p>
<p>				This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562181">562181</a></td>
<td>The UltraLite M-Business component was missing the following methods:</p>
<p>				Class SyncParms:</p>
<p>				String getPublications()</p>
<p>				setPublications( String publication_list )</p>
<p>				These methods are used to set the publications that will be used for synchronization (publications control which tables get synchronized). The publications are specified as a comma separated string. Earlier versions of the UltraLite M-Business API used a &quot;publication mask&quot; to identify the publications for synchronization. A mask was an internal number representing a set of publications. The publication mask methods</p>
<p>				were removed in version 11.0, and these methods were meant to replace them.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562216">562216</a></td>
<td>Using database files with empty filenames like &quot;.db&quot; or &quot; .db&quot; caused various problem. different kind of problems. Now, for database, dbspace, transaction log and mirror log files, the server no longer allows file names like this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562227">562227</a></td>
<td>Aggregates in sub-queries, containing outer references, were not always handled correctly. This could have resulted in:</p>
<p>				- bogus diagnostics regarding misplaced aggregation</p>
<p>				- some illegal usages were not diagnosed</p>
<p>				- incorrect results in some cases</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562235">562235</a></td>
<td>When a new column is added in the table editor, the column now defaults to allowing or prohibiting nulls, depending on the value of the PUBLIC allow_nulls_by_default option.</p>
<p>				as well,changing a column&#39;s data type to a domain (either in the table editor or in</p>
<p>				the column property sheet) now updates the column&#39;s nulls setting to allow or prohibit nulls, depending on the chosen domain&#39;s nulls setting. If the domain does not explicitly allow or prohibits nulls, then the column&#39;s nulls setting is not updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562236">562236</a></td>
<td>In some cases, client applications running on Solaris systems may have hung while communicating with the server through shared memory. Other symptoms may also have included communication errors between the client and the server. This was more likely</p>
<p>				to happen on multi-processor machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562245">562245</a></td>
<td>Using the MobiLink file-based download to transfer files on Palm devices to a VFS volume, could have failed. The error reported would have been STREAM_ERROR_INTERNAL. On some devices, VFSFileSeek returns an EOF error when seeking to the end of file, but the seek actually succeeds. A work around for this problem has been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562258">562258</a></td>
<td>On Windows 2003, and sometimes on Windows XP, it was possible to start both a personal server and network server which listened on the same TCPIP port. If this occurred, clients could unexpectedly, and unreliably, get &quot;Database server not found&quot; errors. This has been fixed As part of this change, network servers on Windows Vista and Windows 2008 no longer start a TCPIP listener on the 127.0.0.1:&lt;port&gt; address by default. Connections to this address are still accepted by the TCPIP listener which starts on the 0.0.0.0:&lt;port&gt; address.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562318">562318</a></td>
<td>A column check constraint&#39;s property sheet did not show the constraint&#39;s column, while a table check constraint&#39;s property sheet showed a &quot;Column:&quot; label with an no column name. A boolean test on the constraint type was inverted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562398">562398</a></td>
<td>Aggregates in sub-queries, containing outer references, were not always handled correctly. This could have resulted in:</p>
<p>				- bogus diagnostics regarding misplaced aggregation</p>
<p>				- some illegal usages were not diagnosed</p>
<p>				- incorrect results in some cases</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562414">562414</a></td>
<td>In exceptionally rare circumstances, the server could have hung during startup. This hang would only have occurred when the server was run on a multi-processor machine. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562456">562456</a></td>
<td>Changing a column&#39;s data type via its property sheet would have been reflected immediately in the Table editor when switching pages in the property sheet. As well, the change would not have been reverted if Cancel was clicked in the property sheet. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562534">562534</a></td>
<td>Executing a query of the form &quot;select ... into #temp ...&quot;, or a query with a stored procedure in the FROM clause, may have caused the server to crash. This would have occurred if the statement contained a CONVERT or CAST function call to a user-defined type, or a WITH( column-name &lt;user-defined type&gt;, ...) clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562535">562535</a></td>
<td>The server may have crashed when trying to build a plan containing a hash filter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562605">562605</a></td>
<td>If more than one of the dblocate filtering options (-p, -s, -ss) was used and a hostname or IP address was specified, only one was used. There was an implicit ordering and only the first of the ordering that was specified would have been used; the second and subsequent options would have been ignored. The ordering was:</p>
<p>				hostname/IP address specified on command line</p>
<p>				-p</p>
<p>				-s</p>
<p>				-ss</p>
<p>				This has been fixed. If more than one of these options is specified, they are all now applied.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562619">562619</a></td>
<td>Incompatible configurations could not have been used for connections. For example, a database created with shadow paging would not have permited a connection using a configuration that specified &quot;at end&quot; processing. This has been corrected. Now, the physical configuration from the database, not the configuration, is used when connecting to the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562627">562627</a></td>
<td>SQL Anywhere supports the &quot;UPDATE( colname )&quot; condition that can be evaluated by trigger code to determine if the value of the specified column has been modified from its current value in the row. The server was failing to evaluate the condition correctly when the column value was modified internally during statement execution. As one example, if the user statement did not modify the column value, but a BEFORE trigger did, then the condition in an AFTER trigger failed to evaluate to TRUE when it should. This has been fixed so that the server will now evaluate the condition correctly, regardless of when the column value is modified,</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562656">562656</a></td>
<td>Attempting to fetch data from a proxy table, when connected using a non-DBA user, would have failed if the remote server was one of SAJDBC or ASEJDBC. A permissions problem on the global temporary table used to hold the rows fetched from the remote server has now been fixed in newly created databases. For existing databases, log in with a DBA user and execute the following statement:</p>
<p>				grant select,insert,update,delete on dbo.omni_rset_fetch_table to PUBLIC</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562689">562689</a></td>
<td>Using the concatenation operator &#39;+&#39; with VARCHAR and UUID did not produce correct results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562826">562826</a></td>
<td>When backing up a database with no transaction log, a client-side transaction-log only backup (i.e. using the Backup utility) would have caused the server to crash. A transaction-log only server side backup (i.e. using the BACKUP statement) did not cause a crash. Although a server side backup did not cause a crash, the SQL error that was issued in this case gave no indication as to what the failure actually was, i.e., it reported &quot;Syntax error near &#39;backup option&#39;&quot;. As well as fixing the crash, a more useful SQL error code/message for the server-side case is now displayed: &quot;Error during backup/restore: No files are part of this backup&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562827">562827</a></td>
<td>Using the concatenation operator &#39;+&#39; with VARCHAR and UUID did not produce correct results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562829">562829</a></td>
<td>When querying a proxy table mapped to a remote ASE or Microsoft SQL Server table, if the remote table had a varchar(255) column, then fetching data from that column would have resulted in data truncation. This was due to an off-by-one error, which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562833">562833</a></td>
<td>When the MobiLink Server had a large number of synchronizations running concurrently (in the range of 10000), a MobiLink Monitor connected to it could have become unresponsive, and not displayed new information in a timely manner. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_66.htm#CR562838">562838</a></td>
<td>Applications using the Broadcast Repeater utility were not able to find servers running on Linux machines on a different subnet using broadcasts. The server&#39;s broadcast response was being malformed. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR562951">562951</a></td>
<td>If a database was created with the DBA user specified as &quot;dba&quot; (or Dba, DBa, DbA, dBA, dBa, dbA), unloading the database would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR562957">562957</a></td>
<td>The server may have crashed when executing a Group By Indexed strategy for a SELECT </p>
<p>				statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR562962">562962</a></td>
<td>The QAnywhere message transmission status code which formerly displayed as &quot;Local&quot;, is now displayed as &quot;Do_not_transmit&quot;. This change was made to match the documentation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR562971">562971</a></td>
<td>Attempting to export data from a SQL Anywhere database into an UltraLite database would have failed if a value being exported was null and the target column in the UltraLite database was a unique identifier column. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR562972">562972</a></td>
<td>Attempting to export data from a SQL Anywhere database into an UltraLite database could have failed if a value being exported was a Date. This would happen when the option return_date_time_as_string was set to 憃ff�. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563040">563040</a></td>
<td>If an application used the CURRENT TIMESTAMP constant in an insert into a proxy table, there was a possibility that the server would have crashed. Note that the remote server needed to be either ASE, SQL Server, Oracle or generic ODBC, for this problem to occur. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563117">563117</a></td>
<td>When the Relay Server Outbound Enabler (rsoe) was started with http instead of https (i.e. -cr https=1;... ), it would not have been able to communicate with a newly added relay server. The workaround is to restart rsoe. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563118">563118</a></td>
<td>If a communication error occurred at an early stage of the Relay Server Outbound Enabler (rsoe) attempting to establish the up channel with the Relay Server, the RSOE would have continued to fail to reconnect forever. This has been fixed. The workaround is to restart the RSOE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563132">563132</a></td>
<td>An adddition fix was needed to avoid a boundary mis-routing problem introduced by the original fix for Engineering case 561378.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563143">563143</a></td>
<td>When a QAnywhere consolidated database contained a large number of messages that satisfied a delete rule, and the MobiLink server was shut down, the server would not have actually terminated until all messages had been deleted, which could have been a very long period of time. When delete rules are executed, old messages are deleted in batches of 100 at a time until there are no more messages satisfying the delete condition. However, there was no mechanism to stop the execution of delete rules on MobiLink server shutdown. Such a mechanism has now been added for delete and archive rules.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563171">563171</a></td>
<td>The MobiLink server would have failed synchronizations from version 10.0.1 and later clients, when they connected via HTTP. The error would have been &#39;HTTP error 404&#39; (not found), and most clients would have reported this as the error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563202">563202</a></td>
<td>The Interactive SQL utility (dbisql) would have reported an internal error when attempting to use the Import Wizard to import data from a SQL Anywhere database while connected to an UltraLite database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563319">563319</a></td>
<td>When creating or upgrading a database, the server looks for a file called authenticate.sql, which is used to set the database_authentication option. The file should reside in the &lt;install_dir&gt;\scripts directory, but the server would continue to look elsewhere if it was not found there. This has been fixed so that it looks for this file only in the scripts directory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563344">563344</a></td>
<td>In certain situations, the server could have crashed while processing a hash join. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563352">563352</a></td>
<td>Prebuilt binary libraries for PHP 5.2.8 have now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563394">563394</a></td>
<td>Execution of LOAD TABLE statement will now use asynchronous IO in order to improve performance. Actual performance gains will vary depending on hardware and database configuration but tests have shown an approximate doubling of performance. Asynchronous IO is only used when accessing a local data file (not a client file, etc).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563404">563404</a></td>
<td>Synchronizations could have failed with protocol errors when some, but not all, of the parameters for a delete command in the .NET irect row API were set to DBNull.Value or null. This has been fixed so that an exception will be thrown when attempting to execute the command.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563405">563405</a></td>
<td>The MobiLink server could have crashed if a IDataReader returned by MLUploadData was not closed. If the server didn&#39;t crash it would have leaked memory. The crash would have occurred at a random time after the synchronization completed. This has been fixed.</p>
<p>				Note that enclosing the use of the IDataReader in a &#39;using&#39; block will automatically close it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563499">563499</a></td>
<td>When processing a GROUP BY statement with a specific number of aggregates, it was possible for the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563533">563533</a></td>
<td>Transactions could have failed with the error SQLSTATE_PREEMPTED being incorrectly returned to the application.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563535">563535</a></td>
<td>Worker threads are created to process the stream data from clients, and perform the database activities for each synchronization. Two sets of workers were being created, one set for pre version 10 clients, and another set for current clients (version 10 and later). Now, when the -xo switch is not specified, the MobiLink server no longer creates the threads to process the old client requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563541">563541</a></td>
<td>The server could have used an incorrect selectivity estimate for a predicate containing IS [NOT] TRUE, IS [NOT] FALSE, or IS [NOT] UNKNOWN. This could have lead to ineffecient access plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563545">563545</a></td>
<td>When executing several remote queries, if the remote queries contained NChar variables in the WHERE clause, then some of the queries may have returned an incorrect result. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563592">563592</a></td>
<td>When run on Windows systems, both the MobiLink server and the Relay Server Outbound Enabler (RSOE) could have held onto sockets for longer than necessary. This would have caused both to use up sockets faster than necessary, possibly exhausting system socket limits. With the RSOE, needless timeouts could also have occurred. This behaviour was particularly evident with non-persistent HTTP/HTTPS connections, and appeared to be very much OS and machine dependent. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563693">563693</a></td>
<td>n some cases, it was possible for the server to report an error when processing a statement that explicitly, or implicitly, used sys.dummy. The error would have been reported as SQLCODE -300: &#39;*** ERROR *** Assertion failed: 106105 (11.0.x.xxxx) &quot;Unexpected expression type dfe_FieldOrigRID while compiling&quot;&#39; </p>
<p>				For example, the following statement could have caused this behaviour:</p>
<p>				select TE1.xidx</p>
<p>				from (select * from sys.dummy) as D, TE1</p>
<p>				where exists ( select * from TE2 where TE2.x = TE1.xidx and TE2.xidx &lt;= 1 )</p>
<p>				For the incorrect behaviour to have occurred, the statement must have had a reference (explicit or implicit) to sys.dummy, where the dummy_col field was not referenced, and there must have been an exists join optimization used, where a generated distinct on rowids was needed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563736">563736</a></td>
<td>If an ODBC DSN explicitly specified an isolation level, and that DSN was then used within the Interactive SQL utility (dbisql), then the isolation level specification would have been ignored. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563832">563832</a></td>
<td>The Windows makefiles for the PerformanceFetch, PerformanceInsert, and PerformanceTransaction SQL Anywhere samples could not have been used to build the sample applications, as they referenced directories that no longer existed in the version 11.0 installation. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563835">563835</a></td>
<td>The server uses column statistics to aid with query optimization. The statistics are stored in the database catalog and are loaded into memory on demand, and unloaded when not used for a period of time. Under very rare circumstances, when running on multi processor systems, it was possible for the server to think that no statistics existed for a specific column. The problem was likely to have been self correcting over time and there were no correctness issues. However, it was possible that the absence of column statistics may have caused some queries to run inefficiently. This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563839">563839</a></td>
<td>The SQL Passthrough feature was originally written as a plugin to the MobiLink server in Java. A number of issues were found, including using extra database connections, which needed to be addressed. The feature has now been re-written as a core part of the MobiLink server, so it no longer requires a Java VM on startup. </p>
<p>				When SQL Passthrough was being used, ie. when there was at least one row in the the ml_passthrough_script table, the MobiLink server could have used twice the number of consolidated database connections than necessary, (ie. up to twice the -w value). When creating these extra connections, the MobiLink server would, during a synchronization, make another consolidated database connection, perform some work, disconnect that connection, then resume the synchronization. In other words, penalizing each synchronization with the time/cost of connecting and disconnecting to the consolidated database. Besides the performance and database connection penalties, these connects/disconnects could also have made the MobiLink server reach OS socket limits faster, potentially causing failures.</p>
<p>				Most MobiLink clients (ie. dbmlsync, dbtools sync interface, dbmlsync ActiveX integration component, and all UltraLite runtimes -- except UltraLiteJ, which doesn&#39;t support SQL Passthrough) have been updated as part of this fix. This change will cause newer clients to fail if run against an the 11.0.1 GA server. Thus MobiLink clients of version 11.0.1 2156 or later will require a MobiLink server of version 11.0.1 2156 or later.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563844">563844</a></td>
<td>The MobiLink client (dbmlsync) would have occationally reported the error:</p>
<p>				Failed writing remote id file to &#39;&lt;filename&gt;&#39;</p>
<p>				Despite the error, synchronizations would have continued successfully, and the remote id file would have appeared on the disk in good order. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR563848">563848</a></td>
<td>If an ODBC application called SQLColAttribute() on a long varchar, long nvarchar or long binary column, with an attribute value of SQL_DESC_DISPLAY_SIZE, then the ODBC driver would have incorrectly returned the value 65535. This problem has been fixed and the driver now returns the value 2147483647.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564010">564010</a></td>
<td>The server may have crashed if a floating point value was converted to a string, and then subsequently cast to a string with a too small size. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564025">564025</a></td>
<td>Messages generated by the MESSAGE ... TO EVENT LOG statement were not printed to the system event log when the server was started with the -qi switch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564046">564046</a></td>
<td>The changes for Engineering case 559413 introduced a problem where attempting to cancel a Java call could have caused the Jave VM to stop responding. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564066">564066</a></td>
<td>When an HTTP connection that had made an external environment call was closed at the exact same time that the external environment exited, there was a chance that the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564277">564277</a></td>
<td>If a simple statement was processed and bypassed the optimizer, it was possible for the server to choose an index that was less efficient than the best one, leading to poor performance. This problem would have occurred if the WHERE clause contained equality and range predicates. This has been fixed.</p>
<p>				A workaround can be achieved using the following command line switch on the server start line or the &quot;OPTIONS(FORCE OPTIMIZATION)&quot; in the query text.</p>
<p>				-hW AllowBypassCosted</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564304">564304</a></td>
<td>The server may have crashed when simple SELECT statements are executed against the utility database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564435">564435</a></td>
<td>In an ADO/OLE DB application, when a UNIQUEIDENTIFIER (or GUID) was used as a parameter in a query, an error message like &quot;Cannot convert 0x to a uniqueidentifier&quot; may have resulted, or the query may simply have failed to return any results. This problem has been fixed. </p>
<p>				Sample schema:</p>
<p>				create table uuidtable( pkey int, uuid uniqueidentifier, stringform uniqueidentifierstr );</p>
<p>				Sample query:</p>
<p>				select * from uuidtable where uuid = ?</p>
<p>				The following .NET/OLE DB example shows typical uniqueidentifier parameter binding:</p>
<p>				OleDbCommand cmd = new OleDbCommand(txtSQLStatement.Text.Trim(), _conn);</p>
<p>				OleDbParameter param1 = new OleDbParameter();</p>
<p>				param1.ParameterName = &quot;@p1&quot;;</p>
<p>				param1.DbType = System.Data.DbType.Guid;</p>
<p>				cmd.Parameters.Add(param1);</p>
<p>				cmd.Parameters[0].Value = new Guid(&quot;41dfe9f9-db91-11d2-8c43-006008d26a6f&quot;);</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564472">564472</a></td>
<td>The Interactive SQL utility (dbisql) could have reported an internal error if, when connected to an UltraLite database, the text completer was opened in a SELECT statement and the caret was immediately after a period. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564475">564475</a></td>
<td>When in the new Watch dialog, when selecting &#39;user&#39; or &#39;sync&#39; as a property to set a condition for, if &#39;Add&#39; was pressed, nothing would have happened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564479">564479</a></td>
<td>When run on BlackBerry devices, the download of a large download_delete_cursor of a table with many columns, UltraLiteJ could have reported an out of memory error when the BlackBerry ran out of object handles. This would have occurred even when many of the deletes were to be ignored by the client. The handles used by a download are a factor of the number of rows times the number of columns in each row. This has been fixed. UltraLiteJ normally applies the download after all rows have been received, however, now it immediately rejects deletes for non-existant client rows, and reduces significantly the handles used by all other download deletes. In an ideal situation, the download_delete_cursor script would reduce the number of rows sent by not sending any download deletes if the last download timestamp was the newer value, or if the row corresponding to the delete was never on the client (creation date greater than last download timestamp).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564639">564639</a></td>
<td>When MobiLink servers with QAnywhere messaging were set up in a server farm, push notifications could have stopped working in some circumstances. In particular, if the MobiLink server(s) handling synchronization requests from QAnywhere clients were different from the server that initiated the push notification (as would have been the case if the notifications were the result of outbound JMS messages in a server running a JMS connector), only the first push notification would have been sent, and no further notifications would have been sent. This has now been fixed.</p>
<p>				It should be noted that, in a MobiLink server farm deployment, there could be a latency of at most the automatic rules evaluation period to send a push notification to a client as a result of an outbound message to that client. This is due to scalabilty factors in a situation where there is a high volume of outbound messages being processed by the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564677">564677</a></td>
<td>A failed COMMENT ON PROCEDURE statement could have prevented the procedure from being dropped. This has been fixed. </p>
<p>				Note, a workaround is to stop and restart the database before attempting to drop the procedure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564679">564679</a></td>
<td>An INPUT ststement, with multiple references to the same host variable, could have been handled incorrectly when the leftmost reference was the host variable by itself in the VALUES list, and another reference occurred in an expression that was more complicated than just the host variable by itself.</p>
<p>				For example,</p>
<p>				INPUT INTO tab( pk, col1 ) VALUES( :hv, 100 - :hv )</p>
<p>				This has been fixed so that the final substitution for non-leftmost host-variable references is delayed so that the type of the first reference can be established.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564701">564701</a></td>
<td>Executing a CREATE TABLE IF NOT EXISTS ... statement would have failed if the table existed, but had not yet been used since the database was started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564828">564828</a></td>
<td>Following a cursor OPEN for a simple select statement that bypasses optimization, the SQLCOUNT value could have been incorrectly set to 0, when the number of rows was to be exact (ie. Row_counts was &#39;on&#39;), and the number of rows was estimated to be 0 . This has been fixed so that the correct setting is now -1 in these cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564829">564829</a></td>
<td>When the MobiLink server was listening for HTTP and/or HTTPS requests, and a load balancer or any other utility (eg. the RSOE) performed a simple TCP/IP connect, then an immediate close without sending any bytes, the MobiLink server would have taken four minutes to time out the socket. If too many such connections happened in a short time, the MobiLink server could have run out of sockets earlier than necessary. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564857">564857</a></td>
<td>In very rare circumstances, SQL Anywhere .NET provider could have crashed the work process in IIS. This problem has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR564866">564866</a></td>
<td>An INPUT ststement, with multiple references to the same host variable, could have been handled incorrectly when the leftmost reference was the host variable by itself in the VALUES list, and another reference occurred in an expression that was more complicated than just the host variable by itself.</p>
<p>				For example,</p>
<p>				INPUT INTO tab( pk, col1 ) VALUES( :hv, 100 - :hv )</p>
<p>				This has been fixed so that the final substitution for non-leftmost host-variable references is delayed so that the type of the first reference can be established.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565050">565050</a></td>
<td>The Import wizard could have crashed if the &quot;Next&quot; button, on the page which asks for a destination table name, was clicked before the page has initialized. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565054">565054</a></td>
<td>Calling the ODBC functiom SQLColAttribute( ..., SQL_DESC_BASE_COLUMN_NAME, ... ) could have incorrectly returned the correlation name, instead of the base column name. This has been fixed so that the base column name is returned. If there is no base column, the column alias is returned.</p>
<p>				Note, this fix requires both an updated ODBC driver and server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565061">565061</a></td>
<td>Dbisqlc would have reported an error, and then crashed, if there was a version mismatch with the language DLL (e.g., dblgen11.dll). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565097">565097</a></td>
<td>The metadata returned for a query with a UNION operator, could have been incorrect. This has now been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565102">565102</a></td>
<td>If an application executed a PHP external environment procedure, and the PHP procedure subsequently called exit, then the server would have taken up to 5 seconds to return control to the application, and would then have displayed a dropped connection message in the console. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565104">565104</a></td>
<td>The php process may have crashed after completing a php external environment call. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565110">565110</a></td>
<td>When binding a column in ODBC, the column type, a buffer and a length are specified. For static types (int, long, double, time, etc) the ODBC driver ignores the length specified because the length is constant. The ODBC driver should have been treating SQL_GUID columns as static as well, but was incorrectly respecting the length specified, which sometimes resulted in truncated values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565232">565232</a></td>
<td>In very rare circumstances, if a complex view which cannot be unflattened (e.g., a grouped view) was used multiple times in the same statement, the optimizer may have generated an access plan which computes an incorrect result set. One of the conditions for this to have occurred was for a predicate of the form &quot; V.X theta [ANY|ALL] ( select aggregate(e) from V as V1 where ... )&quot; to be present in one of the query blocks of the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565244">565244</a></td>
<td>The SQL Anywhere HTTP server will generate error responses that may be classified into two categories: System and User error messages. System error messages are generated for the following conditions: protocol errors, time-out and cancel. User error messages are generally caused by a SQL error. It is recommended that the application handle SQL errors within an EXCEPTION clause and render application specific error responses. By default a User error message is output in the body of the response as HTML or plain-text when the SERVICE is configured as TYPE &#39;HTML&#39; or &#39;RAW&#39; respectively. User error messages may have been returned using chunk-mode transfer encoding, while keeping the connection alive. In the event that the web service encountered an error when outputting its response, or was explicitly canceled by dropping its database connection, the response message was prematurely truncated. A change has been made to make the default behaviour more consistent, SQL errors explicitly handled by the application are not affected by these changes. By default System and User error messages:</p>
<p>				- do not use chunk mode transfer encoding</p>
<p>				- explicitly set &#39;Connection: close&#39; response header</p>
<p>				- shutdown the HTTP connection once the error message is sent</p>
<p>				Any pending (pipelined) requests following the request encountering the error are terminated. Also, an error response is guaranteed to close the HTTP connection. Interrupting a response (already underway such that the response headers have already been sent) will truncate the output and close the HTTP connection. User error messages that are explicitly caught by the EXCEPTION clause may also CALL SA_SET_HTTP_HEADER(&#39;Connection&#39;, &#39;close&#39;) prior to issuing the error page to force the HTTP connection to close after the response has been sent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565255">565255</a></td>
<td>A multi-threaded embedded SQL application could have crashed if db_fini was called with the last active SQLCA at the same time as db_init was called with another SQLCA. The crash was very timing dependent. A race condition has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565257">565257</a></td>
<td>In rare situations, access to a mirrored database could be blocked, making the mirroring servers appear to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565283">565283</a></td>
<td>When evaluating predicates outside of DML statements (for example, in SET or IF statements in procedures, triggers, events, or batches), the server could have improperly treated UNKNOWN as FALSE. For example, the following statement should set @str2 to NULL, but it was incorrectly being set to FALSE:</p>
<p>				SET @str2 = if NULL like &#39;a&#39; then &#39;TRUE&#39; else &#39;FALSE&#39; endif;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565286">565286</a></td>
<td>The server could have released locks on rows prematurely. Data corruption, crashes, unexplained deadlocks and incorrect query results were all possible. For this to have occurred though, there must have been a significant amount of contention for a particular row. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565441">565441</a></td>
<td>Changes have been made to the MobiLink client to accomodate the changes made to the MobiLink server for Engineering case 563839. Therefore, running the 11.0.1 GA MobiLink server with SQL passthrough enabled (i.e. rows have been added to the ml_passthrough_script table), with 11.0.1 MobiLink clients (dbmlsync) from an EBF will cause synchronizations to fail with the message:</p>
<p>				This client is newer than your MobiLink server. You must upgrade your MobiLink server before you can synchronize.</p>
<p>				In order to resolve this problem, the MobiLink server must be upgraded as well. As a temporary work around, SQL Passthrough can be disabled by deleting all the rows in the ml_passthrough_script table and restarting the Mobilink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565447">565447</a></td>
<td>Index corruption was possible if an index contained many (more than 64,000) consecutive entries that differed by the same constant amount. A check to ensure that the count value does not overflow when merging pages was missed. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565474">565474</a></td>
<td>An HTTP client procedure may have hung when receiving chunk mode encoded data. For this problem to have occurred, the client needed to identify itself as an HTTP/1.1 version client (by default it identifies itself as HTTP/1.0). This may be done in the following ways:</p>
<p>				SET &#39;HTTP(VER=1.1)&#39;</p>
<p>				TYPE &#39;HTTP:POST&#39; and length of the values for input parameter equal or exceed 8192 bytes</p>
<p>				TYPE &#39;HTTP:POST&#39; SET &#39;HTTP(CH=ON)&#39;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565624">565624</a></td>
<td>Under certain non-deterministic conditions, a server-side backup could have blocked other tasks, such as remote procedure calls, HTTP requests, and external environments from running. As well, in certain very rare and timing sensitive conditions, it is also possible that a backup could have hung indefinitely while starting. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565651">565651</a></td>
<td>If an application executed a query like &quot;select ... for t where c = v&#39;, where c was a char or varchar column, v was as variable of type nchar or nvarchar, and t was a proxy table to a remote table in Microsoft SQL Server, then the query would have failed with SQL Server reporting the error &quot;The data types varchar and ntext are incompatible in the equal to operator.&quot; This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565663">565663</a></td>
<td>The German (DE), French (FR), and Chinese (ZH) language help files were missing for Sybase Central 6.0.0. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565664">565664</a></td>
<td>When run on machines with only one network adapter, checking the box &quot;Only show local servers&quot; in the &quot;Find Servers&quot; dialog would not have displayed local servers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565667">565667</a></td>
<td>The methods QAManagerBase.SetMessageListener and QAManagerBase.SetExceptionListener would have throw a QAException with error code COMMON_NOT_OPEN_ERROR, when called before an Open() call. This has been fixed. Now, SetMessageListener and SetExceptionListener can be called any time after the creation of a QAManagerBase object, as in earlier versions of QAnywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565678">565678</a></td>
<td>When the server was started with the -fips command line option (&#39;All strong encyption done using FIPS approved modules&#39;), attempting to create an unencrypted database would have failed with the error &quot;The simple algorithm is not available in FIPS mode&quot;. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565835">565835</a></td>
<td>The server may have crashed if the procedure debugger&#39;s connection, and the debugged connection, stopped at the same time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565837">565837</a></td>
<td>When using the INPUT statement with dbisqlc, column inputs may have failed if the length of the input record exceeded the capacity of the input buffer. This failure could have been signalled by a conversion error, or it could have gone undetected (the remaining columns having been truncated or set to the null value. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565839">565839</a></td>
<td>If an application used one of the connection scoped external environments (i.e. PHP, PERL or one of the external C environments) and the SA server was running on a non-Windows platform, then there was a chance the external environment process would not have gone away once the application disconnected. This problem was introduced by the changes made for Engineering case 559372, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565844">565844</a></td>
<td>When using MobiLink servers in a server farm (by specifying the -ss command line option), servers could have crashed and/or unexpectedly caused failed synchronizations. The problem was more noticeable in environments with poor network quality or where retries after synchronization failures occurred very quickly after the original synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565874">565874</a></td>
<td>If an alias or correlation name was entered in the Query Editor, and then the &quot;OK&quot; button was clicked while the editor for the alias or correlation name was still open, the editor&#39;s value could have been ignored. This has been fixed.</p>
<p>				Note, a workaround is to press ENTER after typing in the alias/correlation name, and then click the &quot;OK&quot; button.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565880">565880</a></td>
<td>If an application used either the C_ODBC32 or C_ODBC64 external environments, then the server may have reported a connection dropped error when the application disconnected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR565891">565891</a></td>
<td>When run on Unix systems, the server would have crashed or hang if a client application attempted to connect and disconnect in a tight loop. Another symptom may have been that the client would have received the following error:</p>
<p>				-832 Connection Error: Found server but communication error occurred.</p>
<p>				For this to have occurred, the connection must have been via shared memory, the application must have previously connected and disconnected successfully so as to unload the client libraries (ODBC, DBLIB, or DBCAPI), and the time between the last disconnect and the new connect was within 10ms. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566033">566033</a></td>
<td>When running the SQL Anywhere Deployment wizard, the MSM installer type option actually created an MSI installer type. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566043">566043</a></td>
<td>When working with .NET data sources and the OLEDB adapter using Visual Studio, the Configure Dataset with Wizard dialog may have resulted in &quot;Dynamic SQL generation is not supported against a SelectCommand that does not return any base table information.&quot; or theTableAdapter Query Configuration Wizard dialog may have resulted in &quot;Failed to get schema for this query&quot;. The SQL Anywhere OLE DB provider has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566046">566046</a></td>
<td>If the maximum value in an autoincrement column after performing a LOAD TABLE statement was a negative value, the SYSTABCOL.max_identity value for that column would have been set to a negative value. This would have caused subsequent inserts into the table, which did not provide a value for the autoincrement column, to generate errors. This situation could have arisen when rebuilding a database having a table with an autoincrement column and only negative values in the column. Note that the use of negative values with autoincrement columns is discouraged. This has been fixed so that the max_identity value in this situation will now be set to zero after the LOAD TABLE statement completes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566058">566058</a></td>
<td>Under very rare circumstances, a query plan using a hash join in an EXISTS subquery could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566071">566071</a></td>
<td>If an application used either the C_ODBC32 or C_ODBC64 external environments, then returning result sets from the external environment could have taken a long time, and resulted in thread deadlock errors due to the fact that the C_ODBC external environments were not turning autocommit off. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566165">566165</a></td>
<td>In very rare circumstances, the server could have crashed if the procedure debugger run a &#39;step into&#39; or &#39;step over&#39; request at the end of a procedure or trigger. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566207">566207</a></td>
<td>The QAnywhere plug-in for Sybase Central now supports the connection retry command line options for the Agent (see Engineering case 561067).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566372">566372</a></td>
<td>Data inserted into a compressed column may have caused a decompression error when retrieved. This would only have occurred if the data was already compressed so that compression would result in increased data length, the column was created with the NO INDEX clause, and the data length was very close to a multiple of 8 times the database page size. An error in calculating the maximum possible length for the compressed data has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566450">566450</a></td>
<td>When executing queries involving index scans, the boundary values for the scans could, in some cases, have been evaluated incorrectly causing the queries to fail to return any results. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566651">566651</a></td>
<td>A SERVICE may invoke a procedure that explicitly sets the &#39;Connection&#39; and &#39;Content-Length&#39; HTTP response headers using the SA_SET_HTTP_HEADER system procedure. The setting of the &#39;Content-Length&#39; was ignored, and the setting of &#39;Connection:close&#39; implicitly disabled chunked-mode transfer encoding. Changes have been made to provide greater control over SQLAnywhere HTTP server responses. The following is a summary of the new behaviour:</p>
<p>				Client is HTTP/1.0:</p>
<p>				The server does not support Keep-Alive and Chunk-mode operation for this HTTP version.</p>
<p>				By default the server never sets the &#39;Transfer-Encoding&#39; header and always sets &#39;Connection: close&#39; header, shutting down the connection once the response has been sent. A SERVICE procedure may set the &#39;Content-Length&#39; header but setting the &#39;Connection&#39; header is ignored.</p>
<p>				Client is HTTP/1.1:</p>
<p>				By default the server responses use chunked-mode transfer encoding and automatically set the &#39;Transfer-Encoding: chunked&#39; header. If the SERVICE procedure explicitly sets a &#39;Content-Length&#39; header to some value, then the &#39;Content-Length&#39; header is sent in place of the &#39;Transfer-Encoding&#39; header and the response body is not chunk-mode encoded. Note: It is an error for a SERVICE procedure to set both a &#39;Content-Length&#39; and &#39;Transfer-Encoding&#39; header.</p>
<p>				The server will assume &#39;Connection: keep-alive&#39; if the client does not send a &#39;Connection&#39; request header. If a client explicitly sends a &#39;Connection: close&#39; request header and/or the SERVER procedure explicitly sets &#39;Connection: close&#39; the server will shutdown the connection once the response has been sent.</p>
<p>				Setting Content-Length</p>
<p>				In most cases data will need to be buffered in order to calculate the Content-Length. Therefore, it is recommended to use chunk-mode transfer encoding whenever possible. If &#39;Content-Length&#39; must be set, then care must be taken to ensure that the result-set is not character set translated when the response is composed. It is recommended that the &#39;CharsetConversion&#39; http option is set to off when returning textual data. Also, setting &#39;Content-Length&#39; should only be done within a TYPE &#39;RAW&#39; SERVICE since some services (i.e. &#39;HTML&#39;, &#39;JSON&#39;) add content to the response.</p>
<p>				A check has been added to ensure that the actual length of the response matches the value of &#39;Content-Length&#39; header. If the values do not match then the server will shutdown the connection, once the response has been sent, regardless of whether or not a &#39;Connection: keep-alive&#39; response header has been sent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566673">566673</a></td>
<td>Exporting data from a SQL Anywhere database to a MySQL table could have failed if the Interactive SQL utility (dbisql) was asked to create a table for the data, and the data contained any of the following SQL Anywhere types: TINYINT, UNSIGNED SMALLINT, UNSIGNED INT, UNSIGNED BIGINT, or TIMESTAMP. The mapping of data types between SA and MySQL was incorrect, this has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566685">566685</a></td>
<td>If a simple statement was processed by the server and bypassed the query optimizer, it was possible for the server to choose an inefficient plan if the statement contained a specific form of contradiction. For example, the following statement could have generated a plan that would have read all rows from TRange:</p>
<p>				select * from TRange where x1 = 3 and x2 between 2 and 1</p>
<p>				A more efficient plan would recognize that the BETWEEN predicate is never true (2 &gt; 1), and uses a prefilter to avoid fetching any rows from TRange. This has been fixed so that the more efficient plan is selected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566688">566688</a></td>
<td>Prebuilt binary libraries for PHP 5.2.9 have now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566689">566689</a></td>
<td>Importing a table into an UltraLite database may have failed if it contained NCHAR or NVARCHAR columns. This has been fixed so that the importer converts NCHAR and NVARCHAR columns into VARCHAR columns. The operation may still fail if the UltraLite database cannot represent the characters being imported, so this is guaranteed to work only if the UltraLite database is created with a UTF8BIN collation sequence.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566693">566693</a></td>
<td>On certain processors other than x86 and x86_64 (64 bit HP-UX for example), the server may have crashed in extremely rare conditions when using a connection number to get connection information. Examples of getting this type of connection information include getting a connection property for another user, or calling sa_conn_info. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566703">566703</a></td>
<td>The PHP external environment was passing strings as LONG VARCHAR, which was causing character set conversion between the server and the PHP process. This would have corrupted binary data. This has been corrected so that all strings are now passed as LONG BINARY, which means that no character set conversion will be done.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566705">566705</a></td>
<td>In the PHP external environment, calling phpinfo() would have showed no useful information for the sqlanywhere_extenv module. This has been fixed. Now, server version information, as well as the names of the server, database, and user are displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566711">566711</a></td>
<td>The PHP external environment process would have crashed if the system procedures sa_http_php_* were called from the Interactive SQL utility, or anywhere outside of an HTTP server request. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566805">566805</a></td>
<td>Creating a string object shorter than, but within roughly a database page size of, the 2^31-1 (2GB) upper length limit could have incorrectly resulted in the SQL error MAX_STRING_LENGTH_EXCEEDED. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566828">566828</a></td>
<td>Errors that occurred while running a SQL passthrough script in schema-diffing mode were not being marked as critical, which could have caused the database schema to become corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566830">566830</a></td>
<td>It was not possible to export NUMERIC values to a new MySQL table if the precision of the source column was greater than 15. This has been fixed. </p>
<p>				Note that exporting data into an existing table did not have this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_67.htm#CR566957">566957</a></td>
<td>The server may have crashed when executing a DML statement that modified tables in an additional dbspace while a lazy checkpoint was in progress. This problem was introduced by the changes for Engineering case 547392, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR566970">566970</a></td>
<td>When rebuilding a QAnywhere database, the reload of the ml_qa_status_history table could have failed with the error: &quot;No primary key value for foreign key&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR566986">566986</a></td>
<td>The version of OpenSSL that is used in the RSA implementation on the Mac has been upgraded to version 0.9.8k. This was done because of a bug in OpenSSL, described here:</p>
<p>				http://www.openssl.org/news/secadv_20090325.txt. Note that only the third bug listed affected SQL Anywhere, and only on 64-bit Mac.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567017">567017</a></td>
<td>When using the SQL Anywhere Support utility to check for updates (dbsupport -iu), it may have returned &quot;Error checking for updates. Please try again later.&quot; Subsequent retries by the same dbsupport instance would also have failed. A counter variable was not being reset. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567157">567157</a></td>
<td>In very rare circumstances, the server could have crashed during startup while recovering a database that used a mirror transaction log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567163">567163</a></td>
<td>If an application attempted to start an external environment on a server that was busy stopping or starting external environments for other connections, there was a chance the server would have returned a thread deadlock or &#39;main communication thread not found&#39; error. There was also a chance, although small, that the server would have crashed in this situation. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567222">567222</a></td>
<td>Previous releases of QAnywhere relied on timestamp based synchronizations for message transmission. As a result, modifying the system time on a device could have interfered with the QAnywhere synchronization scheme, and in some cases caused QAnywhere to cease message transmission. This synchronization scheme has now been replaced with a progress counter based scheme in order to improve the reliability of synchronizations by removing the dependency on the device system clock.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567328">567328</a></td>
<td>When using an UltraLiteJ database with auto checkpointing and persistent indexes, if two connections were open on separate threads it was possible that changes committed to the database by the second connection may have been lost, and space in the database lost. This would have occurred when one connection was synchronizing (Connection.synchronize()) and the second connection was commiting changes to the database (inserts, updates and/or deletes), and the application terminated abnormally (power lost, crash). If the Connection.synchronize() call completed successfully, or with an ULjException, changes would not have been lost. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567336">567336</a></td>
<td>If response headers were added, modified or deleted by the external environment, the (calling) SQL procedure had no way of inspecting and identifying changes to the response headers. This deficiency has been corrected by adding the functions HTTP_RESPONSE_HEADER( header_name ) and NEXT_HTTP_RESPONSE_HEADER( header_name ) for value retrieval and iteration of response headers. Response headers may be modified directly within a SERVICE procedure by calling SA_SET_HTTP_HEADER() or may be modified through an external environment process such as a PHP call through via SA_HTTP_PHP_PAGE. </p>
<p>				The usage semantics of HTTP_RESPONSE_HEADER() and NEXT_HTTP_RESPONS_HEADER() are the same as for HTTP_HEADER() and NEXT_HTTP_HEADER() respectively, which are used to inspect the request HTTP headers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567347">567347</a></td>
<td>If an application connected to a server via Open Client, using a newer version of Open Client 15, then it was likely that cancelling a request would have given a protocol error on the next request to the server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567361">567361</a></td>
<td>On some non-Windows platforms, pressing CTRL+C when the Interactive SQL utility (dbisql) was running in console mode could have caused spurious error messages which reported an unexpected signal 11, or &quot;SIGSEV&quot; error. This has been fixed so that these messages no longer appear when CTRL+C is pressed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567409">567409</a></td>
<td>If a CREATE TABLE statement was executed using EXECUTE IMMEDIATE and a declared temporary table with the same name already existed, an error was not given. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567417">567417</a></td>
<td>The DBLib client library could have crashed if there was a language resource problem, such as a missing language dll or .res file. In order for this crash to have occurred, db_init must have been called at least twice, and then another dblib call must have been made (such as db_string_connect or EXEC SQL CONNECT). This has been fixed, and db_init will now return 0 on language resource problems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567427">567427</a></td>
<td>If a transaction running under snapshot isolation attempted to update or delete a row that had been deleted and committed by another transaction, the update or delete would have failed with the wrong error. Typically the error would have been &quot;Unable to find in index &#39;t&#39; for table &#39;t&#39; (SQLCODE: -189; SQLSTATE: WI005)&quot;, or it could have failed silently. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567541">567541</a></td>
<td>As a result of changes made for Engineering case 545640, SQLAnywhere DISH services were not sending HTTP response headers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567543">567543</a></td>
<td>If the WHERE clause of a query block contained many predicates using host variables, it was possible that the PREPARE or OPEN times would have been unnecessarily long. The server was not recognizing the two expressions with host variables were the same. his has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567556">567556</a></td>
<td>If a SQL Remote user was copied to the clipboard and the Message Types tab was selected, and then right-clicked within the right pane, a Paste menu item would have been shown. This menu item would never have been enabled after a SQL Remote message was copied to the clipboard. This has been fixed so that the menu item is no longer present.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567570">567570</a></td>
<td>It was possible for the server to enter a loop while processing some statements that included an implicit or explicit use of the table SYS.DUMMY. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567590">567590</a></td>
<td>The SQL Anywhere Monitor was setting redundant HTTP headers which would have caused the browser-based interface to function incorrectly when using SSL on Internet Explorer. This has been fixed by removing the redundant HTTP headers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567699">567699</a></td>
<td>There were two scenarios where non-collected metrics could have been displayed by the SQL Anywhere Monitor. The two scenarios were:</p>
<p>				- If a user was viewing a tab with only one metric on it, went to administration and disabled collection of that metric, and went back to the monitoring tab, that metric&#39;s graph would still have been displayed, even though the tab itself was hidden.</p>
<p>				- If a user disabled collection of a metric that was displayed on a tab with several other metrics, the disabled metric would still have been displayed on the tab along with all the other metrics.</p>
<p>				These have both been fixed so that only the collected metrics are now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567754">567754</a></td>
<td>When providing a list of DER-encoded trusted root certificates to a MobiLink client for TLS synchronization, the client only accepted the first item in the list and ignored the rest. There was no problem if the list of certificates was PEM-encoded. This has been fixed.</p>
<p>				Note that this problem affected all MobiLink clients except UltraLiteJ.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567778">567778</a></td>
<td>Some of the files required to enable Windows Accessibility features were being installed in the wrong directory. This could have resulted in the Administration tools (eg Sybase Central)not running. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567790">567790</a></td>
<td>Incorrect results, including bogus error messages, could have been obtained when aliases (from the SELECT list) were referenced in a GROUP BY clause. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567794">567794</a></td>
<td>If the MobiLink Server was connected to an Oracle consolidated database, and an event was defined that called a stored procedure within a package, it was possible for a crash to have occurred in the iAnywhere Oracle ODBC Driver, which would in turn crash the MobiLink Server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567800">567800</a></td>
<td>If an alert email was sent that contained non-ASCII characters (i.e. multi-byte characters), this email would have arrived mangled if the machine running the SQL Anywhere Monitor was using a single-byte character set. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567906">567906</a></td>
<td>The MobiLink server could have crashed when multiple -x options were specified on the command line, with at least one being HTTP and another being HTTPS. This could have happened, for example, when a VPN connection was created or dropped in the middle of a non-persistent HTTP/HTTPS synchronization, and the network intermediaries were set up such that one path resulted in HTTP and the other resulted in HTTPS. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567932">567932</a></td>
<td>Client-side certificates can now be used to authenticate MobiLink clients to third party server and proxies. The following two synchronization parameters have been added to provide support for this feature:</p>
<p>				identity - Indicates the file that contains the client&#39;s identity. An identity consists of the client certificate, the corresponding private key, and, optionally, the certificates of the intermediary certificate authorities. This parameter is equivalent to MobiLink server&#39;s &#39;identity&#39; parameter.</p>
<p>				identity_password - An optional parameter that specifies the password used to encrypt the private key found in the identity file. It is only required if the private key in the identity file is encrypted. This parameter is equivalent to MobiLink server&#39;s &#39;identity_password&#39; parameter.</p>
<p>				Note that MobiLink clients cannot authenticate directly to the MobiLink server using client-side certificates. They can only be used to authenticate to third-party servers and proxies which have been configured to accept client-side certificate authentication and are sitting between the client and MobiLink server.</p>
<p>				Also note, this feature is not supported in UltraLiteJ, and because of ECC compatibility issues between different versions of Certicom&#39;s Security Builder libraries, it is also not supported when using ECC TLS. It is only supported for RSA TLS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567942">567942</a></td>
<td>If a query was processed using a parallel execution plan, it was possible for the statement to exceed the setting of the Max_temp_space option by a factor of the number of branches in the plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR567944">567944</a></td>
<td>Incorrect results, including bogus error messages, could have been obtained when aliases (from the SELECT list) were referenced in a GROUP BY clause. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568091">568091</a></td>
<td>Under rare circumstances, if starting a database that truncates the transaction log at a checkpoint (i.e., WITH TRUNCATE AT CHECKPOINT clause to the START DATABASE statement or on a server started with the -m command line option) failed, the server may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568216">568216</a></td>
<td>On Advanced Edition servers, the value of the ServerEdition server property was incorrect. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568217">568217</a></td>
<td>On Mac OS X systems, an archive restore could have failed with an &quot;insufficient space&quot; error, even when enough space to complete the restore was available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568219">568219</a></td>
<td>If the amount of available physical memory during an archive restore was low (the threshold is around 20 MB), but this was not the case during the archive backup, then the operation would have failed with an &quot;insufficient memory&quot; error, regardless of the amount of available swap space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568233">568233</a></td>
<td>If a query had multiple uses of a function such as now() and one of the uses was within a COALESCE expression, then it was possible for the query to unexpectedly give different values for the two uses. For example, the following query could return different values for time1 and time2:</p>
<p>				create temporary function T_W( x int )</p>
<p>				returns timestamp</p>
<p>				begin</p>
<p>				waitfor delay &#39;00:00:00.500&#39;;</p>
<p>				return NULL;</p>
<p>				end</p>
<p>				select coalesce( T_W(0), now() ) time1, coalesce( T_W(1), now() ) time2</p>
<p>				In addition to now(), the following expressions also had this behaviour:</p>
<p>				getdate()</p>
<p>				today()</p>
<p>				current date</p>
<p>				current time</p>
<p>				current timestamp</p>
<p>				current utc timestamp</p>
<p>				In addition to coalesce() expressions, the same problem could occur with the now() or related function used within these expressions:</p>
<p>				ISNULL()</p>
<p>				IFNULL()</p>
<p>				IF</p>
<p>				CASE</p>
<p>				ARGN</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568263">568263</a></td>
<td>A database could have been corrupted by an ALTER TABLE statement which changed the nullability of a column. Because the nullability of a column affects the internal storage format of row, all rows in the table must be reformatteded when the nullability changes. This has been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568264">568264</a></td>
<td>The server could have hung, consuming CPU, while attempting to shutdown a database if all workers were busy servicing other requests on different databases. This has been fixed.</p>
<p>				A workaround is to increase the -gn value of the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568421">568421</a></td>
<td>Remote server capabilities were accidentally set OFF during a rebuild of a case-sensitive database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568422">568422</a></td>
<td>Under rare circumstances, a server participating in a mirroring system may have crashed on database shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568426">568426</a></td>
<td>When browsing permissions for tables and views, a user might have been listed more than once on the Permissions page of the property sheet for a table or view. Similarly, a table or view might have been listed more than once on the Permissions page of a user&#39;s property sheet. When fetching permissions, rows with the same grantee but different grantor, were not properly grouped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568431">568431</a></td>
<td>If an application executed an external environment stored procedure, and the external process terminated in the middle of the external call, then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568436">568436</a></td>
<td>When running on a Windows machine configured to use the 1252 code page, if the Interactive SQL utility (dbisql) attempted to open a file which contained a Euro sign (&euro;), it would have asked for which code page to use to interpret the file. Now, dbisql recognizes that the Euro sign is part of the Windows 1252 code page, and reads the file without prompting. This change also fixes similar behavior when a file contains any of the following characters:</p>
<p>				&euro; U+20AC Euro sign</p>
<p>				� U+017D Latin capital letter Z with caron</p>
<p>				� U+017E Latin small letter Z with caron</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568455">568455</a></td>
<td>If an application executed a statement of the form IF EXISTS( SELECT ... FROM proc(), remote_tab ...) where proc() was a stored procedure that returned a result set and remote_tab was a proxy table, then itwas likely that the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568460">568460</a></td>
<td>All database resources were not completely freed when an ALTER TABLE DROP INDEX statement was executed. In particular, the database pages for the rows and indexes of the table, before the table is rebuilt, were not being freed. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568468">568468</a></td>
<td>The SQL Anywhere server supports the &quot;UPDATE( colname )&quot; condition that can be evaluated in statement-level trigger code to determine if the value of the specified column has been modified from its original value in any of the rows in the row set affected by the UPDATE/INSERT/MERGE statement being executed. The server would have failed to evaluate the condition correctly for multi-row sets under certain circumstances. This has been corrected so that the server will now evaluate the condition correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568475">568475</a></td>
<td>On the Basic Dbmlsync page of the Synchronization Profile&#39;s property sheet, only a single publication could have been specified. In addition, if a synchronization profile was created with multiple publications via the Interactive SQL utility, then the publications would have been lost when the property sheet was used to modify the synchronization profile. Now the property sheet supports multiple publications.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568632">568632</a></td>
<td>When viewing table data for a SQL Anywhere database, Sybase Central could have reported an internal error. This has been fixed. The problem was highly timing dependent.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568641">568641</a></td>
<td>Attempting to insert a large long binary value into a MicrosoftS SQL Server proxy table, would have failed with a &quot;wrong precision&quot; error. This problem was introduced by the fix for Engineering case 565651, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568645">568645</a></td>
<td>On very rare occasions, the server may have failed to start on Solaris systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568652">568652</a></td>
<td>Adding two columns with default values to a global temporary table would trigger assertion 100712 (page level logging already in progress).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568657">568657</a></td>
<td>Signed and unsigned short values were not being translated properly by the SQL Anywhere Python interface. Attempting to use short values would have resulted in errors like &quot;struct.error: bad char in struct format&quot; or &quot;struct.error: unpack requires a string argument of length 1&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568660">568660</a></td>
<td>Referential integrity constraints (i.e. primary keys, foreign keys or unique constraints) involving long values may have resulted in unexpected errors. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568663">568663</a></td>
<td>The server could have crashed during Application Profiling if any variables or host variables were present in the workload. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568674">568674</a></td>
<td>Attempting to execute an CREATE ENCRYPTED DATABASE statement to create a database encrypted with simple encryption, or the CREATE DECRYPTED DATABASE statement to decrypt a database encrypted with simple encryption, without having specified an encryption key, would have returned the error (-131 &quot;Syntax error near &#39;(end of line)&#39; on line 1&quot;). This has been fixed. </p>
<p>				As a workaround, add &quot;KEY &#39;unused&#39;&quot; to either statement; whatever key is specify will be ignored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568821">568821</a></td>
<td>Querying the deprecated server property MaxMessage, would have caused the server to crash if the property MessageCategoryLimit was set to 0. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568831">568831</a></td>
<td>A server running in a database mirroring system could have hung while log pages were being sent from the primary server to the mirror server. The primary server periodically sends a &quot;catchup&quot; request to the mirror to ensure that the mirror does not get too far behind in applying log operations that it has received from the primary and written to disk. It was possible for this request to cause a hang if it was received at the same time as an operation for a new connection was being processed in the transaction log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568836">568836</a></td>
<td>Incorrect results could have been obtained when using an index which had nullable columns In some cases, fewer rows were returned than were required. This has been fixed..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568866">568866</a></td>
<td>The UltraLite Initialize Database utility (ulinit) is used to create an UltraLite database, based on information in the SQL Anywhere database that it is connected to. If the schema being extracted from the SQL Anywhere database contained elements that UltraLite did not support (like column datatypes or default values), the utility would have failed. Ulinit has been changed so that by default, it will attempt to create an UltraLite database that comes as close as possible to the SQL Anywhere database. For example, if a column in the SQL Anywhere database included the DEFAULT TIMESTAMP clause (a default that UltraLite does not support), a warning is generated and a default of CURRENT TIMESTAMP is generated instead. In particular, if a default in the SQL Anywhere database is not supported in the UltraLite database, the default value is ignored and creation continues. This enhancement was made because, in some cases, it抯 possible the SQL Anywhere tables cannot be modified, and yet a reasonable UltraLite alternative is available. The ulinit utility also now has a 杅 switch that can be used to make the utility fail if the exact schema does not match (in other words, the old behavior is given and the utility will fail). </p>
<p>				This fix also addressed a problem where warnings were emitted into the SQL file if the ulinit utility was run with 杔.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568972">568972</a></td>
<td>In cases where the standalone version of the SQL Anywhere Monitor and the regular SQL Anywhere Monitor were installed on the same machine, the SQL Anywhere Monitor could have loaded the wrong ODBC driver. This has been fixed. The old incorrect behaviour would, in the vast majority of cases, not have had any noticeable impact on the SQL Anywhere Monitor. The application would still have worked normally. So, the SQL Anywhere Monitor EBF should also be applied when applying a SQL Anywhere EBF. Applying the SQL Anywhere EBF without the SQL Anywhere Monitor EBF could cause the SQL Anywhere Monitor to stop working.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568976">568976</a></td>
<td>In rare, timing dependent circumstances, the server may have hung when executing queries using intra-query parallelism. This has been fixed.</p>
<p>				A workaround is to disable intra-query parallelism by setting the max_query_tasks option to 1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568984">568984</a></td>
<td>If an application connected via HTTP and executed a PHP external environment stored procedure with a long varchar or long binary argument, then there was a very small chance the server would have crashed if the HTTP connection was cancelled at exactly the same time that the PHP external environment call was made. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568986">568986</a></td>
<td>Performing a PutMessage operation from the Java QAnywhere Client using UltraLite, or from the Standalone Java QAnywhere Client, would have resulted in a memory leak equal to the size of the content of the message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR568991">568991</a></td>
<td>Connecting to the server using Open Client and attempting to describe the input parameters of a dynamic statement, would very likely have cause the application to hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569012">569012</a></td>
<td>The &quot;UserAgent&quot; HTTP header for QAnywhere/MobiLink communications previously only specified &quot;QAnywhere/11.0.1&quot;, and &quot;QAnywhereUL/11.0.1&quot;, for SQL Anywhere and UltraLite clients respectively. It did not differentiate between data synchronization and listener components. This has been fixed. Now, the header specifies &quot;QAnywhereSync/11.0.1&quot; for a SQL Anywhere data sync client, &quot;QAnywhereULSync/11.0.1&quot; for a UltraLite data sync client, and &quot;QAnywhereLsn/11.0.1&quot; for a MobiLink listener client.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569013">569013</a></td>
<td>MobiLink clients and the certificate utilities would have failed to read PEM-encoded trusted certificates files which contained blank lines before the first PEM header. The PEM parsing code has now been modified to skip leading white space characters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569020">569020</a></td>
<td>1. When two separate connections (including one that might be synchronizing) are accessing the database in parallel, some lock row conflicts or download conflicts may not have been detected.</p>
<p>				For example:</p>
<p>				Connection 1 deletes row with primary key value 2 but does not commit</p>
<p>				Connection 2 inserts row with primary key value 2 - here there was an undetected row locked or download conflict if connection 2 was synchronizing</p>
<p>				When connection 1 was rolled back, a database corruption mau have occurred. This has been fixed.</p>
<p>				2. Duplicate primary keys during a download were not detected. If the download contained two or more rows with the same primary key, the last row would be kept (this is not neccessarily correct if the download_cursor script does not have an ORDER BY clause). This has been fixed. UltraLiteJ will now report the SQLE_DUPLICATE_ROW_FOUND_IN_DOWNLOAD error when this is detected. Like UltraLite, this error is only reported for duplicate rows in the download_cursor - no detection is done for duplicate rows in the download_delete_cursor, or if the same primary key is in both the download_cursor and download_delete_cursor.</p>
<p>				3. The all database synchronization would not have included new tables if the database was synchronized before the table was added (unless the application was restarted). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569114">569114</a></td>
<td>The SQL Anywhere Monitor, when installed by the standalone installer, was not able to monitor MobiLink servers. The standalone installer was not installing the library mljstrm11.dll as part of the SQL Anywhere support component. This problem does not exist in the edition of SQL Anywhere Monitor included with SQL Anywhere. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569122">569122</a></td>
<td>When deploying a synchronization model to an UltraLite remote database, the batch file generated to run ulsync had an example CONNECTION string that incorrectly used my_db.db, rather than my_db.udb. A correct CONNECTION string in the batch file is now generated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569124">569124</a></td>
<td>When a Synchronization Model was modified to include either handle_DownloadData or handle_UploadData events, the model file could not have then been re-opened. An error message would have been displayed stating &quot;unknown or missing event ID handle_DownloadData&quot; or &quot;unknown or missing event ID handle_UploadData&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569127">569127</a></td>
<td>The result set returned from calling the system procedure dbo.sp_jdbc_primarykey() may have contained more rows than it should. This problem was introduced by the changes made for Engineering case 531119, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569298">569298</a></td>
<td>In some cases, it was possible for recursive UNION queries to give incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569307">569307</a></td>
<td>A SQLAnywhere service requiring authorization returned realm information based on the request URL. This has been fixed. The realm is now always set to the database name (or its alias) regardless of the request URL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569314">569314</a></td>
<td>The datepart() function could have returned an incorrect result for the CALWEEKOFYEAR and CALYEAROFWEEK date parts for dates greater than December 29 of years for which January 1 of the following year falls on Tuesday, Wednesday or Thursday. The first week of a year is defined as the week containing the year&#39;s first Thursday. All days in that week should have the same CALWEEKOFYEAR and CALYEAROFWEEK values, even for days in the previous year. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569316">569316</a></td>
<td>If an application connected using the iAnywhere JDBC driver and created a very large batch, containing either long binary or long varchar parameters, then executing the batch may have given a strange out of memory error dialog after which the application would have crashed. The driver has now been modified to allow such large batches to be executed; however, any such batches that require a very large amount of contiguous memory to be allocated will be executed one row at a time, instead of being batched. In addition, whenever the driver decides to execute a batch one row at a time, a SQLWarning will be returned on the executeBatch() call indicating that the &quot;batch was executed in single row mode due to memory limitations&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569323">569323</a></td>
<td>If the disk that the SQL Anywhere Monitor was resident on was in a low disk space situation, the Monitor would have generated disk space low alerts every 5 minutes instead of the default of generating the alerts every 30 minutes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569327">569327</a></td>
<td>If an application made an external environment call to a connection scoped external environment process, and that process then set an error and exited, then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569330">569330</a></td>
<td>The server could have crashed, or failed an assertion, if a materialized view had been disabled soon after an update. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569509">569509</a></td>
<td>The MobiLink Listener would have gone into an infinite loop light weight polling continuously, without respecting the polling interval, when communication errors continue to occur. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569510">569510</a></td>
<td>HTTP light weight polling may have failed with communication errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569513">569513</a></td>
<td>When an error or a timeout was detected between request phases of an http request-response cycle, the Relay Server outbound Enabler was not disconnecting the backend in a timely manner. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569516">569516</a></td>
<td>The Relay Server Outbound Enabler (RSOE) may have produced bad http requests. While relaying a packet of a http request, the RSOE would have reconnected to the backend server when the connection was lost, even if it was at the request boundary, producing a bad http request. This has been fixed by introducing a reconnect retry at request boundaries to improve robustness, and replace reconnect with an error for non-boundary packets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569520">569520</a></td>
<td>Dynamically added backend server farms, or servers, may have been incorrectly disabled. This is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569543">569543</a></td>
<td>The SQL Anywhere Monitor could have reported &quot;too many errors&quot; or &quot;too many failed syncs&quot; alerts when it should not have. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569704">569704</a></td>
<td>Very complex queries, with more than 20 tables being joined, that were being optimized using the &#39;FIRST-ROW&#39; optimization goal, may have had inefficient access plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569753">569753</a></td>
<td>A database server acting as the mirror server in a mirroring system, could have hung in rare cases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569759">569759</a></td>
<td>Executing the CREATE ENCRYPTED DATABASE or CREATE DECRYPTED DATABASE statement would have caused assertion 100202 if the source database was already running and the filename given in the statement did not contain the &#39;.db&#39; suffix. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569776">569776</a></td>
<td>When processing a SIMILAR TO, REGEXP or REGEXP_SUBSTR expression and the request_timeout option was set, incorrect results could have been returned. If the request_timeout option was not set, it was possible for a cancelled expression to have taken several seconds, or more, to respond. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569778">569778</a></td>
<td>If an application made a PHP external environment call that generated a large message, and then called exit(), there was a small chance that the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569784">569784</a></td>
<td>If a procedure definition did not contain a RESULT clause, and returned its results from a SELECT statement with a TOP n clause that used variables, describing a query of the form:</p>
<p>				SELECT *</p>
<p>				FROM proc()</p>
<p>				could have been incorrectly described by the server as having a single column with the name &quot;expression&quot;. The result set returned by the statement would have had the correct schema. This has been fixed.</p>
<p>				Calling the procedure directly (i.e. call proc()) was not affected by this problem, and would be correctly described, so this statement can be used as a workaround. Describing the schema of the result set using a RESULT clause is also a workaround. To fix procedures created with older servers, an ALTER PROCEDURE &lt;proc&gt; RECOMPILE has to be executed for each such procedure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569797">569797</a></td>
<td>When unloading or extracting a database into a new database that was created with strong encryption, the Unload and Extract Database wizards would have display the encryption key in plain text in the Unload or Extract Database Messages Dialog. This has been corrected so that now the encryption key is displayed as &quot;***&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569931">569931</a></td>
<td>If a user-defined function using the Transact-SQL dialect issued a RAISERROR statement, and that function was called from another Transact-SQL function, the calling application could have failed to receive the error. In some cases, this would result in the application hanging. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569932">569932</a></td>
<td>While performing certain operations that require sorting large amounts of data, such as creating an index, established temporary space limits that were set using the &quot;max_temp_space&quot; database option, could have been violated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569934">569934</a></td>
<td>The server has been improved such that queries of the form:</p>
<p>				SELECT [...,]contents[,...] FROM dir_table WHERE [...AND] file_name=[string|variable] [AND...]</p>
<p>				now execute much faster. In the above example, dir_table is a proxy table to a directory access server, the WHERE clause contains zero or more AND clauses and no OR clauses, and one of the predicates in the WHERE clause is of the form file_name=[string | variable].</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569942">569942</a></td>
<td>If an application that was connected using Open Client executed a query that generated a large column name, then there was a chance the application would have exited with a TDS protocol error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569951">569951</a></td>
<td>The number of rows affected was not being reported following the execution of a TRUNCATE TABLE statement. This has been fixed.</p>
<p>				Execution of a TRUNCATE TABLE statement would have failed with an SQLE_UNCOMMITTED_TRANSACTIONS error (&quot;You cannot synchronize or upgrade with uncommitted transactions &lt;table name&gt;&quot;), if there were any uncommitted transactions, even on the current connection. This has been fixed. The TRUNCATE TABLE statement will now only report an error if there are uncommitted inserts and updates on another transaction. With this respect, TRUNCATE now behaves exactly like DELETE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR569952">569952</a></td>
<td>If an error occurred in the middle of the execution of a TRUNCATE TABLE statement (11.0.1) or API (11.0.0, 11.0.1), a rollback of the deletes would not have been done. This has been fixed.</p>
<p>				Synchronizations with the special truncate table download_delete_cursor may have resulted in a fatal error if a second connection did a commit after the truncate was applied, but before the the synchronization completed. This would have occurred only if there were more than a few rows in the table being truncated (248 for 1K page size). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570093">570093</a></td>
<td>If a SELECT statement contained the clause FOR UPDATE BY LOCKS, and a cursor was opened without specifying updatability cursor flags from the client application, then the BY LOCKS specification could have been incorrectly ignored by the server. This would only have happened if the statement was a simple query that was processed bypassing optimization. The consequence of this was that intent locks would not have been taken on the table being scanned. The only API affected by this problem was Embedded SQL.</p>
<p>				Also, if a statemented executing at isolation 3 used an index scan for a table marked for update, then the rows of the table could have incorrectly been locked with exclusive (write) locks, instead of intent locks. The consequence of this was that other connections attempting to read the row could have blocked, even if the row was ultimately not modified. </p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570094">570094</a></td>
<td>The server would have crashed when parsing a procedure that contained a CASE statement with a WHEN clause which had an unary search condition other than ISNULL. When unparsing the WHEN clause the server was expected a binary search condition and crashed when attempting to access the second operand. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570098">570098</a></td>
<td>In some circumstances, a 10.x server could have hung at shutdown if a parallel backup had been performed, or an outbound HTTP connection (SOAP, etc) had been used. When those features were used on an 11.x server, the server would not have hung at shutdown, but unpredictable behaviour (crash, hang) could have occurred at runtime. This problem has been fixed.</p>
<p>				Note that the likelihood of encountering the problem with 11.x servers is extremely small.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570115">570115</a></td>
<td>Character set translation wasn&#39;t being done properly by the SQL Anywhere Python driver. Unicode encoding and decoding errors were possible, as well as incorrect translations. This has been fixed so that conversions are based on the connection&#39;s CharSet property.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570116">570116</a></td>
<td>The mirror server in a mirroring system could have hung while processing log pages received from the primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_68.htm#CR570128">570128</a></td>
<td>A small amount of memory was being leaked when a CREATE ENCRYPTED DATABASE or CREATE DECRYPTED DATABASE statement was executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570140">570140</a></td>
<td>Attempting to insert a binary or varbinary variable, or host variable, into a Microsoft SQL Server proxy table with an image column would have failed with an &#39;invalid precision&#39; error when the length of the binary value was between 8001 and 32768 bytes. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570141">570141</a></td>
<td>In rare cases, the mirror server in a mirroring ssystem could have crashed at shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570144">570144</a></td>
<td>The Relay server&#39;s configuration file has a 64k size limit that, if exceeded, can caused the Relay Server to fail on start up. This limit has been removed. This limit was not affecting dynamic growth of configuration.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570308">570308</a></td>
<td>Attempting to return a result set from within a BEGIN ATOMIC block would caused a memory leak in the server. This has been fixed.</p>
<p>				Note that returning a result set from within an atomic block is not allowed, and an error is issued in this case. This behaviour has not changed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570369">570369</a></td>
<td>The listener may not have substituted action variables properly in some cases. The light weight polling handler would have substituted the variables $ml_user, $ml_password and $ml_connect with undefined values, as they were thought to be irrelevant in unauthenticated light weight polling. This has been fixed. They will be substituted properly into the action string and, if they are not specified, the values will be empty. Action variables in irrelevant contexts would have been substituted with undefined values as well. This is too is fixed, by not not be substituting them at all. For example, using $poll_key in the action string of a non-light-weight-polling handler will now result in $poll_key without substitution instead of an undefined result.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570468">570468</a></td>
<td>When attempting to create a proxy table, if the connection was subsequently cancelled, either explicitly or implicitly, by shutting down the database or server, then there was a small chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570473">570473</a></td>
<td>On Linux systems, it was possible that the SQL Anywhere Monitor would have failed to start. When the Monitor starts up, it explicitly sets the location of the installed Java VM to ensure it always uses the Java installation shipped with the Monitor. Unfortunately, because of the case-sensitive nature of paths in Linux, it was possible that the path set was not being picked up properly. This has been corrected so that the Monitor now uses the correct case for the path on Linux.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570476">570476</a></td>
<td>A SQLAnywhere service, processing an x-www-urlencoded (standard GET or POST) HTTP request which calls HTTP_VARIABLE() with an @BINARY attribute, will return %-encoded (URL encoded) data. This has been fixed. An @BINARY attribute will now implicitly decode the value without character set translation. A new attribute, @TRANSPORT, has been added to allow the return of data in its raw HTTP transport form. With this change, HTTP_VARIABLE may retrieve x-www-form-urlencoded values in three different forms:</p>
<p>				* No attribute - return a value that is %-decoded and character set translated to the database character set encoding. %-encoded UTF-8 decoding is supported. This should be the default usage for retrieving textual x-www-form-urlencoded data.</p>
<p>				* @BINARY should be used to retrieve x-www-form-urlencoded binary data values. The value is %-decoded with no character set translation, UTF-8 %-encoded data is not supported in this mode since %-encoded data are simply decoded into their equivalent byte representation.</p>
<p>				* @TRANSPORT will return the raw HTTP transport form of the value, where %-encodings are preserved.</p>
<p>				This change does not impact the usage of @BINARY for multi-part/form-data form based uploads. The use of @TRANSPORT in this case is identical to @BINARY. Prior to this change, the work-around was to HTTP_DECODE the value returned by the HTTP_VARIABLE function when it was called with an @BINARY attribute.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570493">570493</a></td>
<td>In very rare cases, if an event fired while a database was being shutdown, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570503">570503</a></td>
<td>When using secure streams and an invalid TLS handshake occured, the MobiLink server could have waited for a full network timeout period before disconnecting. This has been fixed. The MobiLink server will now immediately terminate the network connection with a &quot;handshake error&quot; error message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570650">570650</a></td>
<td>Using the TRANSACTION LOG TRUNCATE clause on the BACKUP DATABASE statement could have lead to the error &quot;Assertion failed: 100910 Error renaming transaction log file before deleting it.&quot; This would have occurred when the user under which the server was running did not have delete permissions on the directory where the transaction log was located. Now, the server no longer deletes and re-creates the transaction log file, instead it truncates the file to one page. This should also prevent any interaction with virus scanners and disk defragmenters, which was often the case when files were being created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570652">570652</a></td>
<td>If a version 10.x or later database had a torn (ie &quot;partial&quot;) write in the checkpoint log, the server could have reported assertion failures, including 201866 (only on 10.x servers), 201869 (only on 11.x servers), 200502, 200505, or 200512. In the case of a single torn write, these failures should not have been reported, and the database should be recoverable once the server is upgraded to include this fix. If upgrading the server does not resolve the assertion failures, the database is likely corrupt and does not just have a torn write.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570656">570656</a></td>
<td>If a MobiLink synchronization script included the two characters &quot;ui&quot; inside an {ml ...} structure for named parameters, and the &quot;ui&quot; characters were not part of a named parameter, then MobiLink would have incorrectly replaced the &quot;ui&quot; with a question mark when it sent the command to the consolidated database. For example, the following script would have had no problem, since the &quot;ui&quot; in this case was part of the named parameter &quot;build&quot;:</p>
<p>				INSERT INTO t1(pk,build) VALUES ( {ml r.pk}, {ml r.build})</p>
<p>				However, the following script would have failed, because the &quot;ui&quot; in the column list for the insert would have been replaced:</p>
<p>				{ml INSERT INTO t1(pk,build) VALUES ( r.pk, r.build )}</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570690">570690</a></td>
<td>The &quot;Longest Active Synchronization Time&quot; and the &quot;Longest Active Wait for a Database Worker Thread&quot; metrics were incorrect in the SQL Anywhere Monitor, and the monitoring values printed by the -ppv options LONGEST_SYNC and LONGEST_DB_WAIT, would have been incorrect. These metrics in the Monitor had the incorrect sign, but the absolute values were correct; essentially the graph was drawn upside down. A side effect of this is that the alert on these metrics would never be raised. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570738">570738</a></td>
<td>In very rare, timing dependent cases, a server backup could have hung while starting up. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570799">570799</a></td>
<td>When exporting to an UltraLite database using the Export wizard, the corresponding OUTPUT statements added to the command history would have been incomplete if no password was given for the UltraLite database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570884">570884</a></td>
<td>The FIPS module is now supported by the SQL Anywhere server and clients on 64-bit Windows, and 32-bit and 64-bit Linux.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570896">570896</a></td>
<td>In rare circumstances the server may have crashed when a new HTTP connection was created. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570903">570903</a></td>
<td>In very rare circumstances it was possible for the SQL Anywhere JDBC driver to have caused a crash in the Java VM. The Hotspot log generated for the crash would most likely have indicated that the crash occurred while attempting to construct a class cast exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570915">570915</a></td>
<td>When the iAS ODBC driver for Oracle was used by the MobiLink server to upload multiple CHAR type columns to a consolidated database running on an Oracle 9.2.0.8 server, it could have failed with the error;</p>
<p>				&quot;ORA-01461: can bind a LONG value only for insert into a LONG column&quot;</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570923">570923</a></td>
<td>If a database error occurred when trying to install or update the MobiLink System Setup, the error message would have included the SQL statement that was being executed, which could have lead to the message box being too large for the screen. This has been fixed. Now the SQL statement is only shown when the Details are shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570928">570928</a></td>
<td>If a statement was executed with a hash group by operator, and there was an aggregate function AGG( DISTINCT x ) for a blob value x, it was possible in some situations for the server to have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR570940">570940</a></td>
<td>On Japanese Linux systemss, the Service utility (dbsvc) would not have output any messages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571029">571029</a></td>
<td>If an application attempted to execute a batch with a long binary or long varchar column, and the values within the long columns were large, and the batch size was also reasonably large, then the iAnywhere JDBC driver may have given an &#39;out of memory&#39; dialog, even though the Java VM still had lots of memory available. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571215">571215</a></td>
<td>If two grouped queries appeared in different outer joins with an unquantified expression in the group-by list, it was possible for NULL to be substituted for the unquantified expression value elsewhere in the query. For example, the following query could have returned NULL incorrectly for columns A1, A2:</p>
<p>				select today(*) A1, D2.A2, D3.A3</p>
<p>				from dummy D1</p>
<p>				left join ( select today(*) A2 from sys.dummy group by A2 ) D2 on 1=1</p>
<p>				left join ( select today(*) A3 from sys.dummy group by A3 ) D3 on 1=0</p>
<p>				This fault could have lead to the following (non-fatal) assertion failure:</p>
<p>				Run time SQL error -- *** ERROR *** Assertion failed: 102501 (10.0.1.####)</p>
<p>				Work table: NULL value inserted into not-NULL column</p>
<p>				SQLCODE=-300, ODBC 3 State=&quot;HY000&quot; </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571233">571233</a></td>
<td>When the -pi option &#39;ping MobiLink server&#39; was used on the MobiLink client (dbmlsync) command line, dbmlsync would have returne an exit code of 0 (indicating success), even if it was unable to contact the Mobilink server. This has been fixed, and a non-zero exit code will now be returned in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571242">571242</a></td>
<td>If a non-existent stored procedure was called with argument names in the CALL statement, the server would have returned the misleading error message: &quot;Parameter &#39;&#39; not found in procedure &#39;???&#39;&quot;. This has been fixed so that a prcedure not found error is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571252">571252</a></td>
<td>The INPUT USING, or Import Wizard, was not able to import REAL values from a SQL Anywhere database to an UltraLite database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571253">571253</a></td>
<td>When installing only the MobiLink components on Linux systems using the 1.0.1 GA install, the dbfhide utility was not installed. This utility should be installed, as it is used for both MobiLink and Relay Server setup. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571267">571267</a></td>
<td>In the SQL Anywhere Monitor, the &#39;Total CPU Time&#39; displayed for MobiLink resources would have been unreasonably large. This was due to the values being scaled as milliseconds, rather than as seconds. This has been fixed and the values are now correctly displayed in seconds.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571282">571282</a></td>
<td>When creating a synchronization model, if a custom download subset was choosen, without specifying one or more tables to join, then the download_cursor events would not have been generated. Instead errors like the following would have appeared as comments in the Events editor:</p>
<p>				/* </p>
<p>				* ERROR: Unexpected error encountered while generating event.</p>
<p>				* Error for: RHS of #set statement is null. Context will not be modified. table-scripts\download_cursor.vm</p>
<p>				* [line 59, column 8]</p>
<p>				*/</p>
<p>				This problem only happened in the New Synchronization Model wizard, not when custom download subset was enabled in the Mappings editor. The problem has been fixed for new synchronization models.</p>
<p>				To work around the problem, in the Mappings editor change the Download Subset (Dnld. Sub.) to None and then back to Custom, then switch back to the Events editor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571284">571284</a></td>
<td>The server may have crashed following execution of an ALTER TABLE statement that added or modified columns with a DEFAULT or COMPUTE clause, if all materialized views had been dropped since the last server start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571436">571436</a></td>
<td>A statement that used subsumed ORDER BY clauses in aggregate functions would have failed with a syntax error. This type of statement was executed without an error in version 9.0.2, and has now been fixed.</p>
<p>				For example:</p>
<p>				select list(e1 ORDER BY e2, e3 ), list( e4 ORDER BY e2,e3,e5)</p>
<p>				from ....</p>
<p>				The first ORDER BY clause &#39;e2, e3&#39; is subsumed by the second ORDER BY clause &#39;e2,e3,e5&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571460">571460</a></td>
<td>On Linux systems, the Service utility (dbsvc) would not have honored the -pr (nicelevel) and -a (user) command line options. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571465">571465</a></td>
<td>If a network error occurred in the MobiLink Monitor, the SQL Anywhere Monitor, QAnywhere, or the Notifier, there could have been garbage characters trailing the error string.</p>
<p>				For example:</p>
<p>				&quot;The server monitor was unable to contact the MobiLink server. The host &#39;mlstress02&#39; is still available. Error: Timed out trying to read 128 bytes.rWms&quot;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571611">571611</a></td>
<td>On Linux systems, the server could have used larger amounts of memory than intended under some circumstances. Affected functionality included external function calls, the Java external environment, outbound HTTP connections, and remote data access. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571620">571620</a></td>
<td>OEMs now have the ability to prevent users from saving connection passwords with favorites. To do this, add the (new) &quot;allowPasswordsInFavorites&quot; directive to the &quot;dbisql&quot; section of the OEM.INI file:</p>
<p>				[dbisql]</p>
<p>				allowPasswordsInFavorites=false</p>
<p>				Allowable values for this directive are &quot;true&quot; and &quot;false&quot;. The default is &quot;true&quot;. If this directive is added to OEM.INI, and its value is &quot;false&quot;, the visible change is in the &quot;Add to Favorites&quot; window: the checkbox called &quot;Save the connection password&quot; will not be visible, and will be assumed to be unselected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571624">571624</a></td>
<td>If an application executed a query that generated a warning, and that warning was attached to a Statement, PreparedStatement, CallableStatement or ResultSet object, and the object was subsequently closed without calling clearWarnings() first, then the JDBC driver would have leaked memory. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571625">571625</a></td>
<td>If an application called DatabaseMetaData.getCatalogs(), DatabaseMetaData.getSchemas() or DatabaseMetaData.getTableTypes(), then the JDBC driver would have leaked a very small amount of memory. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571628">571628</a></td>
<td>If an application called a stored procedure which in turn called a proxy procedure, and the local stored procedure generated a warning prior to calling the proxy procedure, then the server may have returned the error: &quot;remote server not capable&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571643">571643</a></td>
<td>When editing a table&#39;s schema with the table editor, typing a Ctrl or Alt key combination could have initiated editing of the focused cell and either selected a menu item or opened a menu. This has been corrected so that typing a Ctrl or Alt key combination now performs the latter operation,and does not initiate editing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571671">571671</a></td>
<td>When editing a synchronization model&#39;s mappings with the table or column mapping editors, typing a Ctrl or Alt key combination could have initiated editing of the focused cell and either selected or opened a menu. This has been corrected so that typing a Ctrl or Alt key combination only performs the latter operation, and does not initiate editing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571806">571806</a></td>
<td>The server may have returned the nonfatal assertion error 102605 &quot;Error building columns&quot; when a query used a complex subselect on the Null supplying side of an outer join.</p>
<p>				For example:</p>
<p>				select V1.N1</p>
<p>				from T1 V0 </p>
<p>				left outer join </p>
<p>				( select &#39;M&#39; as N1</p>
<p>				from ( select V4.c as xx</p>
<p>				from T2 as V4,( select count(*) as N3 from T3 ) V3 </p>
<p>				where V4.b = V3.N3 ) V2</p>
<p>				) V1 </p>
<p>				on V0.a = V1.N1</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571810">571810</a></td>
<td>MobiLink clients (except for UltraLiteJ) now cache the host socket address to avoid extra calls to socket methods, such as getaddrinfo, inet_addr, and gethostbyname, for non-persistent HTTP and HTTPS synchronizations.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571817">571817</a></td>
<td>NCHAR, NVARCHAR, and LONG NVARCHAR values from a SQL Anywhere database were exported as CHAR to an Oracle database if DBISQL had to create a table in the Oracle database to hold the data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571957">571957</a></td>
<td>The server could have generated a dynamic memory exhausted error when trying to execute </p>
<p>				a very complex statement. This has been fixed. The server will now return the SQL error</p>
<p>				SQLSTATE_SYNTACTIC_LIMIT.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR571988">571988</a></td>
<td>Fetching the connection property &#39;ServerNodeAddress&#39;, would have incorrectly returned the client&#39;s node address rather than the server&#39;s. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572122">572122</a></td>
<td>When a Synchronization Model was created and deployed on Unix systems, the created .sh files had statements like &quot;if [[ value == value ]] &quot;. The &quot;[[&quot;, &quot; ]]&quot; and &quot;==&quot; were syntactically incorrect, causing error messages. This has been fixed.</p>
<p>				Also when running an mlsrv.sh file with an argument that contained spaces, such as &quot;dsn=SQL Anywhere 11 Demo&quot;, would have failed. The connection string is now quoted within the file to correct this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572123">572123</a></td>
<td>When deploying a Synchronization Model on Unix systems, generated .sh files were not created with executable permissions set. A workaround was to run &quot;chmod a+x&quot; on all of the .sh files. This has been fixed. Now executable permission is set for everyone when .sh files are generated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572124">572124</a></td>
<td>Opening a previously deployed and saved Synchronization Model file with a new remote database, and then trying to deploy it using the last settings, would have failed with a file error while recreating the remote database. This has now been fixed.</p>
<p>				A workaround is to manually delete the remote database and transaction log before redeploying.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572158">572158</a></td>
<td>After application of an EBF, Sybase Central, and/or the Interactive SQL utility, may not have been able to connect to a database. The Sybase Central and dbisql fastloaders were not being terminated during the install of the EBF, resulting in a reboot prompt due to locked files. If the reboot prompt was ignored, the locked files are not updated which could result in various connection failures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572179">572179</a></td>
<td>On Linux systems, the Service utility (dbsvc) would not have stopped MobiLink services correctly. This has been fixed. The correct command was correctly echoed to the console but not actually executed. A workaround is to execute the command that was echoed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572187">572187</a></td>
<td>Multi-index scans which return very few rows were having their cost underestimated during query optimization. This may have resulted in multi-index scans being chosen incorrectly, which may have impacted the performance of the query execution. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572196">572196</a></td>
<td>It was possible for the MobiLink client (dbmlsync) to have sent an incorrect last download timestamp up to the MobiLink server, if dbmlsync had been running on a schedule, and ALL of the following had occurred during the last synchronization :</p>
<p>				1) All of the data in the download stream had been applied, but had not yet been committed to the remote database.</p>
<p>				2) An SQL Error had been generated by dbmlsync before the download had been committed. Examples of errors that could have occurred include an error occurring in the sp_hook_dbmlsync_download_ri_violation or the sp_hook_dbmlsync_download_end hooks, or an error occurring as dbmlsync had attempted to resolve referential integrity issues.</p>
<p>				3) Another hook had been defined in the remote database that would have executed on another connection. For example, the sp_hook_dbmlsync_download_log_ri_violation or the sp_hook_dbmlsync_all_error hooks would have executed on a separate connection.</p>
<p>				This problem has now been fixed, and the proper last download timestamp is now sent up to the MobiLink server in the synchronization when this situation occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572347">572347</a></td>
<td>For specific classes of the UPDATE statement, it was possible for the server to consume too much memory while processing the request. In extreme cases, the server could have failed with an out-of-memory error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572544">572544</a></td>
<td>During full text searches using a text index with a GENERIC term breaker, if a CONTAINS query contained a phrase with a term longer than MAXIMUM TERM LENGTH, the positional </p>
<p>				information for the term could have been lost. This could have caused incorrect results to be returned. This has now been fixed.</p>
<p>				Example:</p>
<p>				Consider a text index on col1 of table t, built using a text configuration with MAXIMUM TERM LENGTH equal to 7, MINIMUM TERM LENGTH equal to 1:</p>
<p>				SELECT t.*</p>
<p>				FROM t CONTAINS( col1, &#39;&quot;there is an elephant at the zoo&quot;&#39; );</p>
<p>				Before this fix, the query above would be equivalent to: </p>
<p>				SELECT t.*</p>
<p>				FROM t CONTAINS( col1, &#39;&quot;there is an at the zoo&quot;&#39; );</p>
<p>				and would miss documents containing the phrase &quot;there is an elephant at the zoo&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572547">572547</a></td>
<td>When resetting a SQL Anywhere resource from the SQL Anywhere Monitor, it was possible that the reset dialog would have been dismissed before the reset operation had completed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572549">572549</a></td>
<td>On Solaris systems with a non-UTF8 locale (eg. GB18030), when installing SQL Anywhere to a path containing MBCS characters, the installer would have failed to register the Sybase Central plugins. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572556">572556</a></td>
<td>If the command line options -nogui and -onerror exit were used, and a connection could not be opened, when there was no command tail and connection parameters are given, dbisql did not quit and entered interactive mode. This has been fixed so that dbisql now quits with error code 9 (&quot;could not connect&quot;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572935">572935</a></td>
<td>If an UNLOAD ... INTO VARIABLE or UNLOAD ... INTO CLIENT FILE statement was used to unload either a table or a query containing an NCHAR column, the database server could crashed if the NCHAR character set was did not match the destination character set. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572936">572936</a></td>
<td>After running for several days, it was possible that the SQL Anywhere Monitor would have stopped checking if SQL Anywhere resources had updates available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572961">572961</a></td>
<td>When the SQL Anywhere Monitor starts, it starts monitoring all the resources that are defined. If many resources were being monitored, this startup process could have taken several minutes, and caused degraded performance on the computer running the Monitor. A change has been made that attempts to alleviate these problems by having the Monitor be more conscious of limited system resources when the it starts. This improves the startup time of the SQL Anywhere Monitor when it is monitoring many resources.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572968">572968</a></td>
<td>A small amount of memory was being leaked on every synchronization by the QAnywhere Agent for Ultralite. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR572973">572973</a></td>
<td>During a large download, an out of memory error could have occurred on BlackBerry devices and simulators. This has been fixed. The row limiting algorithm has been improved, increasing the capacity of large downloads. To enable row limiting, first enable lazy loading of indexes, then use ConfigPersistent.setRowMaximumThreshold() and ConfigPersistent.setRowMinimumThreshold() to appropriate values (try 50,000 / (maximum cols per table + 1)).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573160">573160</a></td>
<td>If an initial database size was specified in a CREATE DATABASE statement or with the -dbs option on the Initialization utility (dbinit), the resulting database would have been slightly larger (about 2MB) than the requested size. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573172">573172</a></td>
<td>The server could have become deadlocked if the &#39;wait after end&#39; option was used when performing a backup. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573208">573208</a></td>
<td>Full text searches, where both arguments to the NEAR operator were the same token, would have matched documents containing a single copy of the token. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573222">573222</a></td>
<td>Support for FIPS 140-2 certified encryption has now been added to 64-bit Windows for UltraLite (except UltraLiteJ) and MobiLink clients .</p>
<p>				If the &quot;FIPS-approved Strong Encryption&quot; feature is not already installed, proceed as follows after applying the EBF:</p>
<p>				- From Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Add option and enter the Add-on Registration Key and click Next.</p>
<p>				- In the dialog, ensure that the &quot;FIPS-approved Strong Encryption&quot; feature is selected and proceed.</p>
<p>				If the &quot;FIPS-approved Strong Encryption&quot; feature is already installed, proceed as follows after applying the EBF:</p>
<p>				- From Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Modify option and de-select the &quot;FIPS-approved Strong Encryption&quot; feature, to temporarily remove it, and proceed.</p>
<p>				- Again from Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Modify option and select the &quot;FIPS-approved Strong Encryption&quot; feature and proceed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573228">573228</a></td>
<td>When concurrent connection requests were made to servers running on multi core or multi processor Unix systems, connections could, in rare cases, have hung, received communication errors, or otherwise failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573427">573427</a></td>
<td>When creating, duplicating or renaming an object, Sybase Central would have performed a case-sensitive comparison to determine if an object with the same name already existed in the database. Now, a case-insensitive comparison is performed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573452">573452</a></td>
<td>Fetching a result set may, on rare occasions, have caused an application that connected using a newer version of Open Client 15 to hang or give a protocol error. In addition, cancelling a request may also have caused the application to hang or give a protocol error. These problems have now been fixed. </p>
<p>				Please note that if an application does use Open Client 15 to connect to SQL Anywhere, then it will be necessary to update the version of Open Client 15 once this fix is installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573456">573456</a></td>
<td>On Windows x64 systems, attempting to start the MobiLink server with the -xo command line option (specify network protocal and options for version 8 and 9 clients), would have failed with a missing dll error if HTTPS was requested. The dll mlhttps11.dll was missing from the install. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573614">573614</a></td>
<td>If requests were made to close several connections at the same time, then the server may have taken much longer than necessary to close all the connections. This problem was very rare and not very noticeable, but has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573625">573625</a></td>
<td>If an application asked for the connection status through the following ODBC API</p>
<p>				SQLGetConnectAttr( hdbc, SQL_ATTR_CONNECTION_DEAD, ... )</p>
<p>				after an error occurred, the iAnywhere Solutions ODBC driver for Oracle could told the application that the connection was still alive, even though the connection had actually been killed, or had timed out. If this problem occurred for the MobiLink server main connection, in most cases, the server would have displayed the following messages:</p>
<p>				[10009] MobiLink table &#39;ml_scripts_modified&#39; is damaged</p>
<p>				[-10020] Unable to flush scripts</p>
<p>				and refused any synchronization requests. This MobiLink server would then have needed to be be restarted in order to carry on any synchronization. This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573636">573636</a></td>
<td>After performing a database backup, a warning message of the form &quot;Unable to open backup log &#39;...&#39;&quot; could have been sent to the client and console. Note that this warning came as a &quot;message&quot; to the client, not as a warning SQLCODE from the BACKUP statement. The problem was far more likely to have occurred on Windows Vista or later when running as a non-elevated process, as the server typically tried to write the log into the SQL Anywhere installation directory which is not typically writable by non-elevated pocesses. This problem was fixed by properly detecting which of the possible directories for placement of backup.syb were writable, and adding the %ALLUSERSPROFILE%\SQL Anywhere XX (XX=version number) directory to the list of possible directories. On Vista and later, the %ALLUSERSPROFILE% directory is typically C:\ProgramData. On earlier versions of Windows, it is typically C:\Documents and Settings\All Users\Application Data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573824">573824</a></td>
<td>The 32-bit Unix versions of the SQL Anywhere ODBC Driver Manager (libdbodm) would have leaked a very small amount of memory for every statement handle that was allocated and subsequently freed. The memory leak problem has now been fixed.</p>
<p>				Note that the memory leak does not exist with the 64-bit Unix versions of the SQL Anywhere ODBC Driver Manager, and that the SQL Anywhere ODBC Driver Manager does not exist on Windows platforms. It should also be noted that several SQL Anywhere components on Unix platforms use the SQL Anywhere ODBC Driver Manager implicitly, and are therefore impacted by this problem. In particular, the server will use the SQL Anywhere ODBC Driver Manager for performing Remote Data Access operations; as well, the Mobilink Server uses the SQL Anywhere ODBC Driver Manager to talk to the consolidated database. Also, the iAnywhere JDBC driver uses the SQL Anywhere ODBC Driver Manager to make connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573839">573839</a></td>
<td>In the Synchronization Model wizard, when creating a model using a consolidated database and an existing remote database, the mapping editor&#39;s column headings could have been incorrect. In particular, the &quot;Consolidated Table&quot; column would have incorrectly been labelled &quot;Mapping Direction&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573841">573841</a></td>
<td>When starting a database created by a backup, particularly one created using BACKUP ... WAIT BEFORE START ... WITH CHECKPOINT LOG NO COPY, the server could have failed with an error of the form &quot;Database cannot be started -- &lt;log file name&gt; not expecting any operations in transaction log&quot;. This problem has been fixed. </p>
<p>				As a workaround, add &quot;-a &lt;log file name&gt;&quot; to the server&#39;s command line. When recovery completes, the server will shut down. Afterwards, restart the server normally (without the &quot;-a &lt;log file name&gt;&quot; option).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573843">573843</a></td>
<td>In an UPDATE statement, no diagnostic error message was issued when a SET clause was not followed by a name. Thisn has been fixed so that an eroor message is now issue for this situation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR573990">573990</a></td>
<td>When calling the SADataReader.GetBytes method into a binary or varbinary column with a null buffer, it would have thrown the exception &quot;no current row of cursor&quot;. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574014">574014</a></td>
<td>In some circumstances, it may have taken longer than expected to shutdown a database when it was started and then immediately stopped. This would only have been noticeable if the following three conditions were true:</p>
<p>				a) cache collection was enabled on the previous run of the database,</p>
<p>				b) cache warming was enabled on the current run of the database,</p>
<p>				c) the server accessed a large number of pages during the cache collection interval, i.e., the first queries executed against the database referenced a large number of pages (as may be the case in a scan of a large table or set of tables).</p>
<p>				This has been fixed. Note, cache collection is on by default, and is controlled by the -cc server command line option. A workaround is to disable cache warming using the -cr- server command line option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574022">574022</a></td>
<td>When editing a table&#39;s schema using the table editor, the Cut, Paste, Delete and Undo toolbar button enabled states would not have been updated if the Ctrl key accelerators were used to perform these operations. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574222">574222</a></td>
<td>During a full text search, with a very long query containing conjunctive or disjunctive expressions only, the server could have failed with the error: &quot;Text query parser error: parse stack overflow at or before character &lt;n&gt;&quot;. This has been fixed.</p>
<p>				Examples of queries that would failed:</p>
<p>				CONTAINS( col, &#39;apple &amp; banana &amp; tomato &amp; cucumber &amp; ..... &amp; parsley&#39; )</p>
<p>				CONTAINS( col, &#39;dog | cat | camel | .... | chipmunk&#39; )</p>
<p>				where ... is a list of terms separated by the &amp; or | operator.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574314">574314</a></td>
<td>Attempting to modify a service that was already running using the Service utility (dbsvc) with the -w &quot;create service&quot; command line option would have failed. The utility would have deleted the server, but would not have been able to re-create it. This has been fixed. If the service is running, dbsvc will now report an error and will not delete the service.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574337">574337</a></td>
<td>If MobiLink servers were running in a server farm against a very busy consolidated database, some of the MobiLink servers may have shutdown automatically, due to the fact that they were no longer able to maintain their liveness to the consolidated database. To fix this problem, a new MobiLink server command line option to supply server farm database connection parameters has been added:</p>
<p>				-ca &quot;keyword=value;...&quot;</p>
<p>				This new option can be used to let the MobiLink servers connect to another database that is running on a less busy database server, and then the MobiLink servers will use this</p>
<p>				second database to maintain their state information for the server farm. This second database can be running on an SA, ASE, Microsoft SQL Server, Oracle, DB2, or MySQL database server. However, it must contain the MobiLink server system objects.</p>
<p>				Note, the -ca command line option must be the same for all the MobiLink servers across the same server farm, otherwise, redundant synchronizations may not be detected and data inconsistency can happen.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574348">574348</a></td>
<td>When deploying a Synchronization Model, and using a secure stream, the Deploy Wizard&#39;s Secure Stream Server Certificate page incorrectly referred to an &quot;Identity certificate file&quot; and the File dialog opened by the Browse button only showed certificate files (with .crt and .cer extensions). The wizard should have listed identity files (with a private key as well as a certificate, and .id file extension by iAnywhere convention). This has been fixed. Now the page is called &quot;Secure Stream Server Identity&quot;, which refers to an &quot;identity file&quot;, and the File dialog by default shows only identity files with .id extension, although listing .crt and .cer files is still an option (in case the .id extension is not used). A workaround is to change the filter to show all file types and choose an identity file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574352">574352</a></td>
<td>If a Synchronization Model was deployed to a location that contained a space in the name, or the deployed model contained a space in the name, then the remote and consolidated script files would not have functioned correctly. This has now been corrected. A workaround is to manually edit the files and quote any file paths that contained spaces.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574354">574354</a></td>
<td>The iAS ODBC driver for Oracle could have crash in a stored procedure call, if the stored procedure contained char or varchar type INOUT parameters, and the data length of these parameters was greater than 2000 bytes (1000 bytes for driver versions, 9.0.2 and 10.0.1). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574364">574364</a></td>
<td>If an application accessed a connection-scoped external environment via an HTTP request or from an event, then the external environment would have shut down when the HTTP request finishes or when the event completed. As a result, the next HTTP request or event that accessed the external environment required that the external environment be restarted. The server has now been improved such that starting an external environment is between 20% to 25% faster. Note that applications that use a database-scoped external environment (i.e. Java or CLR) will see a very modest performance improvement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574473">574473</a></td>
<td>The conflict() function, used with SQL Remote in RESOLVE UPDATE triggers, did not return correct results. The result of the function was always FALSE. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574475">574475</a></td>
<td>Under very rare circumstances, a client-side backup that truncates or renames the log may have hung the server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574693">574693</a></td>
<td>The QAnywhere Agent for UltraLite would have given a misleading error message if an invalid username or password was specified in the connection string. The error message that was being generated looked like:</p>
<p>				Internal error: SQLCODE: -108, SQLSTATE: []</p>
<p>				Source statement: SET OPTION isolation_level=read_committed</p>
<p>				QAnywhere Agent failed to initialize message store</p>
<p>				This has been fixed so that the agent now returns error code -103 as expected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574697">574697</a></td>
<td>If a NUMERIC INOUT parameter was bound as SQL_PARAM_INPUT_OUTPUT, the result that was returned to the caller was always 0.</p>
<p>				For example:</p>
<p>				CREATE PROCEDURE _TEST_PROC</p>
<p>				(</p>
<p>				@IN_VAL1 NUMERIC(7, 0),</p>
<p>				@IN_VAL2 NUMERIC(7, 0),</p>
<p>				@OUT_VAL NUMERIC(7, 0) OUTPUT</p>
<p>				)</p>
<p>				AS</p>
<p>				BEGIN</p>
<p>				SET @OUT_VAL = @IN_VAL1 + @IN_VAL2</p>
<p>				END</p>
<p>				If the statement &quot;CALL PROCEDURE _TEST_PROC( 100, 200, ? )&quot; was prepared, and the third parameter was bound as SQL_PARAM_INPUT_OUTPUT, the result after execution was 0. It should have been 300. If the parameter was bound as SQL_PARAM_OUTPUT, the result returned was correct.This problem has been fixed.</p>
<p>				Note that in the above Transact SQL procedure, OUT_VAL is an INOUT parameter, since Transact SQL parameters are always INPUT and the addition of the OUTPUT clause makes them INOUT.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574698">574698</a></td>
<td>The QAnywhere Java clients could have gone into an endless loop, with 100% CPU usage, if it attempted to uncompress a message whose content has become somehow corrupted. This has been fixed so that the clients now return a suitable error message to indicate that it failed to retrieve the message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574707">574707</a></td>
<td>If an application made an external environment request, and the server was under heavy load, then there was a chance the external environment would have taken too long to respond to the request. In such situations, the server would have timed out the request and returned control back to the application. If the external environment responded to the request at exactly the same time the server timed the request out, then there was a very small chance the server would have hung. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574708">574708</a></td>
<td>Executing a query that required a result set to be fetched from a remote table, could have in very rare situations, caused the server to crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574710">574710</a></td>
<td>When the SQL Anywhere Monitor was run on Linux systems, and used to monitor a large number of resources, there is a very good possibility that the Monitor would have performed poorly. This problem only existed after applying the 11.0.1 build 2222 EBF. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574746">574746</a></td>
<td>If an unknown connection parameter was provided to the ODBC driver, the driver would have given the error: &quot;Parse Error: Invalid or missing keyword near &#39;&lt;unknown parameter&gt;&#39;&quot;. Some applications (for example, Crystal Reports in some cases) generate connection parameters which are unknown to SQL Anywhere, which resulted in connection failures. This has been fixed so that unknown connection parameters are now ignored. This returns the ODBC driver to the Adaptive Server Anywhere 9.x and earlier behavior.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574912">574912</a></td>
<td>If a database contained a DISCONNECT event handler called E, and a transaction log containing a DROP EVENT E statement was applied to the database, recovery could have reported failed assertion 100904 (&quot;Failed to redo a database operation ... Event E in use&quot;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_69.htm#CR574920">574920</a></td>
<td>A client side backup of a database with a path and filename length greater than 69 bytes in the client character set, could have failed or truncated the filename. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR574929">574929</a></td>
<td>When an UltraLiteJ client did a ping-only synchronization to a MobiLink server, the authenticate_user connection event was not fired. This has been fixed. A work around is to sync a single table (download only) with a different script version, where that script does not have any upload or download scripts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575116">575116</a></td>
<td>The changes for Engineering case 569934 enhanced performance for directory access queries of the form:</p>
<p>				SELECT [...,]contents[,...] FROM dir_table WHERE [...AND] file_name=[string|variable] [AND...]</p>
<p>				These quesries now execute much faster as the &quot;file_name=&quot; predicate evaluation is now pushed down into the directory access server. Unfortunately, if the &quot;file_name=&quot; was specified as a fully qualified reference as in &quot;dir_table.file_name=&quot;, then the predicate would not have been pushed down. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575121">575121</a></td>
<td>n exceptionally rare circumstances, the server may have crashed when using user-defined data types with a DEFAULT clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575142">575142</a></td>
<td>Invalid metadata could have been constructed for a UNION DISTINCT operation. The Interactive SQL utility uses this metadata for display purposes when connected to an UltraLite database. This could have resulted in abnormal terminations for statements such as: &quot;SELECT 1 UNION DISTINCT SELECT 2&quot;. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575149">575149</a></td>
<td>The changes made for Engineering case 556453 introduced a bug that caused the Interactive SQL utility (dbisql) to crash when attempting to edit a DATE value in a result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575181">575181</a></td>
<td>If an UltraLite application had more than one open table or result set, and an attempt was made to execute the SQL SYNCHRONIZE statement, the UltraLite runtime would have returned the error SQLE_SCHEMA_UPGRADE_NOT_ALLOWED (-953). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575323">575323</a></td>
<td>When executing a query that referenced a proxy table in another SQL Anywhere database, and made use of the newid(), strtouuid() or uuidtostr() system functions, it may have executed much slower than expected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575325">575325</a></td>
<td>When doing concurrent database operations during a synchronization, uploaded LONG VARCHAR or LONG BINARY columns could have been corrupted in the consolidated database. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575490">575490</a></td>
<td>Wide-fetching a query that referenced a proxy table could have returned the last row multiple times, instead of returning no rows and the SQLE_NOTFOUND warning. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575493">575493</a></td>
<td>The Unload Database or Upgrade Database wizards in the UltraLite plugin for Sybase Central could have failed if the XML file was located in a path that contained spaces. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575495">575495</a></td>
<td>When an INSERT or UPDATE was pending upload on a row, and there was a no-sync DELETE on the same row, there may have been a row left in the row page store for the table after the clean-up that is done after a successfull upload. </p>
<p>				Had Index Persistence been turned off for the database and a row with the same primary key been inserted or downloaded afterwards, there would have been a primary key violation the next time the database was shutdown and re-connected to. </p>
<p>				Also, primary key violations could have occurred on databases with Index Persistence tuirned off after error recovery from failed synchronizations.</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575516">575516</a></td>
<td>When editing a Synchronization Model, deleting the &quot;timestamp column name&quot; (or another text box&#39;s contents) and then trying to switch to another Synchroniation Model without saving changes, would have caused an error to occur. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575517">575517</a></td>
<td>When using the Table Mapping editor, changed the sorting order of table mappings in the GUI may have displayed a prompt to save the model, even though no changes were made. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575538">575538</a></td>
<td>When the Relay Server Outbound Enabler&#39;s attempts to re-establish its channels to a Relay Server failed (for example, RelayServer still down), it could have occasionally quit further attempts. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575539">575539</a></td>
<td>If the Relay Server Outbound Enabler (RSOE) was connected to an Apache RelayServer, and then RSHOST was shutdown through a command line (rshost -s), then this would have caused the RSOE&#39;s up channel to enter a loop and issue an &quot;Invalid opcode!&quot; error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575556">575556</a></td>
<td>Executing queries with full outer joins or Transact SQL outer joins could have caused the server to crash, or behave unexpectedly, if a CONTAINS clause was present in the same query block as the join. This has been fixed.</p>
<p>				Note, with Transact SQL outer joins, a CONTAINS clause is permitted only in the WHERE clause, and can only reference the preserved side of the join, not the null-supplying side.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575755">575755</a></td>
<td>The Maintenance Release and EBF installs were not correctly updating the product version number in the .NET configuration file &#39;machine.config&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575760">575760</a></td>
<td>When there is only one connection, the maximum number of prefetch rows has been increased to 10000. If there is more than one connection, the maximum number of prefetch rows remains unchanged at 1000.</p>
<p>				Performance may improve when all of the following conditions are met:</p>
<p>				- an application has only one connection</p>
<p>				- fetching a result set with many thousands of rows</p>
<p>				- each row in the result set has small number of columns</p>
<p>				- the data size of the fetched columns is small</p>
<p>				- prefetch is enabled</p>
<p>				- the connection is over TCP/IP (shared memory connections are not likely to see a significant performance improvement)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575782">575782</a></td>
<td>Under certain rare circumstance, a mirror server may have crashed on shutdown when processing a transaction log rename request. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575783">575783</a></td>
<td>When adding a SQL Anywhere resource to the SQL Anywhere Monitor, it was possible for the authorization dialog could have appeared twice. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575787">575787</a></td>
<td>The transaction log on the mirror server in a mirroring system may have become corrupt under rare circumstances. One example would be the mirror server processing a log rename request when the primary server disconnects. Should corruption occur, the database on the mirror server would have failed to start with the error &quot;Can&#39;t use log file since it is shorter than expected.&quot; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575790">575790</a></td>
<td>If an application connected using the iAnywhere JDBC driver and fetched a large number of numeric values, then the fetch could have taken a long time. The iAnywhere JDBC driver has now been improved to fetch numeric values in a much quicker fashion if the numeric column has a precision that is less than or equal to 18 and a scale of 0. No performance improvements have been made if the scale is nonzero or if the scale is zero but the precision is greater than 18.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR575983">575983</a></td>
<td>When editing a DATE or TIMESTAMP value in a result set, the editor would not have accepted dates in the ISO format (YYYY-MM-DD). This has been corrected so that the ISO format is now accepted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576008">576008</a></td>
<td>If a query contained a LIKE predicate with a non-string value (Integer, Date, etc.), then it was possible for the predicate to evaluate a little more slowly than it could have. The non-string value was converted to NCHAR before the comparison, and this imposed additional overhead that was not present in previous versions. It is equivalent and faster to perform the comparison using VARCHAR, which is now how the comparison is done.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576009">576009</a></td>
<td>The size of the stack used by some database server threads was not governed by the -gs and -gss server command line options. Some of these threads used stacks that were excessively large (1MB) for a CE environment, and could have lead to problems loading DLL&#39;s on some CE systems. These stack sizes have been reduced to 64K or less. The default stack size for request tasks is unchanged at 96K. Some versions did not allow a -gss value of less than 96K, but now values as low as 64K are permitted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576016">576016</a></td>
<td>Use of the &quot;-f&quot; command line option did not behave consistently when the fast launcher option was on. It would work correctly the first time, but subsequently running &quot;dbisql -f filename&quot; with a different file, would have opened the first file again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576120">576120</a></td>
<td>The MobiLink server would have reported [-10001] &#39;Protocol error&#39; during synchronizations, if a DROP INDEX had been issued against the UltraLite remote database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576213">576213</a></td>
<td>If a SELECT statement included an alias specified as a single-quoted string, and the string contained a double quote or backslash, a syntax error should have been given, but was not. This has been fixed; an error will be reported in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576252">576252</a></td>
<td>Support for SQL Anywhere Explorer and SQL Anywhere Toolbar has been disabled for Visual Studio 2010. They still support Visual Studio versions 2005 and 2008.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576257">576257</a></td>
<td>Changes have been made to the iAnywhere JDBC driver in order to improve fetch times for Date, Time and Timestamp values. Applications that are fetching a large number of Date, Time and/or timestamp values from the same ResultSet object, will now see a large improvement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576263">576263</a></td>
<td>If the CREATE DATABASE statement was used to create a database with a filename that contained a \n (for example CREATE DATABASE &#39;c:\\new.db&#39;), the file_name column in the SYSFILE system table could have been incorrect. An incorrect file_name value would only have occurred if the CREATE DATABASE statement was issued when connected to a database other than the utility_db. This has been fixed.</p>
<p>				Note, this problem did not affect the Initialization utility (dbinit), or applications calling the dbtools library.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576447">576447</a></td>
<td>The SQL Anywhere Python support module (sqlanydb.py) did not set the rowcount attribute for UPDATE, INSERT or DELETE statements. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576448">576448</a></td>
<td>When run on Unix systems, if the redirector was configured to route to more than one backend, and one of the backend servers went down, the redirector could have failed to route requests to the live backend. In this case, the redirector would have added the error message &quot;No machine is available to handle request&quot; to the error log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576500">576500</a></td>
<td>When a Synchronization Model was being generated for a MySQL database, columns that had been defined as nchar and nvarchar in the MySQL database, would have been mapped as char and varchar in the Synchronization Model. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576501">576501</a></td>
<td>If a Synchronization Model had a table mapping that was upload-only or download-only, then attempting to synchronize would have caused a warning that some scripts were missing. This has ben fixed by generating ignored scripts for the unneeded upload or download scripts, which suppressed the warnings. A workaround is to disable the warning, or create dummy scripts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576669">576669</a></td>
<td>Executions of a BACKUP DATABASE TO ... archive backup statement, using the &quot;with checkpoint log no copy&quot; clause, would have been slower than necessary, particularly when the transaction log file was large. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576689">576689</a></td>
<td>SQL Anywhere HTTP client procedures defined with a PROXY clause would have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576709">576709</a></td>
<td>A mirror transaction log file could have become corrupted after the file was grown. The error received would have been &quot;Error: Cannot open transaction log file -- &lt;mirror file name&gt; is an invalid transaction log mirror.&quot; The server was failing to update the mirror log file size at the appropriate time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR576913">576913</a></td>
<td>If an application executed a remote query that must be handled in NO PASSTHRU mode, and the query contained many tables, then it was possible for the server to fail assertion 101508, instead of giving the &quot;syntactic limit exceeded&quot; error. This problem has now been fixed, and the error is now properly returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577092">577092</a></td>
<td>Previously, the SQL Anywhere Python driver (sqlanydb.py) raised an OperationalError for all database errors. The driver now raises an IntegrityError for the following SQLCODEs:</p>
<p>				SQLCODE Error</p>
<p>				-193 Primary key for table &#39;%1&#39; is not unique : Primary key value (&#39;%2&#39;)</p>
<p>				-194 No primary key value for foreign key &#39;%1&#39; in table &#39;%2&#39; </p>
<p>				-195 Column &#39;%1&#39; in table &#39;%2&#39; cannot be NULL</p>
<p>				-196 Index &#39;%1&#39; for table &#39;%2&#39; would not be unique</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577109">577109</a></td>
<td>If an application maked use of the Java in the database feature, and a JAVA stored procedure wrapper was defined such that the number of SQL arguments in the stored procedure was greater than the number of arguments defined in the Java method signature, then calling the Java stored procedure may have crashed the server. This problem has now been fixed, and a Java signature mismatch error will now be returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577129">577129</a></td>
<td>On some Linux distributions (eg Suse 11), the server may have taken an exceedingly long time to write out a mini-core dump. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577142">577142</a></td>
<td>The MobiLink server would not have skipped a script that was defined to be ignored, if the script contained white space (spaces, tabs, and/or line-breaks) before the special prefix, &#39;--{ml_ignore}&#39;. This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577297">577297</a></td>
<td>If a procedure was used in the FROM clause of a query, it was possible for the server to crash if the procedure result set had a particular form. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577321">577321</a></td>
<td>The MobiLink server with messaging (-m command line option) could have crash when used with an ASE 12.5.3 consolidated database server and the ASE ODBC driver version 15.0.0.140. This problem was introduced by the changes for Engineering case 560045, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577334">577334</a></td>
<td>When using the SQL Anwhere C API (drivers for PHP, Perl, Python, and Ruby), applications executing RAISERROR with a user-defined error, would have seen the correct error code returned, but the error message was returned as &quot;Unknown error&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577512">577512</a></td>
<td>Sybase Central plugins for Ultralite &amp; QAnywhere were not being registered when deployed by the Deployment wizard. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577532">577532</a></td>
<td>An application running under a Java VM in server mode, and fetching a large result set, will now retrieve the result set much faster.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577548">577548</a></td>
<td>It was possible for the server to apply stale values in an UPDATE statement if concurrent requests issued UPDATE statements at isolation level 0 or 1. This would occur with particular timing when the UPDATE statements did not bypass the query optimizer, and neither UPDATE statement contained a join, or a subquery converted to a join. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577714">577714</a></td>
<td>The ADO.Net sample program LinqSample was not working correctly. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577928">577928</a></td>
<td>It was possible for the server to crash when executing an UPDATE or DELETE statement for particular execution plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577932">577932</a></td>
<td>When deploying SQL Anywhere using the Deployment wizard, the PHP Extenv DLLs were being deployed (php-&lt;PHP version&gt;_sqlanywhere_extenv11.dll), but not the PHP SQL Anywhere DLLs (php-&lt;PHP_version&gt;_sqlanywhere.dll). These have now been added to the list of files deployed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577938">577938</a></td>
<td>Sybase Central could have occasionally reported an internal error on startup, when the Fast Launcher option was turned on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577974">577974</a></td>
<td>Using an ADO.NET Entity Data Model object with an ASP.NET Web Site project did not work correctly. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR577984">577984</a></td>
<td>When the Relay Server Outbound Enabler (rsoe) was shutdown, the message &quot;&lt;UpChannel-xxxx&gt; networkRead: interrupted error errCode: 218, sysCode: 0&quot; was written to the log file. This is a lower level error indicating the blocking read operation had been interrupted. This error message is redundant and confusing, and has been removed. An informational message will still be printed at a higher level.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578001">578001</a></td>
<td>If an ODBC escape sequence was used that was preceded by a keyword, it was mangled by the Interactive SQL utility. The first and last characters were stripped off. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578130">578130</a></td>
<td>If LOAD TABLE, or OPENSTRING were used, and all of the following conditions were true:</p>
<p>				- ENCODING &#39;UTF-8&#39; was specified</p>
<p>				- the destination table has both CHAR and NCHAR columns</p>
<p>				- the CHAR encoding was not UTF-8</p>
<p>				- file data that was destined for a CHAR column contained illegal characters or characters which could not be converted losslessly to the CHAR encoding</p>
<p>				the server could have crashed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578153">578153</a></td>
<td>If a database created with a version 9 or earlier server was backed up via the Backup utility (dbbackup), or the BACKUP DATABASE statement, the backup copy could not have been unloaded using the Unload utility from version 10 or later. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578172">578172</a></td>
<td>Calls to the methods SADataReader and SADataAdapter would not have returned any data for temporary tables. An AutoCommit when opening a data reader would have dropped temporary tables. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578191">578191</a></td>
<td>If a server had request-level logging enabled (eg -zr sql command line option) while the stored procedure debugger was being used (ie Sybase Central was in &quot;Debug mode&quot;), the server could have crashed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578292">578292</a></td>
<td>If a scheduled event was defined, and the event made a CLR external environment call, then the server&#39;s, and the CLR external environment&#39;s, memory usage would have continued to grow in size with each execution of the event. Note that this problem was specific to the CLR external environment. The problem has now been fixed such that the server will now grow and shrink as needed, and the CLR external environment will shrink whenever garbage collection kicks in.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578346">578346</a></td>
<td>On parallel systems, highly concurrent (tens of connections) temporary table modifications are now faster.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578365">578365</a></td>
<td>In extremely rare circumstances, the internal representation of the lower bound of an index scan could have become corrupted for servers run on 32 bit systems. The problem could have manifested itself in many ways, although the most likely would have been an incorrect result set being returned. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578385">578385</a></td>
<td>Following an initial install of version 11.0.1, the installer would have left incorrect information as to the version of the documentation that was installed, 11.0.0 instead of 11.0.1. Any method of checking for documentation updates, via the web page, at the end of install, using dbsupport, or using the Admin Tools, would then have used the incorrect version. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578401">578401</a></td>
<td>The iAnywhere Solutions ODBC driver for Oracle could have held the socket descriptor and service handle, even when the database connection had been disconnected. This could have resulted in the driver running out of service handles with the following error: &quot;ORA-12519: TNS:no appropriate service handler found&quot;. The OCI function, OCIServerDetach, was missing in the logoff function. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578612">578612</a></td>
<td>An INSERT statement, with a VALUES clause containing subquery expressions, could have caused a crash. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578616">578616</a></td>
<td>If a server had a large number of connections making external environment calls, to the same database-scoped external environment, and the external environment process crashed due to heavy load, out of memory or some other reason, then there was a small chance the server would also have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578617">578617</a></td>
<td>On Unix systems, an ANSI-only (no wide call support) ODBC driver is now available. The name of the driver is libdbodbcansi11_r. Only a threaded variant is provided. On Mac OS X, in addition to the dylib, the driver is also available in bundle form (dbodbcansi11_r.bundle). Certain frameworks, such as Real Basic, do not work with the dylib and require the bundle. The regular SQL Anywhere ODBC driver treats SQLWCHAR strings as UTF-16 strings. Starting in SQL Anywhere 10, when Unicode support in the Unix ODBC drivers was first introduced, the driver could not have been used with some ODBC driver managers, such as iODBC, which treated SQLWCHAR strings as UTF-32 strings. When dealing with Unicode-enabled drivers, these driver managers would translate narrow calls from the application to wide calls into the driver. An ANSI-only driver gets around this </p>
<p>				behaviour, allowing the driver to be used with such driver managers, as long as the application does not make any wide calls. Wide calls through iODBC, or any other driver manager with similar semantics, remain unsupported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578636">578636</a></td>
<td>Support has now been added for the SQL statements CREATE PUBLICATION, ALTER PUBLICATION and DROP PUBLICATION. This change also includes support for publication predicates.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578818">578818</a></td>
<td>A busy server could have crashed, or given an error, when updating a text index defined with the IMMEDIATE REFRESH clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578859">578859</a></td>
<td>The GUI launchers for the 11.0.1 Administration Tools no longer worked after Java for Mac OS X v10.5 Update 4 was installed. The following error messages would have appeared in the logs:</p>
<p>				[JavaAppLauncher Warning] Java application launched from PPC or bad stub. Relaunching in 32-bit, and tagging sub-processes to prefer 32-bit with $JAVA_ARCH=i386.</p>
<p>				[JavaAppLauncher Error] This process is [i386] and was re-exec&#39;d from [i386], but for some reason we are trying re-exec to [].</p>
<p>				[JavaAppLauncher Error] unable to find a version of Java to launch</p>
<p>				This has been fixed.</p>
<p>				There are two workarounds:</p>
<p>				1. Use the command line launchers instead of the GUI launchers.</p>
<p>				2. Run the following from a terminal:</p>
<p>				. &lt;SQL Anywhere 11 Installation Directory&gt;/System/bin64/sa_config.sh</p>
<p>				for TOOL in DBConsole.app InteractiveSQL.app MobiLinkMonitor.app </p>
<p>				SybaseCentral.app ; do chmod +w &quot;$SQLANY11/../$TOOL/Contents/MacOS/ </p>
<p>				JavaApplicationStub&quot; ; cp /System/Library/Frameworks/JavaVM.framework/ </p>
<p>				Versions/A/Resources/MacOS/JavaApplicationStub64 &quot;$SQLANY11/../$TOOL/ </p>
<p>				Contents/MacOS/JavaApplicationStub&quot; ; done</p>
<p>				Note, the portion of the script from &quot;for&quot; to &quot;done&quot; should be one single line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578933">578933</a></td>
<td>The FORWARD TO statement could have truncated the forwarded statements to roughly a database page size in length. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578975">578975</a></td>
<td>Under certain conditions, it was possible for the server to hang when performing operations with long strings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578990">578990</a></td>
<td>If an application called DatabaseMetaData.getSystemFunctions(), the string returned would have contained the functions named dbname and username. The correct function names are database and user. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR578998">578998</a></td>
<td>When an application connected using the iAnywhere JDBC driver and attempted to describe the metadata of a table or result set that contained a char column, the metadata would have returned the type name of the column as Char, but the SQL type would still have come back as Types.VARCHAR. If a JDBC application wanted to get the JDBC driver to return the SQL type of Char columns as Types.CHAR, then the application was required to set the &quot;odbc_distinguish_char_and_varchar&quot; database option. As of SQL Anywhere 12 the new SQL Anywhere JDBC driver, and the deprecated iAnywhere JDBC driver, now return the type name Char and SQL type Types.CHAR for table and result set columns of type Char, and the typename Varchar and the SQL type Types.VARCHAR for columns of type Varchar, regardless of the database option setting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579018">579018</a></td>
<td>If an application created a proxy table and specified the remote owner in the location clause, then attempting to access the proxy table would have failed with a syntax error if the remote owner name was a keyword. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579150">579150</a></td>
<td>The server may have crashed if a statement that referenced a proxy table was very complex and used alias names that depended on many other alias names. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579215">579215</a></td>
<td>The SQL Anywhere Python driver (sqlanydb.py) would have failed to load on Mac OS X systems as a result of failing to load the SQL Anywhere C API runtime library. The driver was looking for dbcapi.dll or libdbcapi_r.so, whereas on Mac OS X the file name is libdbcapi_r.dylib. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579219">579219</a></td>
<td>Calling the function SQLGetInfo() function with the SQL_SQL92_STRING_FUNCTIONS information type returns a bitmask indicating which SQL 92 functions are supported by the database server.</p>
<p>				The following bits should not be returned:</p>
<p>				SQL_SSF_CONVERT</p>
<p>				SQL_SSF_SUBSTRING</p>
<p>				SQL_SSF_TRIM_BOTH </p>
<p>				SQL_SSF_TRIM_LEADING</p>
<p>				SQL_SSF_TRIM_TRAILING</p>
<p>				as SQL Anywhere does not support the above SQL 92 functions (e.g., SELECT TRIM(BOTH &#39; &#39; FROM &#39; abc &#39;).</p>
<p>				Only the following following bits should be returned.</p>
<p>				SQL_SSF_LOWER</p>
<p>				SQL_SSF_UPPER</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579233">579233</a></td>
<td>When using the SQL Anywhere Python database interface (sqlanydb.py) the Cursor.rowcount attribute value was inaccurate under when calling executemany. The rowcount attribute was set to the number of rows affected/returned by the last execute in the series. This has been fixed. The rowcount attribute will now contain the sum of the row counts of the executes (or -1 if unknown).</p>
<p>				Also, when the server returned an estimated, rather than an exact row count, Cursor.rowcount was set to a negative number, the absolute value of which was the estimate. Cursor.rowcount will now be set to -1 in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579404">579404</a></td>
<td>If MobiLick Client (dbmlsync) had been running as a server, and a client application had executed the ShutdownServer() method, the exit code from the dbmlsync executable would have been EXIT_FAIL, which indicated a general failure. This would also have resulted in the progress message text changing to &quot;Synchronization Failed&quot; on shutdown, although it was difficult to see on a desktop system. The dbmlsync executable now returns EXIT_OKAY in this situation, which also results in the progress message text changing to &quot;Synchronization Succeeded&quot; on shutdown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579816">579816</a></td>
<td>A new connection parameter has been added to the ODBC driver. This parameter (ESCAPE) allows you to specify the escape character used in the LIKE clause of SQL statements generated by the ODBC driver when returning a list of tables or columns.</p>
<p>				By default the ODBC driver uses the tilde character (~), but some applications do not properly query the ODBC driver to see what escape character is used, and assume that it is the backslash character (\). With this new connection parameter, users can specify the escape character in the connection string to make these applications work properly.</p>
<p>				&quot;DSN=My Datasource;UID=xxx;PWD=xxx;ESCAPE=\;ENG=myserver&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579826">579826</a></td>
<td>It was possible for an INSERT statement to fail with an inappropriate error &quot;Invalid host variable&quot;. This error could have been given if a wide insert was performed on a table, followed by a procedure or batch statement issuing an INSERT to the same table. This has been corrected.</p>
<p>				The problem can be avoided using &quot;options(force optimization)&quot; on the INSERT statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579837">579837</a></td>
<td>The iAnywhere Solutions Oracle ODBC driver could not recognize synonyms of stored procedures. Thus an application, such as the MobiLink server, that uses this driver was not able to execute procedure synonyms if the DSN used by the application was configured with the &quot;Procedure returns results&quot; check box checked. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579948">579948</a></td>
<td>The system procedure sa_index_density(), could have reported &#39;Cannot convert&#39; errors. This has been fixed by changing the datatypes of the result set columns &quot;density&quot; and &quot;skew&quot; from numeric(8,6) to double. As a result, the definition of the sa_index_density procedure in the database must be replaced for the fix to take effect. This can be accomplished by executing: ALTER DATABASE UPGRADE PROCEDURE ON</p>
<p>				A workaround is to rebuild the database prior to running sa_index_density. Re-creating or reorganizing the offending index may also be a workaround.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR579981">579981</a></td>
<td>The second argument for the system function get_identity() is the number of values to allocate. If this value was 0, the function did not adjust the next available value for the table. If no inserts into a table defined with a DEFAULT AUTOINCREMENT column had been made, get_identity(&#39;&lt;table-name&gt;&#39;,0) returned NULL. This has been fixed. A value of 1 will now be returned in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580004">580004</a></td>
<td>When describing arguments of a stored procedure called with non-positional arguments, no information was returned from the server.</p>
<p>				For example:</p>
<p>				CREATE PROCEDURE foo ( IN a INTEGER, OUT b INTEGER )</p>
<p>				BEGIN</p>
<p>				SET b = a * 2</p>
<p>				END</p>
<p>				No information was returned when describing input arguments for the statement &quot;call foo( b=?, a=?)&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580012">580012</a></td>
<td>The changes for Engineering case 576257 resulted in a substantial performance improvement within the iAnywhere JDBC driver when fetching a large number of Date, Time or Timestamp values. New changes, which build on these earlier changes, make fetching Date, Time and Timestamp values even faster, when using the iAnywhere JDBC driver.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580016">580016</a></td>
<td>Unexpected behavior could have occurred when IN predicates were used in subqueries in INSERT, UPDATE, and DELETE statements. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580057">580057</a></td>
<td>Using Sybase Central to triggering an event in a 9.x database, would have produced the error &quot;Procedure &#39;sa_conn_list&#39; not found&quot; after the event was triggered. This has</p>
<p>				been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580133">580133</a></td>
<td>The OUTPUT USING statement&#39;s ability to export results to Excel files has been improved:</p>
<p>				1. The CREATE TABLE ON clause is now supported. Previously, consistently creating tables was not possible, although exporting to existing tables worked.</p>
<p>				2. If the table name was quoted with backticks, the output operation would have failed. This has been fixed. </p>
<p>				3. The OUTPUT statement would not have worked at all if the USING clause contained &quot;driver=&quot; rather than &quot;dsn=&quot;. This has been fixed.</p>
<p>				4. Exporting a result set which contains primary key columns with the CREATE TABLE ON clause would have failed, as the Excel ODBC driver does not support the required SQL to designate primary keys. This limitation has now been worked around.</p>
<p>				For datatypes that the OUTPUT statement cannot handle, such as BINARY or LONG BINARY, the user must do the conversion to a supported type explicitly. Note that the Interactive SQL utility in version 10 and earlier did allow exporting BINARY columns, although it simply treated bytes as characters when it wrote them to the Excel file. It&#39;s unclear whether that was a &quot;good thing&quot; in general. To emulate that behavior in now, use the following:</p>
<p>				SELECT ID, Name, Description, Size, Color, Quantity, </p>
<p>				UnitPrice, CAST(Photo AS LONG VARCHAR )</p>
<p>				FROM Products; </p>
<p>				OUTPUT USING &#39;DSN=MyEXCELDSN&#39; INTO tabProducts CREATE TABLE ON</p>
<p>				Also note that the Microsoft Excel ODBC driver treats the file as read-only by default. To write to the file, turn off the &quot;Read only&quot; flag in the DSN or, if not using a DSN, include &quot;ReadOnly=0&quot; as a connection parameter in the OUTPUT statement.</p>
<p>				For example:</p>
<p>				SELECT * FROM Departments;</p>
<p>				OUTPUT USING &#39;Driver=Microsoft Excel Driver (*.xls);</p>
<p>				dbq=c:\test\test.xls;ReadOnly=0&#39;</p>
<p>				INTO Departments CREATE TABLE ON</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580146">580146</a></td>
<td>If an application attempted to drop a user that had externlogins defined, then the server would have given an error indicating that externlogins were defined. The server behaviour has now been changed to quietly drop externlogins as part of dropping a user.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580168">580168</a></td>
<td>When a NUMERIC or DECIMAL column with precision greater than 47 was fetched using OLE DB, ODBC, or JDBC, a memory buffer overrun would have occurred. This would have resulted in a corrupted heap. The client application may then terminate unexpectedly due to the corrupted heap. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580174">580174</a></td>
<td>If an application using the iAnywhere JDBC driver, created a scrollable, updateable Statement or PreparedStatement, created a ResultSet object off of the Statement or PreparedStatement object, called ResultSet.updateRow() to perform a positioned update of a row in the ResultSet, and then positioned the ResultSet to a row before the updated row, attempting to call next() to go beyond the updated row would have failed. A similar problem exists if the application positions the ResultSet beyond the updated row and then tries to call previous(). Both problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580186">580186</a></td>
<td>An INSERT statement, with a VALUES clause containing subquery expressions, could have caused acrash. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580190">580190</a></td>
<td>If an error had occurred while the MobiLink client (dbmlsync) was applying a download, and there had also been referential integrity errors that dbmlsync could not resolve, then dbmlsync would have reported that the download had been committed, even though it had been rolled back. This has been corrected so that dbmlsync now correctly reports that the download was rolled back.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580191">580191</a></td>
<td>Spacy tokens need to be quoted with double quotes. If the quoted token further contains spacy sub token then nested double quotes are need, and they need to be escaped with escape sequence. This was not working correctly when used in a MobiLink Listener (dblsn) configuration file. For example:</p>
<p>				-l &quot;subject=$remote_id;</p>
<p>				content=sync cardealer;</p>
<p>				action=&#39;run dbmlsync.exe -c \&quot;filedsn=c:\my fdsns\CarDealer.dsn\&quot; -ot dbmlsync.log -k -e sa=on&#39;;&quot;</p>
<p>				This works correctly on the command line, because the tokenizer of the commandline processor in the OS supports escaping double quotes using a backslash, but using the same command in a configuration file would have failed. This problem has been fixed by improving the common configuration file parsing routine to support &lt;slash&gt;&lt;slash&gt; and &lt;slash&gt;&lt;double quote&gt; as escape sequences for &lt;slash&gt; and &lt;double quote&gt; respectively. The escape mechanism is effective only inside a quoted token.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580222">580222</a></td>
<td>If the MobiLink Server had been started with &quot;-s 1&quot; command line option, to indicate that the server should always apply changes to the consolidated database one row at a time, then the MobiLink Server would still have executed SAVEPOINT commands. SAVEPOINT commands are not needed when running in single row mode, so they are no longer executed when the MobiLink Server had been started with &quot;-s 1&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580353">580353</a></td>
<td>Queries with TOP or START AT clauses were incorrectly flagged with an error when they exceeded 64K. This restriction has now been removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_70.htm#CR580390">580390</a></td>
<td>If both a BEFORE UPDATE and a BEFORE UPDATE OF trigger were defined on the same table, and the BEFORE UPDATE OF trigger was not the first to fire when an update was performed using INSERT ... ON EXISTING UPDATE, then the BEFORE UPDATE OF trigger would not have fired at all. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580391">580391</a></td>
<td>The fix for Engineering case 529193 was not complete, which meant spurious referential integrity constraint violations could have been reported. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580538">580538</a></td>
<td>When connected to a slow server, immediately doing something to modify the contents of the &quot;SQL Statements&quot; field, would have cause the Interactive SQL utility to crash with the exception &quot;java.lang.IllegalStateException: Attempt to mutate in notification&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580569">580569</a></td>
<td>On some Linux systems, if the SQL Anywhere Monitor had been configured as a service to be started automatically after a reboot, monitoring could have failed. Automatic services wwere being installed with a priority &quot;09&quot;. Some distributions install the network service with priority &quot;10&quot; and the network service would not have started until after the SQL Anywhere services had started, which led to the failure. This has now been fixed.</p>
<p>				A workaround to correct this problem is to execute the following commands (requires administrator priviledges):</p>
<p>				/opt/samonitor11/bin32/samonitor.sh uninstall</p>
<p>				/opt/samonitor11/bin32/samonitor.sh install</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580574">580574</a></td>
<td>The Apache Redirector is now available for Apache 2.2 on Linux. The new file is named mod_iaredirect.so, and is located in &lt;install-dir&gt;/mobilink/redirector/apache/v22.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580590">580590</a></td>
<td>The SQL Anywhere Python Database interface now supports the ability to register callbacks to control how database types are mapped into Python objects when results are fetched from the database server. Callbacks are registered using the new module-level &quot;register_converter&quot; method. This method should be called with the database type as the first parameter, and the conversion function as the second parameter. For example, to request that sqlanydb.py create Decimal objects for data in any column described as having type DT_DECIMAL:</p>
<p>				import sqlanydb</p>
<p>				import decimal</p>
<p>				def convert_to_decimal(num):</p>
<p>				return decimal.Decimal(num)</p>
<p>				sqlanydb.register_converter(sqlanydb.DT_DECIMAL, convert_to_decimal)</p>
<p>				Converters may be registered for the following database types:</p>
<p>				DT_DATE</p>
<p>				DT_TIME</p>
<p>				DT_TIMESTAMP</p>
<p>				DT_VARCHAR</p>
<p>				DT_FIXCHAR</p>
<p>				DT_LONGVARCHAR</p>
<p>				DT_STRING</p>
<p>				DT_DOUBLE</p>
<p>				DT_FLOAT</p>
<p>				DT_DECIMAL</p>
<p>				DT_INT</p>
<p>				DT_SMALLINT</p>
<p>				DT_BINARY</p>
<p>				DT_LONGBINARY</p>
<p>				DT_TINYINT</p>
<p>				DT_BIGINT</p>
<p>				DT_UNSINT</p>
<p>				DT_UNSSMALLINT</p>
<p>				DT_UNSBIGINT</p>
<p>				DT_BIT</p>
<p>				DT_LONGNVARCHAR</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580598">580598</a></td>
<td>Tools such as the Data Source utility (dbdsn), which need to run as an elevate process to perform privileged operations on Windows Server 2008 R2, failed to do so and would have reported errors when run in an unelevated command shell. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580599">580599</a></td>
<td>The SQL Anywhere JDBC driver getTimeDateFunctions() call did not return the correct names for the CURRENT_DATE, CURRENT_TIME, and CURRENT_TIMESTAMP functions. It returned &quot;current date,current time,current timestamp&quot; instead of &quot;current_date,current_time,current_timestamp&quot;. The same problem also existed in the iAnywhere JDBC driver. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580607">580607</a></td>
<td>User Impersonation on IIS caused Win32Exception &quot;Access is denied&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580636">580636</a></td>
<td>The Relay Server can be started automatically by the first Relay Server Outbound Enabler (RSOE) connection, but the connection may have failed within 1.5 seconds if the Selay Server&#39;s configuration file was too big. Thhe Relay Server will eventually have finished starting, but the RSOE would not have attempted to reconnect to the Relay Server. This has been fixed by allowing 15 seconds for the Relay Server to startup before giving up the the RSOE connection. RSOE reconnect attempts will be fixed in a separate issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580647">580647</a></td>
<td>Setting a TIME column from a java.util.Date, with only time information filled in, could have failed with the Java 2 Micro Edition (J2ME). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580735">580735</a></td>
<td>In rare circumstances, transaction log corruption could have occurred, or the server could have haved assertion 100918 (&#39;Invalid redo log page header&#39;), shortly after restarting a database. The probability of this happening on any given database restart was approximately 1/pagesize (ie. for 4K pages, the probability is approximately 0.0002). The corruption was likely to go undetected, and the assertion was unlikely to fire in most cases. However, sites using Mobilink or SQL Remote would have been alerted to the presence of such corruption by errors occurring during synchronization. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580743">580743</a></td>
<td>Editing a table on the &quot;Data&quot; tab in Sybase Central, or in the &quot;Results&quot; panel of the Interactive SQL utility, could have left the table locked until the tool disconnected from the database. The table lock could in turn have prevented other operations in Sybase Central from completing (e.g. the Unload Database wizard in the SQL Anywhere plug-in, or the Deploy wizard in the MobiLink plug-in). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580744">580744</a></td>
<td>When applying a software update (EBF), the attempt to migrate data from an old SQL Anywhere Monitor database to a new SQL Anywhere Monitor database could have failed with an &quot;Authentication Error&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580772">580772</a></td>
<td>Executing a remote query that involved the use of the ROWID() function, where the table specified to ROWID was a remote table, would very likely have caused the server to crash when the query was processed in partial passthru,. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580773">580773</a></td>
<td>The server could have hang in some very rare circumstances, when there was considerable temporary file growth. This has now been fixed. A workaround is to pre-grow the temporary file using the ALTER DBSPACE statement, or to create a DiskSpace event to periodically grow the temporary file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR580788">580788</a></td>
<td>The EBF installers for Linux are now capable of installing FIPS components. To initially install the components, the setup script must be invoked with the -regkey (alias -k) command line option, and be passed a registration key that entitles the installation of the FIPS componenents.</p>
<p>				e.g., ./setup -k &lt;FIPS registration key&gt;</p>
<p>				or ./setup -regkey &lt;FIPS registration key&gt;</p>
<p>				It is not possible to specify the registration key through the EBF Installer UI itself. Subsequent invocations of the EBF install will then update previously installed FIPS components without needing to specify a registration key.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581029">581029</a></td>
<td>The fix for Engineering case 571029 would have caused the Interactive SQL utility to give an &quot;optional feature not implemented&quot; error when exporting data to Excel. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581032">581032</a></td>
<td>The result set returned by the system procedure sp_sproc_columns() has been changed to include information about parameter modes. The &quot;column_type&quot; column was previously an integer value and was always 0. Now it is a varchar(5), with values &#39;IN&#39;, &#39;OUT&#39; or &#39;INOUT&#39;. Also, for functions, the column_name will be returned as @RETURN_VALUE for the function return value; a row for this value was not previously returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581036">581036</a></td>
<td>Sybase Central running on Windows systems with the zh_HK locale would have defaulted to zh_CN instead of EN. This occurred because jdk1.6 added a new country code for Hong Kong.</p>
<p>				The problem hass now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581046">581046</a></td>
<td>A procedure with the statement</p>
<p>				MESSAGE ... FOR CONNECTION ... IMMEDIATE </p>
<p>				did not contain the IMMEDIATE clause in the stored definition of the procedure. This has been fixed. A workaround is to execute the MESSAGE statement using EXECUTE IMMEDIATE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581050">581050</a></td>
<td>Under certain circumstance, execution of a MERGE statement could have caused the server to raise assertion 100905 (&quot;Articles on the table use do not match those on the table&quot;). The server will now execute the statement correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581249">581249</a></td>
<td>If an application attempted to create a proxy table using the CREATE EXISTING TABLE statement, and the remote server specified in the location clause does not exist, then the server may have given a strange syntax error instead of giving the &quot;remote server not found&quot; error. This problem has now been fixed and the proper error will now always get returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581269">581269</a></td>
<td>There were no implementations for the datatypes LONG BINARY and LONG VARCHAR. These have now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581403">581403</a></td>
<td>It is now possible to specify the ESCAPE connection parameter in the &quot;Connect&quot; dialog when connecting to SQL Anywhere servers.</p>
<p>				Note, this new feature is actually available for use with all the graphical administration tools.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581417">581417</a></td>
<td>Light weight polling against a secondary MobiLink server that is in a MobiLink server farm, may have failed. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581426">581426</a></td>
<td>When the number of concurrent synchronizations was greater than the maximum number of concurrent active synchronizations specified by the -sm command line option, the MobiLink server would have quietly rejected any synchronization requests without showing any error or warning messages. This has been fixed. The MobiLink server will now issue the following warning message: </p>
<p>				[10101] Synchronization request from client &#39;?&#39; was rejected</p>
<p>				where ? is the rejected remote ID. A more complete description of this warning code can be found in the documentation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581454">581454</a></td>
<td>The following improvements/fixes have been made related to exporting data from a SQL Anywhere database to Excel files, via the Microsoft Excel ODBC driver:</p>
<p>				1. Attempting to export CHAR, LONG VARCHAR, NCHAR, NVARCHAR or LONG NVARCHAR values, would have failed with a message that the type was unsupported. Now, these types are mapped to VARCHAR (the closest type supported by the Excel driver).</p>
<p>				Note that the Excel ODBC driver only supports text column widths up to 255. Attempting to export longer values, will still get an error message. </p>
<p>				2. The driver portion of the OUTPUT USING string had to be specified as &quot;Driver=&quot; or &quot;driver=&quot;. Now, that part of the string is treated without respect to case, so &quot;DRIVER=&quot; is also accepted.</p>
<p>				3. REAL, FLOAT, and BIGINT values could not have been exported due to limitations in the Excel ODBC driver. These limitations have been worked around.</p>
<p>				4. Numbers that were not MONEY or SMALLMONEY were exported as CURRENCY (i.e. they were displayed with a dollar sign in the Excel spreadsheet). Now they are exported as numbers. MONEY and SMALLMONEY are still exported as CURRENCY.</p>
<p>				5. The Export Wizard would consistently have failed when exporting to tables it had to create. The error message was &quot;Syntax error in the CREATE TABLE statement&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581542">581542</a></td>
<td>If a database had a schema with a very large number of columnsa, it was possible that when dbxtract was run, that the select statement generated to extract the data from some of the tables would have used an incorrect column order. This would likely have resulted in the rebuild failing, since the data types of the columns in the new database would not match the data that have been extracted from the remote database. The problem has now been fixed.</p>
<p>				Note that this problem only affected dbxtract, and not dbunload.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581580">581580</a></td>
<td>The server may have crashed if a Transact SQL SELECT INTO statement referenced an OPENSTRING expression. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581586">581586</a></td>
<td>If the -dt server command line option was used to specify a directory where temporary files were to be created, the server did not use that location when attempting to clean up old temporary files previously left behind when a server did not shut down cleanly. This has been fixed.</p>
<p>				A workaround is to specify the temporary file location using one of the SATMP, TMP, TMPDIR or TEMP environment variables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581613">581613</a></td>
<td>When deploying a Synchronization Model that added a timestamp column to a MySQL consolidated table for timestamp-based downloads, existing rows would never have been downloaded because of MySQL bug #17392. This bug caused the new timestamp column to have values of 0, instead of the column default. A would around for this problem has been implemented. An UPDATE statement is now generated to follow the generated ALTER TABLE statement that adds the timestamp row.</p>
<p>				A manual workaround is to update the timestamp column for each row where it is zero, after the column is added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581622">581622</a></td>
<td>If multiple Java classes, or external environment objects, were selected in the right pane and File -&gt; Print... was select from the menu, then multiple Print dialogs would have been shown. Now a single Print dialog is shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581709">581709</a></td>
<td>During optimization process, the SQL Anywhere Optimizer optimizes subqueries by considering different alternative strategies for computing the result of the subquery. During othis process, the optimizer doesn&#39;t perform any transformations which correspond to each alternative subquery strategies. Instead, the estimated costs of different strategies are used to decide which execution technique will be executed for this SQL statement in the final access plan. The final best access plan is built to reflect the execution strategy chosen for the subquery. In certain cases, when WINDOW subquery strategy was chosen (see Strategy 4 and Strategy 5 below) the final best access plan was missing the rowid expression of the table pushed into the derived table (in the example below, the rowid of the table &quot;sales_order_items soi&quot; from the main query block). This has been fixed.</p>
<p>				For example:</p>
<p>				The subquery optimization process supported by the SQL Anywhere Optimizer since version 9.0, is described in the patent [1]. The example below illustrates the five execution strategies considered during the optimization process for a SQL statement using a grouped subquery. This issue is related to a bug introduced in version 10.0.0 when two rowids must be built for each base table to support Snapshot isolation. The bug would have manifest itself if and only if Window Strategy 4 or Window Strategy 5 was chosen in the best access plan. </p>
<p>				[1] System and Methodology for Cost-based Subquery Optimization Using a Left Deep Tree Join Enumeration Algorithm&quot;, Anisoara Nica, US Patent 20040220923, awarded August 2009</p>
<p>				Original query Q0:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, sales_order_items soi, product p</p>
<p>				WHERE </p>
<p>				so.id = soi.id</p>
<p>				AND soi.prod_id = p.id</p>
<p>				AND p.quantity = (SELECT max(soi1.quantity) FROM sales_order_items soi1 WHERE soi1.prod_id = p.id )</p>
<p>				SQL Anywhere Optimizer subquery execution strategy 1, Q1, evaluate subquery as an expression:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, sales_order_items soi, product p</p>
<p>				WHERE </p>
<p>				so.id = soi.id</p>
<p>				AND soi.prod_id = p.id</p>
<p>				AND p.quantity = (SELECT max(soi1.quantity) FROM sales_order_items soi1 WHERE soi1.prod_id = p.id )</p>
<p>				SQL Anywhere Optimizer subquery execution strategy 2, Q2, evaluate subquery as an uncorrelated derived table:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, sales_order_items soi, product p,</p>
<p>				(SELECT max(soi1.quantity), soi1.prod_id FROM sales_order_items soi1 GROUP BY soi1.prod_id ) as DT2 (max, prod_id)</p>
<p>				WHERE </p>
<p>				so.id = soi.id</p>
<p>				AND soi.prod_id = p.id</p>
<p>				AND p.quantity = DT2.max AND p.id = DT2.prod_id </p>
<p>				SQL Anywhere Optimizer subquery execution strategy 3, Q3, evaluate subquery as a derived table with Bloom-filter predicates:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, sales_order_items soi, product p,</p>
<p>				(SELECT max(soi1.quantity), soi1.prod_id FROM sales_order_items soi1 WHERE soi1.prod_id IN Bloom-filter( p.id) GROUP BY soi1.prod_id ) as DT3 (max, prod_id)</p>
<p>				WHERE </p>
<p>				so.id = soi.id</p>
<p>				AND soi.prod_id = p.id</p>
<p>				AND p.quantity = DT3.max AND p.id = DT3.prod_id </p>
<p>				SQL Anywhere Optimizer subquery execution strategy 4, Q4, evaluate subquery as an uncorrelated derived table with WINDOW functions:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, product p, //// &lt;&lt;-- NOTE that &quot;sales_order_items soi&quot; was moved inside to the DT4</p>
<p>				(SELECT max(soi1.quantity) OVER (PARTITION BY soi1.prod_id ), soi1.prod_id, soi1.id FROM sales_order_items soi1 ) as DT4 (max, prod_id, id)</p>
<p>				WHERE </p>
<p>				so.id = DT4.id</p>
<p>				AND DT4.prod_id = p.id</p>
<p>				AND p.quantity = DT4.max AND p.id = DT4.prod_id </p>
<p>				SQL Anywhere Optimizer subquery execution strategy 5, Q5, evaluate subquery as a derived table with WINDOW functions, with Bloom-filter predicates:</p>
<p>				SELECT so.id, so.order_date, p.*</p>
<p>				FROM sales_order so, product p, //// &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;------------------------------------------NOTE that &quot;sales_order_items soi&quot; was moved inside to the DT5</p>
<p>				(SELECT max(soi1.quantity) OVER (PARTITION BY soi1.prod_id ), soi1.prod_id, soi1.id WHERE soi1.prod_id IN Bloom-filter( p.id) FROM sales_order_items soi1 ) as DT5 (max, prod_id, id)</p>
<p>				WHERE </p>
<p>				so.id = DT5.id</p>
<p>				AND DT5.prod_id = p.id</p>
<p>				AND p.quantity = DT5.max AND p.id = DT5.prod_id</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581747">581747</a></td>
<td>If a statement of the form &quot;SELECT columns FROM table WHERE index_col = value&quot; was opened more than once by a connection, an OPEN or CLOSE request could have failed with one of the following errors: &quot;Cursor already open&quot;, &quot;Cursor has not been declared&quot;, or &quot;Cursor not open&quot;. The statement must have only involved one table, and the where clause must have had one or more predicates of the form col = value which can all be satisfied by one index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581752">581752</a></td>
<td>If the mirror server in a mirroring system failed to start (e.g. due to a TCPIP port conflict), it could have crashed when shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581755">581755</a></td>
<td>An undocumented feature could have prevented a MobiLink server from starting when multiple MobiLink servers were trying to start at the same time, against the same consolidated database. The error displayed would have been:</p>
<p>				&lt;main&gt; [-10002] Consolidated database server or ODBC error: ODBC:</p>
<p>				[Sybase][ODBC Driver][SQL Anywhere]Primary key for table &#39;ml_property&#39; is not unique:</p>
<p>				Primary key value(&quot;&#39;ML&#39;,&#39;server_info&#39;,&#39;release_version&#39;&#39;&quot;)</p>
<p>				(ODBC State = 23000, Native error code = -193)</p>
<p>				when the consolidated database was running on a SQL Anywhere server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581768">581768</a></td>
<td>If the SQL Anywhere Monitor could not send an email alert, a generic &quot;Email server for alerts not configured&quot; alert was raised. This alert has been replaced by a new &quot;Could not send email&quot; alert which includes more descriptive error messages. This was done in an effort to provide more clues for diagnosing issues with email alerts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581793">581793</a></td>
<td>If a SQL_NUMERIC or SQL_DECIMAL value had a precision sufficiently greater than the bound precision, then an internal buffer would have been overrun. For example, if a bound column was defined as DECIMAL(10,2), and the precision described by the input SQL_NUMERIC_STRUCT parameter value was 40, then an internal buffer would have been overrun. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581829">581829</a></td>
<td>The MobiLink Listener (dblsn)would have failed to query an optimal polling interval from secondary MobiLink servers, as the primary notifier was not broadcasting the polling interval to secondary servers. This affected a light weight poller dblsn, but not application using the light weight poller API directly. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581830">581830</a></td>
<td>The implementations of CreationParms::AddRef and CreationParms::Release, contained confusing casting. Both methods cast the POD object to a ConnectionParms object, which has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581957">581957</a></td>
<td>The database option, divide_by_zero_erro, was removed in version 11.0.0. It has now been re-instated. The default setting for the option is On (as it was in version 10), which gives the same behavior as before this change, i.e. an attempt to cause division by zero results in an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581958">581958</a></td>
<td>When monitoring several resources, there was a chance that the SQL Anywhere Monitor could have failed with an &#39;Out of Memory&#39; Exception. The frequency of this error was dependent on the machine the SQL Anywhere Monitor is running. Also, Linux machines would have seen this error slightly more often than Windows machines. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581979">581979</a></td>
<td>Retrieving property(&#39;Platform&#39;) on a system running Windows 2008 R2 RC3, would have returned &quot;Windows7&quot;. This has been fixed, the property now returns &quot;Windows2008R2&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581980">581980</a></td>
<td>If an application executed a statement of the form:</p>
<p>				SELECT ... INTO LOCAL TEMPORARY TABLE localtemptab FROM extenv_proc()</p>
<p>				where extenv_proc() was an external environment procedure that returned a result set, then the SELECT ... INTO statement would have succeeded, but attempting to subsequently access the newly created localtemptab would have resulted in a &#39;table not found&#39; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581986">581986</a></td>
<td>Executing certain illegal operations on catalog tables could have caused the server to crash after the statement was rejected with an appropriate error. This has been fixed so that the server now works correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581990">581990</a></td>
<td>The ODBC function SQLTables() can be used to get a list of all schemas (users) by calling the function with the SQL_ALL_SCHEMAS argument. The list of users returned by this function only included users that owned a table. In a newly initialized database, this excluded some users, and in particular the DBA user. Now the complete list of schemas is returned, including those that do not own a table.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR581991">581991</a></td>
<td>In some cases it was possible for a database to become corrupted if the last write to disk was only partial completed, due to a power loss before the write to disk finished. This would have been extremely rare on a desktop machine or laptop using a conventional disk, but would have been much more likely with flash memory on handheld devices. In either case, corruption was more likely if the database file was encrypted. In order to prevent this corruption it is necessary to change the physical format of the database file. With this change in file format, the database should automatically recover from a partial write.</p>
<p>				WARNING: When choosing to use a database with the new file format described below you give up the ability of being able to use older software that is not aware of the file format change. Therefore, once you create this database you will not be able to start an old server with such a database file. Any attempt to start the server with a build prior to this fix will generate an error &quot;server must be upgraded to start &#39;database&#39; ( capability 37 missing)&quot;. Syntax has been added to dbinit and the create database statement to allow for the creation of databases with this new file format. In order to create a database with this new format, use either:</p>
<p>				- dbinit -xw mydb.db // -xw (creates a database with the new file format)</p>
<p>				- CREATE DATABASE mydb.db CAPABILITY &#39;TORNWRITEFIX&#39; ...</p>
<p>				Syntax has also been added to dbunload to rebuild databases so that the new database will be created with the new file format. In order to rebuild a database with the old format to one with the new format use:</p>
<p>				- dbunload.exe -c &#39;your connection string to your old db&#39; -xw -ar // this will replace your old database with a new one</p>
<p>				- dbunload.exe -c &#39;your connection string to your old db&#39; -xw -an new.db // this will create new.db in the new file format while maintaining your old database in the old file format</p>
<p>				NOTE: make sure to have a backup of your database file before attempting this. Also if your database is strongly encrypted then you&#39;ll need to provide the encryption key for both the old database and the new database file using the -ek command line parameter.</p>
<p>				In order to upgrade a database with this new file format from version 9 to version 10 or version 11 you&#39;ll need to use 10.0.1 3930 or greater or 11.0.1 2278 or greater.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582144">582144</a></td>
<td>There were no implementations for the datatypes LONG BINARY and LONG VARCHAR. These have now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582152">582152</a></td>
<td>When using the the SQL Preprocessor (sqlpp) command line tool to generate code for UltraLite, the -eu command line option was supposed to flag SQL that UltraLite cannot handle. When this option was on, the following UltraLite-supported statements would have been incorrectly flagged as Disallowed language extensions:</p>
<p>				CREATE SYNCHRONIZATION PROFILE ...</p>
<p>				ALTER SYNCHRONIZATION PROFILE ...</p>
<p>				DROP SYNCHRONIZATION PROFILE ...</p>
<p>				SYNCHRONIZE ...</p>
<p>				This has been corrected. The workaround is to not use the -eu command line option on SQLPP.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582186">582186</a></td>
<td>The &quot;View Data in Interactive SQL&quot; menu item was not always enabled or disabled appropriately. Specifically, for views owned by SYS, the menu item was disabled, rather than enabled; for invalid, disabled and uninitialized views, the menu item was enabled, rather than disabled. Now, the menu item is only enabled for non-materialized views which are valid, and materialized views which are both enabled and initialized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582405">582405</a></td>
<td>When processing a simple query that bypassed the query optimizer, in some cases it was possible for the server to crash if. This may have occurred when the query contained the SELECT TOP n clause, and &#39;n&#39; was was a host variable, rather than a literal constant. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582589">582589</a></td>
<td>If 10 MobiLink Monitors or SQL Anywhere Monitors connected to the same MobiLink server, and the last to connect then disconnected, then the MobiLink server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582756">582756</a></td>
<td>The changes for Engineering case 544187 caused the server to have a limited number of temporary files that it could create in the lifetime of the server process (64K on non-UNIX systems, 4G on UNIX systems). The problem would have shown up as an error writing to an invalid handle, and a fatal &quot;disk full&quot; error would have been reported. On Windows, the message in the server console would have looked like the following:</p>
<p>				A write failed with error code: (6), The handle is invalid. </p>
<p>				Fatal error: disk full when writing to &quot;???&quot; </p>
<p>				This problem has been fixed.</p>
<p>				A related problem was also fixed where failure to create a temporary file for the utility_db would have cause the server to crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582778">582778</a></td>
<td>Calling the system procedure sa_get_histogram(), which is used to obtain the current state of a histogram on a specified column, could have caused the server to deadlock. The probability of such a deadlock taking place was extremely low and depended upon a number of factors. This problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582782">582782</a></td>
<td>When a consolidated database was running on an Oracle RAC, the MobiLink server could have skipped rows being downloaded to remote databases in a time-based download. In the following situations, rows modified in the Oracle database could be missed from the download stream:</p>
<p>				1) the MobiLink server connected to one node on an Oracle RAC;</p>
<p>				2) another application, A connected to another node on the same Oracle RAC;</p>
<p>				3) application A modifies rows in a synchronization table without commit;</p>
<p>				4) a MobiLink client, R1 issues a synchronization request that contains a time-based download from this table;</p>
<p>				5) the MobiLink server completes the synchronization request successfully;</p>
<p>				6) A commits its transaction;</p>
<p>				Then the rows modified by application A would not be down loaded to remote R1. This problem has now been fixed.</p>
<p>				Note, as a result of this change, the Oracle account used by the MobiLink server must now have permission for the GV_$TRANSACTION Oracle system view instead of V_$TRANSACTION. Only SYS can grant this access. The Oracle syntax for granting this access is: </p>
<p>				grant select on SYS.GV_$TRANSACTION to &lt;user-name&gt;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582789">582789</a></td>
<td>The MobiLink server would still have tried to access the ml_scripts_modified table in the consolidated database, even when it was running with MSDTC on and its system objects were installed on an MLSD database specified by the -cs command line switch. This would then have resulted in the MobiLink server reporting the error message:</p>
<p>				Table &quot;ml_scripts_modified&quot; not found</p>
<p>				during each synchronization, when a pooled database connection was reused.This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582799">582799</a></td>
<td>The server could have crashed during a LOAD TABLE statement if the DEFAULTS ON clause was used, and a load-time error occurred when evaluating or assigning the default expression. This has been fixed.</p>
<p>				The workaround is to fix the column default definition so that no error occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR582808">582808</a></td>
<td>The Apply button on a property sheet could have become enabled even when no changes had been made on the property sheet. For this to have occurred, the property sheet had to contain a formatted text field or spinner control. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583189">583189</a></td>
<td>The server could have crashed in some circumstances after a table definition was </p>
<p>				reloaded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583194">583194</a></td>
<td>The QAnywhere Standalone Clients were not adhering to the synchronization policies as they are defined in the documentation. In several scenarios, the clients would trigger synchronizations even though the policy requirements were not satisfied, although it was never the case that a synchronizations didn&#39;t occur when one should have. This has been fixed so that the clients now synchronize only at the appropriate times as defined by the policies.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583241">583241</a></td>
<td>Under some specific circumstances, the server could have crashed while updating tables with triggers. This has been fixed so that execution of UPDATEs now takes place correctly.</p>
<p>				A workaround is to recreate the table under question.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583353">583353</a></td>
<td>The version of samonitor.sh included with the development version of the SQL Anywhere Monitor on Unix platforms provided a start() method to spawn the database server, but did not provide a stop() method to shut it down. This has been fixed.</p>
<p>				Note: if the desktop environment has a system tray supported by Java 1.6, it is possible to shut down the server monitor cleanly by right clicking on the SQL Anywhere Monitor logo and choosing &quot;Shutdown&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583380">583380</a></td>
<td>The server may have returned the error &quot;-890: Statement size or complexity exceeds server limits&quot;, or needed a very long time to complete, for very complex statements that used proxy tables and alias names that depend on many other alias names. During the Describe Output or Open of the statement, the server may have consumed a large amount of cache space and blocked other requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583393">583393</a></td>
<td>When right-clicking the SA Monitor tray icon and selecting &quot;Exit SQL Anywhere Monitor&quot;, nothing would happen. This problem has now been fixed, and the SQL Anywhere Monitor now shuts down as expected. This problem was introduced by the changes for Engineering case 575525.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR583560">583560</a></td>
<td>If an application that was connected to a local server, either via the SQL Anywhere ODBC driver or the iAnywhere JDBC driver, attempted to perform a wide or batched insert into a proxy table and the insert subsequently returned with a conversion or some other error part-way through the insert, then the rows leading up to the error would have been inserted into the proxy table twice. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584125">584125</a></td>
<td>Specifying an IPv6 address with a port number for the HOST option, eg. LINKS=tcpip(host=(&lt;ipv6 address&gt;):&lt;port&gt;) would give an SQLE_CONNECTION_ERROR (-832) with the text &quot;Unexpected error 10&quot; or &quot;Mismatched braces near &#39;???&#39;&quot;. This only happened when parentheses were used for both the TCP parameter and the HOST option. This has been fixed.</p>
<p>				As a workaround, use braces to specify the TCP options, eg. LINKS=tcpip{host=(&lt;ipv6 address&gt;):&lt;port&gt;}&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584152">584152</a></td>
<td>A statement-level &quot;after update of&quot; trigger would not have fired if the columns in the &quot;of&quot; list were modified by another trigger, but were not present in the set clause of the originating query. This has been fixed.</p>
<p>				Note, row level triggers do not have this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584304">584304</a></td>
<td>If an application executed an external environment procedure and subsequently canceled the external call, then all other external environment requests would have blocked until the external procedure being cancelled acknowledged the cancel request. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584310">584310</a></td>
<td>Download performance of the MobiLink server has been improved for tables that contain no BLOB columns, when the consolidated database is running on Microsoft SQL Server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584322">584322</a></td>
<td>The following new features have been added to the iAnywhere Solutions ODBC driver for Oracle:</p>
<p>				1) In order to determine if a stored procedure returns a result set, or if a procedure uses Oracle VARRAYs, the iAnywhere Solutions Oracle ODBC driver needs to describe the stored procedure through Oracle OCI functions. The driver now provides an extra connection parameter, ProcOwner (long form) or POwner (short form), which is used to by tyen driver to describe all the stored procedures invoked by the application. This parameter can be given as followis:</p>
<p>				-c &quot;uid=...;pwd=...;procowner=my_procedure_owner;...&quot;</p>
<p>				2) The iAnywhere Solutions ODBC driver for Oracle now supports VARRAYs used by packaged procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584327">584327</a></td>
<td>In some very rare cases, the SQL Anywhere Monitor could have caused a Java process to consume 100% of the CPU. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584466">584466</a></td>
<td>The server was only looking at the groups that a user was a direct member of when verifying authorities acquired via group inheritance. This has been corrected so that the server now checks for inheritable authorities through all group memberships, direct and indirect. For example, if &#39;group1&#39; is a member of &#39;group2&#39; and &#39;user1&#39; is member of &#39;group1&#39;, &#39;user1&#39; will obtain all inheritable authorities of group2 also.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584478">584478</a></td>
<td>BlackBerry devices with OS 4.2 or later, may now read and write UltraLiteJ databases to either the internal flash or the SD (media) Card, in addition to the previously supported persistent store. While the persistent object store of BlackBerry devices is faster, it has limited capacity and is shared with RAM and program storage. Newer devices such as the Bold, Storm and Tour have internal flash (Bold and Storm have almost 1GB) and many devices support SD Cards. Persistent store is 3-4 times faster than internal flash, and internal flash is faster than SD cards. Databases stored on internal flash (URIs begining with &quot;file:///store/&quot;) or media cards (&quot;file:///SDCard/&quot;) can keep more rows in memory, and/or use a bigger cache to improve performance.</p>
<p>				Databases names must follow the format for a fully qualified, absolute path file name as described in the file URL format as part of IETF RFCs 1738 and 2396. That RFC dictates that a file URL takes the form:</p>
<p>				file://&lt;host&gt;/&lt;path&gt;</p>
<p>				In the form above, &lt;host&gt; is the fully qualified domain name of the system on which the &lt;path&gt; is accessible, and &lt;path&gt; is a hierarchical directory path of the form:</p>
<p>				&lt;root&gt;/&lt;directory&gt;/&lt;directory&gt;/.../&lt;name&gt;.</p>
<p>				For BlackBerry devices, the internal flash is accessed using URIs starting with file:///store/ (case sensitive) while the SD media card is accessed using URIs starting with file:///SDCard/ (case sensitive). File paths are case insensitive except for the host portion which is case sensitive. Percent (%) characters have special meaning and relative paths (directories &quot;.&quot; and &quot;..&quot;) are not allowed. For more information on file name restrictions, please consult the BlackBerry JDE (4.2 or later) API Reference for the javax.microedition.io.file package.</p>
<p>				The following example creates a configuration for using the media card. The database is store in the directory &quot;ulj&quot; and is called &quot;test.ulj&quot;.</p>
<p>				// BlackBerry media card Sample - use file:///store/ulj/test.ulj</p>
<p>				// for internal flash</p>
<p>				Connection conn;</p>
<p>				ConfigFileME config = DatabaseManager.createConfigurationFileME(</p>
<p>				&quot;file:///SDCard/ulj/test.ulj&quot;</p>
<p>				);</p>
<p>				try {</p>
<p>				conn = DatabaseManager.connect(config);</p>
<p>				} catch(ULjException ex) {</p>
<p>				conn = DatabaseManager.createDatabase(config);</p>
<p>				// Create the schema here.</p>
<p>				}</p>
<p>				To maintain support for BlackBerry 4.1 devices, a new distribution directory UltraLite\UltraLiteJ\BlackBerry4.2 has been added which contains files for 4.2 or later devices. BlackBerry 4.1 devices and simulators should continue to use the UltraLite\UltraLiteJ\J2meRIM11files. BlackBerry 4.2 and later devices can use either distribution if they do not require SD card or internal flash storage.</p>
<p>				The UltraLiteJ Database Transfer tool has not been updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584486">584486</a></td>
<td>Unloading a SELECT statement into a compressed variable could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584512">584512</a></td>
<td>When validating databases, using the VALIDATE DATABASE statement or the Validation utility &#39;dbvalid -d&#39;), spurious errors could have been reported under rare circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584517">584517</a></td>
<td>When validating a database, either using the VALIDATE DATABASE statement, or with the Validate utility (dbvalid -d), an error would not have been reported if a transaction log page was encountered in the database file. This has been fixed.</p>
<p>				Note, this situation would have been due to file corruption on the disk. Transaction log pages are not stored within the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584691">584691</a></td>
<td>A new &quot;IF NOT EXISTS&quot; clause can now be optionally specified in CREATE TABLE, CREATE INDEX, and CREATE PUBLICATION statements. If this clause is present, and the object named in the statement already exists, then executing the statement will not modify the database and no error will be returned.</p>
<p>				The complete syntax for the new clause in the various statements are:</p>
<p>				- CREATE TABLE [IF NOT EXISTS] table-name (...)</p>
<p>				- CREATE [UNIQUE] INDEX [IF NOT EXISTS] index-name ...</p>
<p>				- CREATE PUBLICATION [IF NOT EXISTS] publication-name ...</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584721">584721</a></td>
<td>When using the SQL Anywhere C API, no error information was returned when a connection attempt failed. This problem was introduced as part of a previous fix to dbcapi, and has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584722">584722</a></td>
<td>When installing EBFs on Unix systems, the installer would not have applied the updates if the destination directory included spaces. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR584873">584873</a></td>
<td>If the QAnywhere Agent for Ultralite was running using the automatic policy, and a message was sent during a loss of communication with the QAnywhere server, then the message would not have been sent upon re-establishing communication. This has now been fixed so that and unsent messages will be sent shortly after that connection is re-established.</p>
<p>				A workaround for this problem is to perform an action that will trigger a </p>
<p>				synchronization (eg. send another message, call triggerSendReceive, etc.)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585013">585013</a></td>
<td>If an application executed Connection.prepareStatement(), or Connection.prepareCall(), on one connection, and the prepare request took a long time, then attempting to execute Connection.createStatement(), Connection.prepareStatement(), or Connection.prepareCall() on a different connection would have ended up blocking until the original prepare returned. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585015">585015</a></td>
<td>Exporting numeric values to an Excel spreadsheet would have failed when running the Interactive SQL utility on Windows systems which were configured to use something other than a period for the decimal separator in numbers. This has been fixed.</p>
<p>				Also, it is now possible to consistently export TIME, DATE, and TIMESTAMP values to Excel spreadsheets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585018">585018</a></td>
<td>Calling the function SetParameter(), could have caused the UltraLite runtime to crash when the database had no base tables. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585024">585024</a></td>
<td>When inserting or updating a row using a table on the &quot;Result&quot; tab, values read from a file were silently truncated at 1,000,000 characters. This limitation has been removed. </p>
<p>				Note, this bug affected both the Interactive SQL utility, and the &quot;Data&quot; tab in Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585030">585030</a></td>
<td>The &quot;C&quot; and &quot;P&quot; command line options for SQLPP cause the flagging of SQL syntax during precompilation. The use of &quot;C&quot; is to verify conformance to the core language features of a particular SQL standard, and &quot;P&quot; is to verify conformance to the complete ANSI language, as supported by SQL Anywhere, including optional packages. However, the use of &quot;P&quot; erroneously reported conformance for core language features only, duplicating the output generated by the use of &quot;C&quot;. This has been fixed. Using &quot;P&quot; now reports language conformance, including optional ANSI standard packages, as described in the documentation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585035">585035</a></td>
<td>The QAnywhere server could have stopped sending/receiving messages with an Enterprise Messaging Server, through its JMS connector, when a SQLException was thrown by the JDBC driver. This has been fixed.</p>
<p>				Where possible, the QAnywhere server should recover gracefully from exceptions thrown by the JDBC driver and continue processing messages.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585046">585046</a></td>
<td>Consider an UltraLite database with a table as follows:</p>
<p>				CREATE TABLE tbl1(a INTEGER, PRIMARY KEY (a))</p>
<p>				INSERT INTO tbl1 VALUES (10000000)</p>
<p>				Fetching the results using the Interactive SQL utility (dbisql) in command-line mode as follows:</p>
<p>				dbisql -ul -c &quot;uid=dba;pwd=sql;dbf=c:\temp\test.udb&quot; select a from tbl1</p>
<p>				would have returned the value 1000. The value was truncated in the display, and was only an issue when displaying the results to the command shell. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585056">585056</a></td>
<td>If the database option Escape_character was set to OFF, attempting to change a user&#39;s password via the NEWPWD connection string parameter would have failed silently. This has been fixed. A workaround is to leave the escape_character setting at its default (ON).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585077">585077</a></td>
<td>The Database Transfer utility would have failed to transfer some databases. After establishing the connection, the utility would have immediately finished the transfer, and the progress bar on the client would still have indicated 0%. The log on the desktop utility would have shown a negative value for chunks of data expected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585258">585258</a></td>
<td>The MobiLink server would not have shown any script contents, if the scripts were written in Java or .NET, even when the verbose option (-vc) was specified in its command line. This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585282">585282</a></td>
<td>If an application connected via Open Client or jConnect, and requested a packet size greater than 512 bytes, the SQL Anywhere server would have restricted the packet size to a maximum of 512 bytes. This restriction has now been relaxed such that the maximum Open Client or jConnect packet size is now 4096 bytes for a version 11.0.1 or above server, and 1024 bytes for a version 10.0.1 server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585306">585306</a></td>
<td>Reading a blob (long binary) value from the database would have taken 7 times longer than it did to write the blob (as tested on a BlackBerry Bold). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585456">585456</a></td>
<td>The queue lengths in the Utilization Graph of the MobiLink Monitor could have been incorrect and the RAW_TCP_STAGE_LEN, STREAM_STAGE_LEN, HEARTBEAT_STAGE_LEN, CMD_PROCESSOR_STAGE_LEN metrics printed by the -ppv option could also have been incorrect. These issues have now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585530">585530</a></td>
<td>The changes for Engineering case 568426 broke the Table and View permissions grid support for 9.x databases. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585713">585713</a></td>
<td>Under rare circumstances, the server may have hung when run on Solaris systems. This was more likely to have occurred on machines with greater parallelism (e.g., Niagara chips) under a highly concurrent load. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585735">585735</a></td>
<td>For some queries, a result set row could have indicated that a column value was not null, even if the value is null. Retrieving this value could then have returned misleading, or invalid data. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR585979">585979</a></td>
<td>Using the BCP utility to insert data into a table could have failed with a protocol error, if the version of Open Client that BCP used was older. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR586180">586180</a></td>
<td>Under certain circumstances, the server could have failed an assertion, or crashed, while </p>
<p>				processing queries containing large strings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR586188">586188</a></td>
<td>Opening the Events folder could have caused a &quot;Can&#39;t decode condition name&quot; error if an event was created via Interactive SQL utility, instead of via Sybase Central. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_71.htm#CR586217">586217</a></td>
<td>Methods in the SADataReader clase could have returned an incorrect fraction for datetime and time columns. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586362">586362</a></td>
<td>If an application made use of a global temporary table in an external environment via a server-side connection, then there was a chance that the server may have failed an assertion, hung, or crashed, when the application connection closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586414">586414</a></td>
<td>When running the Interactive SQL utility in a command window, if the output was redirected to a file, and the &quot;-q&quot; command line option was not specified, error messages would not have been displayed in the command window. This was a problem because the user had to press ENTER to continue the script, but the message saying to do that was redirected to the file. This has been corrected spo that the error output is now sent to the STDERR device, which is displayed in the console .</p>
<p>				To workaround this problem, use the &quot;-q&quot; command line option. That will print the error message in the console and will not prompt the user to press a key to continue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586427">586427</a></td>
<td>A typo in the message displayed when connecting to an unsupported database type has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586596">586596</a></td>
<td>The SQL Anywhere server allows specification of the isolation level for a query as part of query text via the OPTION clause. This specification is valid only for the current statement and is meant to override other specifications of isolation level, e.g., those provided by the setting for the database option isolation_level, and cursor flags provided by the application at PREPARE and OPEN times.</p>
<p>				The server failed to honour the per statement specification for isolation level and used instead other specifications. This problem has been resolved. Now the isolation level specified in the query text is given the highest precedence.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586604">586604</a></td>
<td>On Solaris systems, if the directory /usr/ucb precedes /bin and /usr/bin in the PATH, the installer could have failed. Fixed by prepending /bin and /usr/bin to our local copy of PATH.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586629">586629</a></td>
<td>OPENXML namespaces may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586829">586829</a></td>
<td>UPDATE and DELETE statements could have acquired intent locks on tables that were not modified by the statement, possibly introducing concurrency or deadlock problems to an existing application. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586837">586837</a></td>
<td>On Unix systems, the 64-bit server may have failed to start when the virtual memory user limit (ulimit -v) was low relative to the sum of the physical memory and swap space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR586868">586868</a></td>
<td>When using SMTP to send email alerts, an incorrect error message could have been reported when an error occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587028">587028</a></td>
<td>The fix for Engineering case 581991 could have inadvertently turned on the feature for a new database architecture even if it was not requested. This has now been fixed. This could only have affected a database that was created using 9.0.2 build 3867-3880 or 10.0.1 build 3930-3948. The query:</p>
<p>				select * from sa_db_properties() where propname = &#39;HasTornWriteFix&#39;;</p>
<p>				can be used to determine if the setting is ON or OFF. Turning the setting OFF requires a rebuild of the database using an engine with this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587036">587036</a></td>
<td>If a LONG VARCHAR column containing multi-byte data was fetched by the OLE DB provider, the resulting string may have contained appended null characters. As a result, the Length attribute of the string (e.g., strTxt.Length) may have been larger than expected. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587040">587040</a></td>
<td>If the SQL Anywhere Monitor encountered an internal error and attempted to restart data collection, there was a chance that data collection would not have restarted correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587193">587193</a></td>
<td>Under certain circumstances, the server could failed an assertion, or crashed, while </p>
<p>				processing queries containing large strings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587214">587214</a></td>
<td>When HTTP client debugging was turned on, calling the HTTP client procedure would have resulted in a request time-out. This problem was introduced by the changes made for Engineering case 565244, and would have occurred when client logging was initiated, either with the -zoc command line option, or by calling the system procedure sa_server_option(), to set the &#39;WebClientLogFile&#39; file name. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587246">587246</a></td>
<td>If a synchronization model was created that contained mappings with errors, and then the mappings were deleted or disableds, the sync model could still not have been deployed. The workarounds to this were to either recreate or enable the mapping, or manually edit the sync model file and remove the scripts with errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587256">587256</a></td>
<td>If a database with a foreign key declared as &quot;NOT NULL&quot; was unloaded or rebuilt, the resulting reload.sql or database contained the foreign key without &quot;NOT NULL&quot; declared. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587308">587308</a></td>
<td>The UltraLiteJ runtime would have crashed if a SQL statement had too many terms (exceeding 150). UltraLiteJ used a fixed size stack to store the tokens of the statement when parsing it. The problem has now been resolved by growing the stack when necessary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587396">587396</a></td>
<td>If two or more connections, or two or more events, that made CLR calls closed or completed simultaneously, then there was a chance the CLR external environment may have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587402">587402</a></td>
<td>If an application made an external environment call, and another connection that also made an external environment call closes at the exact same time, then there was a very small chance that the server would have incorrectly returned a thread deadlock error, rather than allowing the external environment call to go through. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587404">587404</a></td>
<td>If an application made repeated calls to the CLR external environment, then the CLR environment (not the server) would have leaked memory. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587429">587429</a></td>
<td>No limit on the size of a CONTAINS query was imposed. This has been fixed.</p>
<p>				After this change, a CONTAINS query cannot contain more than 300 valid terms (terms that are not in the STOPLIST</p>
<p>				and are within permitted term length range).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587671">587671</a></td>
<td>The server may have crashed when trying to find matching materialized view candidates. This would have happened when a materialized view candidate had a very complex SELECT clause, and the server was close to stack overflow or had too little cache space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587699">587699</a></td>
<td>If the DBTools function DBSynchronizeLog() was called when no callback routines (errorrtn, msgrtn, warningrtn, logrtn, progress_msg_rtn, progress_index_rtn, msgqueuertn, confirmrtn) were defined, it would have crashed. This problem has been fixed. It is no longer necessary to define all callback routines.</p>
<p>				A workaround is to define each of the callback routines. Example:</p>
<p>				a_sync_db sync;</p>
<p>				.</p>
<p>				.</p>
<p>				.</p>
<p>				sync.confirmrtn = (MSG_CALLBACK) ConfirmCallback;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587795">587795</a></td>
<td>Updates or deletes to temporary tables may have caused the engine to crash if the temporary file had corrupted pages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587856">587856</a></td>
<td>An application that was connected via jConnect or Open Client, that attempted to insert or retrieve a date value prior to January 1,1753, would have been incorrectly received an invalid date value error for the insert, and would have been returned the date January 1, 1753 for the fetch. This problem has now been fixed. Note that application must use newer versions of jConnect or Open Client in order to get date support for dates prior to January 1, 1753. Also, the restriction of January 1, 1753 using jConnect or Open Client still exists for datetime values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587873">587873</a></td>
<td>If an application made a CLR external environment call and then subsequently cancelled the CLR request, there was a chance that the CLR external environment would crash. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR587888">587888</a></td>
<td>Previously, if an application connected to a Web Edition server and attempted to make use of a directory access server, the Web Edition server would fail the request with a &quot;this server is not licensed to support the &#39;Remote Data Access&#39; feature&quot; error. This problem has now been fixed. Note that attempting to make use of other remote data access server classes will still give the &quot;not licensed&quot; error when the application is connected to a Web Edition server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588055">588055</a></td>
<td>When running the CREATE ENCRYPTED/DECRYPTED DATABASE &#39;&lt;newdb&gt;&#39; FROM &#39;&lt;sourcedb&gt;&#39; statement, if the transaction or mirror log name stored in the source database file was unqualified, we would have tried to locate it with respect to the engine&#39;s current working directory rather than the location of the database file.</p>
<p>				For example, if the engine was running in the directory /foo, the statement CREATE ENCRYPTED DATABASE &#39;new.db&#39; FROM &#39;/bar/source.db&#39; was issued, and the transaction log name stored in source.db was &#39;source.log,&#39; we would have tried to open /foo/source.log.</p>
<p>				If the current working directory had a version of the log file that was incompatible with the source database, the operation would fail. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588076">588076</a></td>
<td>If a proxy table existed in a case-sensitive database, and the proxy table had an index on it, unloading and reloading the database would have failed with the error &quot;Cannot create item (&lt;index_name&gt;) in the specified dbspace&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588253">588253</a></td>
<td>A database upgrade would not have added execute permissions to &quot;public&quot; on the recreated procedure sp_password. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588329">588329</a></td>
<td>If an application connected via jConnect used the method CallableStatement to execute a stored procedure, then there was a chance the connection would have terminated with a protocol error. This problem would only have occurred if the stored procedure had an argument named @p# where # was an integer between 0 and n-1 with n representing the number of arguments in the stored procedure. For example, if an application connected via jConnect used CallableStatement to execute a stored procedure named test, and if test had 3 arguments, and if one of the arguments in test was named @p0, @p1 or @p2, then the server would have dropped the connection with a protocol error. This problem has now been fixed. </p>
<p>				It should be noted that this problem does not affect applications using the iAnywhere JDBC driver.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588497">588497</a></td>
<td>Execution of the MERGE statement within SQL Anywhere could have caused the server to crash under some specific circumstances. This problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588498">588498</a></td>
<td>If a server attempted to abandon or cancel a request to start an external environment, due to the server being extremely busy or overloaded, then there was a very small chance the server would have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588499">588499</a></td>
<td>The server would have stopped the TCP listener and printed the message &quot;TCP Listener shutting down (130)&quot; to the console log, if it has accepted a new client connection but the client side has already gone. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588539">588539</a></td>
<td>If an application attempted to access a JDBC based Remote Data Access server, and the tsql_variables option was set to ON, then the server would have failed the request with a syntax error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588692">588692</a></td>
<td>On Unix systems, if the transaction log for a primary server was not located in </p>
<p>				the server&#39;s current working directory, and was renamed when the mirror server was unavailable and the primary server was restarted, synchronization would have failed when the mirror server then became available again. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588720">588720</a></td>
<td>If an application started Java, then subsequent connections to the server may have found that the option settings for date_format, time_format, timestamp_format and date_order were different than expected. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588740">588740</a></td>
<td>We learned that in the interest of improved performance, Microsoft Windows explicitly prevents certain documented methods of guaranteeing that data has been written to the physical storage medium from working on IDE/SATA/ATAPI drives (SCSI drives are unaffected). Recoverability after a power outage could be compromised. The database server now performs additional operations to flush data to disk to improve recoverability. In testing, there was no measurable performance degradation by this change.</p>
<p>				Relevant third-party articles: </p>
<p>				http://perspectives.mvdirona.com/2008/04/17/DisksLiesAndDamnDisks.aspx</p>
<p>				http://msdn.microsoft.com/en-us/library/dd979523%28VS.85%29.aspx</p>
<p>				http://research.microsoft.com/apps/pubs/default.aspx?id=70554</p>
<p>				http://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_frm/</p>
<p>				thread/4590ed3a4133828f/406cfb3a9deae044</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588917">588917</a></td>
<td>The policy file for .NET 2.0 was installed incorrectly. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588921">588921</a></td>
<td>If an application attempted to query a non-nullable bigint column from a proxy table, and the remote server class was asejdbc, then the request would have failed with a strange conversion error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588924">588924</a></td>
<td>If a timestamp column was defined with &quot;not null default [utc] timestamp&quot;, and an insert specified a null value for that column, then the insert would have failed with a SQL error. In version 9 and earlier, the insert used the default instead and did not fail. This behaviour has now been restored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588940">588940</a></td>
<td>When using the Import Wizard to import data from a file, if the file specified did not exist, an incomplete error message was displayed. This has been corrected so that the message is now complete.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR588950">588950</a></td>
<td>The Import Wizard could have crashed when clicking the Back button on the &quot;Where do you want to save the data&quot; page, if &quot;In an existing table&quot; was selected but no table was selected in the list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589219">589219</a></td>
<td>If many connections attempted to make CLR external environment calls simultaneously, then there was a chance that some of the requests would have failed with a strange unhandled exception error. These unhandled exception errors would come from the CLR external environment, and not from the server itself. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589236">589236</a></td>
<td>The MobiLink server could have crashed following a failed synchronization. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589406">589406</a></td>
<td>Creating a text configuration object, or creating a text index from a text configuration, did not qualify object names when they were logged in the transaction log. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589437">589437</a></td>
<td>A single-value SELECT could have produced incorrect results when the select list involved non-trivial expressions (such as function calls). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589624">589624</a></td>
<td>Some string operations, involving concatenation and substring on compressed columns, may have caused the fetch request to hang forever. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589646">589646</a></td>
<td>The number of bytes required to store a bitstring column value could have been under reported. This could then have potentially caused buffer overruns in client applications. This has been fixed so that the correct byte suze is now reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589655">589655</a></td>
<td>No limit on the size of a CONTAINS query was imposed. The query length was not checked, and number of terms was not counted. This could have lead to queries that would have taken very long to execute, or to server crashes. This has been fixed. Now, a CONTAINS query cannot contain more than 300 valid terms (terms that are not in the STOPLIST</p>
<p>				and are within permitted term length range).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589666">589666</a></td>
<td>When converting NUMERIC values to a VARCHAR, the server could have truncated the results when the precision of the NUMERIC value exceeded 30. This has been fixed by changing the conversion to produce a VARCHAR with size 2 plus the precision of the source NUMERIC value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589762">589762</a></td>
<td>The server would have crashed if the system functions db_property(&#39;LogFileFrangments&#39;) or sa_db_properties() were executed against the utility database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589802">589802</a></td>
<td>Applications would have been able to connect to a database using the database&#39;s alternate server name, and then create, stop, and drop other databases on the same server. This has been fixed, all of these operations are now disallowed when connected through an alternate server name.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589821">589821</a></td>
<td>If the remainder() function was used with DECIMAL arguments and the value of the second argument was zero, then NULL would have been returned and an error was not generated when the divide_by_zero_error option was set to On (the default value). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589829">589829</a></td>
<td>Selecting the Data tab for either an invalid or disabled view, or a disabled or truncated materialized view, would have caused Sybase Central to crash when attempting to recompile and/or refresh the view. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR589848">589848</a></td>
<td>SQL Anywhere server could have generated a spurious &quot;cardinality violation&quot; error when executing the MERGE statement if the statement being executed did not contain any WHEN MATCHED clauses, or none of the specified WHEN MATCHED clauses were unconditional, and there were at least two rows in the input data set that matched a single target row and don&#39;t qualify for any of the WHEN MATCHED clauses. This has been corrected so that the server will now silently ignore these duplicate rows instead of generating a cardinality violation error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590017">590017</a></td>
<td>When converting NUMERIC values to a VARCHAR, the server could have truncated the results when the precision of the NUMERIC value exceeded 30. This has been fixed by changing the conversion to produce a VARCHAR with size 2 plus the precision of the source NUMERIC value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590020">590020</a></td>
<td>When run on Unix systems, queries of the form &quot;SELECT ... FROM directory_access_table WHERE file_name=...&quot;, where directory_access_table was a proxy table to a directory access server, would have returned an empty result set. This problem would only have occurred if the server had been updated to include the fix for Engineering case 569934. This problem has now been fixed and the server will now properly return a result set.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590030">590030</a></td>
<td>A new &quot;OR REPLACE&quot; clause can now be optionally specified in the CREATE SYNCHRONIZATION PROFILE statement. If this clause is present, and the profile named in the statement already exists, then it will be replaced. Otherwise, it will be created.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590041">590041</a></td>
<td>If query optimization with matching materialized views generated an error while processing a materialized view candidate, the error was still returned to the application. For example, if a materialized view candidate contained additional tables for which the user did not have SELECT permissions, the error &quot;Permission denied: you do not have permission to select from &quot;tablename&quot; would have been returned. This has been fixed. Now, if an error is encountered while processing a materialized view candidate, the error is ignored and the view is not used in the view matching process.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590045">590045</a></td>
<td>When executing a SELECT DISTINCT query against a newly created table with no data, the runtime would have crashed with a NullPointerException. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590048">590048</a></td>
<td>The &quot;SYNCHRONIZE OFF&quot; table constraint in a CREATE TABLE statement may have failed when the same statement had column defaults specified as well. For example, the statement &quot;create table t ( id int primary key default autoincrement, c2 int, synchronize off)&quot; would have crashed the runtime. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590061">590061</a></td>
<td>If a MobiLink server had a connection from a MobiLink Monitor, or a SQL Anywhere Monitor, it could have hung while printing warning 10082, &quot;MobiLink server has swapped data pages to disk ... &quot;. This was due to a deadlock between the thread printing the warning and a thread sending a monitor event. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590098">590098</a></td>
<td>A server crash could have occurred while running the Index Consultant. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590156">590156</a></td>
<td>The server may have incorrectly rewritten WHERE, ON, or HAVING clauses, causing no rows, or too few rows, to be returned. This would have happened when the server found redundant conjuncts and try to remove them. This has been fixed.</p>
<p>				A sample of this type of query:</p>
<p>				select 1 from T</p>
<p>				where a = 1 and ( b = 2 or c = 8 ) and ( d = 4 or e = 10 )</p>
<p>				and ( a = 1 or e = 7 or c = 9 )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590210">590210</a></td>
<td>The SQL Anywhere OLE DB provider implementation of IMultipleResults::GetResult() returned an incorrect &#39;rows affected&#39; count for inserts, updates, and deletes. In this situation, the result returned by OleDbCommand.ExecuteNonQuery(), which called the GetResult() method, was -1. This problem has now been fixed to return the correct &#39;rows affected&#39; count.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590215">590215</a></td>
<td>Database corruption was possible in certain rare circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590243">590243</a></td>
<td>Sorting a list of messages on the &quot;Messages&quot; and &quot;Archived Messages&quot; tabs by the &quot;Status Time&quot; column, would not have sorted the messages correctly. The comparator for the date column had been based on the string representation of the date, rather than the date itself. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590374">590374</a></td>
<td>Calling the QAManager.close() method, immediately after receiving a message asynchronously, could have caused the manager to hang indefinitely. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590383">590383</a></td>
<td>On UNIX systems, there were directories left in the temporary directory, with names of the form __SQLAnyCli__X_Y, where X is a process number and Y is an alphanumeric number. This usually happened when a SQL Anywhere client application was terminated abnormally. An example of this was the PHP driver running within the Apache web server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590401">590401</a></td>
<td>If an application used a JDBC based Remote Data Access class, and the application subsequently changed the setting for quoted_identifier or ansinull, then the new setting would not get sent to the remote server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590468">590468</a></td>
<td>When opening a database&#39;s ER Diagram tab and creating, modifying or deleting a table or foreign key, the ER Diagram would not have been updated automatically. The ER Diagram tab had to be manually refreshed via View -&gt; Refresh Folder, or View -&gt; Refresh All, in order to see the changes. Now the ER diagram is kept up-to-date automatically.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590471">590471</a></td>
<td>When the set of tables shown in the ER Diagram was limited (by selecting File -&gt; Choose ER Diagram Tables...), and then subsequently renaming one the tables that had been selected in the Choose ER Diagram Tables dialog, the table would then no longer have appeared in the ER Diagram. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590569">590569</a></td>
<td>Only users with DBA authority should be able to execute COMMENT ON DBSPACE statements, but the server was failing to check for this permission. This has been fixed. The server now ensures that the user has DBA authority before executing a COMMENT ON DBSPACE statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590591">590591</a></td>
<td>If the server was started on Netware, and multiple connections that had made Java calls shut down at the same time, then there was a chance the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590602">590602</a></td>
<td>Executing a SQL statement, immediately followed by an OUTPUT statement and nothing else, would have cause an internal error if the &quot;Show separate Messages pane&quot; option was set on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590607">590607</a></td>
<td>Incorrect results may have been obtained for functions with a variable number of arguments, when NULL was specified as the first argument. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590633">590633</a></td>
<td>Symbols from the Dbmlsync C++ API could pollute the user&#39;s default namespace. These symbols are now segregated into their own namespace named &quot;DbmlsyncClient11&quot;. Existing Dbmlsync C++ API applications will still be able to compile without modification, since the dbmlsynccli.hpp header file now also includes &quot;using namespace DbmlsyncClient11&quot;. Those wishing to exclude the USING command, and be forced to reference the symbols using the namespace, can define a macro called MULTIPLE_DBMLSYNC_API_VERSIONS in their source code.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590692">590692</a></td>
<td>The server may have modified the wrong table when executing an UPDATE or DELETE on a view, if the view was specified in the FROM table-list as well. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590702">590702</a></td>
<td>In some cases, executing query plans with a HashGroupBy and a Distinct could have required up to twice as much CPU time than necessary. This has been fixed.</p>
<p>				The presence of this issue can be identified by examining a graphical plan with statistics. If the estimated number of rows coming out of a HashGroupBy or a Distinct is small (less than 100), and the actual number of rows is large (many thousands or more), the hash operator may be operating less efficiently than possible. The performance penalty for a query suffering from this problem is unlikely to exceed 100% (i.e twice as slow).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR590803">590803</a></td>
<td>When using the debugger in Sybase Central, sometimes a breakpoint was hit and the error &quot;The source code could not be displayed for the &lt;procedure/event/trigger&gt; because the database filter is excluding it.&quot; was incorrectly shown. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591001">591001</a></td>
<td>In very rare circumstances, the server may have crashed when it should have returned the sql error SQLSTATE_SYNTACTIC_LIMIT. This may have occurred when loading very compley view definitions, or executing a SELECT INTO into table statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591002">591002</a></td>
<td>The changes for Engineering case 582782 could have caused the MobiLink server to be much slower for small sync than servers without the fix. This problem would have occurred when a consolidated database was running on an Oracle RAC. The slowness is in the Oracle server: fetching the minimum starting time of the open transactions from gv$transaction can take as much as a couple of seconds and it is much slower than from v$transaction. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591061">591061</a></td>
<td>If a database had a partial write to the checkpoint log, then it was possible that database recovery could have failed in a case which was actually recoverable. This only affected encrypted databases. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591275">591275</a></td>
<td>The JDBC based Remote Data Access classes are generally not recommended due to their higher resource requirements and significantly lower performance, when compared to the ODBC based Remote Data Access classes. However, for those applications where an ODBC based Remote Data Access class is not an option, improvements have now been made to increase the performance of fetching results from a remote server using a JDBC based Remote Data Access class. Nevertheless, even with these performance improvements, the recommendation is still to use ODBC based Remote Data Access classes instead of the JDBC based classes whenever possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591301">591301</a></td>
<td>The server may have returned too many result rows if the query contained a DETWEEN predicate with constants, and a parallel index-only scan was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591546">591546</a></td>
<td>When the server executed a CREATE VIEW statement, and the view&#39;s SELECT statement referenced a materialized view that was not yet initialized, the statement would have failed with the error &quot;Cannot use materialized view &#39;viewname&#39; because </p>
<p>				it has not yet been initialized&quot;. The script generated by dbunload -n could have failed trying to recompile views. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591824">591824</a></td>
<td>When running on Windows Vista, menu items that toggle a property on or off would not always have shown the check mark next to the menu item&#39;s text. Similarly, menu items that choose a value from a mutually exclusive set of values would not always show a sphere next to the currently selected value. Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591832">591832</a></td>
<td>When using the debugger in the Sybase Central, a NullPointerException could have been thrown when leaving debugging mode. This would likely have occurred infrequently, but has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591833">591833</a></td>
<td>The ADO.NET provider could have failed to unpack and load dbdata.dll. A race condition has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR591837">591837</a></td>
<td>The Index Consultant in the Interactive SQL utility would have failed to process queries containing line-terminated comments (ie -- or //). This has been fixed.</p>
<p>				As a work around, removing the comments allowed the analysis to proceed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592018">592018</a></td>
<td>It was possible for the Interactive SQL utility (dbisql) to have crashed when clicking the File/New menu item, or by pressing CTRL+N, when connected to a database and the contents of a file was being displayed. The problem was timing dependent, and was more pronounced the longer the database latency was. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592035">592035</a></td>
<td>Clicking the &quot;Get Plan&quot; button in the Plan Viewer window could have caused the Interavtive SQL utility to crash if it, or another Plan Viewer window, was executing a statement at that time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592269">592269</a></td>
<td>Very large dates or timestamp values, such as &quot;9999-12-31&quot;, would not have synchronized. The synchronization would have failed, possibly due to the exception &quot;UltraLiteJ Error[-85]: Communication error Unexpected end of file from server&quot;, and the MobiLink sync log may have shown an error like &quot;[-10308] Upload data for column 15 of table &#39;SalesOrder_1_0_getlist&#39; is invalid&quot;; however the column identified was not the column causing the problem. It was also possible that no error was detected, but that subsequent columns may have been corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592421">592421</a></td>
<td>Executing the utility SASetupAspNet.exe would have caused an unhandled exception &quot;Could not load file or assembly iAnywhere.Data.SQLAnywhere&quot; to be thrown. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592425">592425</a></td>
<td>When the server starts, the port numbers on which the server is listening are displayed on the console, but only if they were not supplied on the command line (using the -x tcpip(port=xxx) switch). This has been fixed - the port numbers are now always displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592454">592454</a></td>
<td>If left running for a long time, there may be a gradual degradation in responsiveness of the SQL Anywhere Monitor. For this to have occurred, a SQL Anywhere resource would have had to be unavailable at the time the Monitor was started. The performance degradation would not normally have been noticeable until sufficient time had passed. There were no other visible symptoms of this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592467">592467</a></td>
<td>There was an arbitrary limit of 1000 on the number of messages which could be shown on the &quot;Messages&quot; or &quot;Archive Messages&quot; tabs for a message store. That limit has now been relaxed. If there is enough memory to display all the messages, they will be displayed. Under low memory conditions, only the last 1000 messages will be displayed, but a warning message will now be displayed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592589">592589</a></td>
<td>Some computed bitstring values (i.e. those produced as a result of a set_bit, &amp;, |, ^ or ~) might not have hashed properly. Operations that can hash bitstring values during their execution (for example, select distinct of a bit column) could have returned incorrect results. This has been fixed, but existing tables containing affected values will require an unload/reload. Alternatively, if c is an affected column in table t, &quot;update t set c = ~c&quot; can be run twice with a server containing the fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_72.htm#CR592638">592638</a></td>
<td>Some DELETE operations may corrupted the database. This occurred when a row was deleted from a multi-level index which was sufficienly full that no index-page reduction was required, and no subsequent operations modified the database page in question. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592670">592670</a></td>
<td>A connection failure could have occurred following an application crash. This would have occurred when there was an active temporary table and a commit or rollback had been executed following the first fetch using the temporary table. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592728">592728</a></td>
<td>The list of TCP/IP protocol options in the Connect dialog was incorrect. The list should not have contained the options &#39;TDS&#39; or &#39;BroadcastListener&#39;, and the option &#39;SendBufferSize&#39; was missing. These have been fixed.</p>
<p>				Note, these issues affected the Connect dialog when connecting to SQL Anywhere, regardless of which program was being used -- DBISQL, Sybase Central, or DBConsole.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592784">592784</a></td>
<td>Calls to the ODBC function SQLGetTypeInfo() always returned 0 in the CASE_SENSITIVE metadata column for the XML data type. For case-sensitive databases, string comparisions of columns and variables of type XML is case sensitive. Therefore, SQLGetTypeInfo() has been fixed to returned 1 in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592860">592860</a></td>
<td>On Unix systems, starting the server as a daemon could have hung if a fatal error occurred while starting up. This included Linux Standalone and Network services installed with the Service utility (dbsvc) as &#39;automatic on startup&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592873">592873</a></td>
<td>By specifying the primary key in a separate clause of the CREATE TABLE statement, the UltraLite runtime allowed tables to be created with Long column types (ie. BLOBS, CLOBS) as primary keys. </p>
<p>				For example: &#39;CREATE TABLE t1( v1 LONG VARCHAR, PRIMARY KEY(v1))&#39;</p>
<p>				The use of long datatypes in indexes is not supported by UltraLite, and inserting into the resulting table would have resulted in a crash. This has been corrected, long datatypes are now flagged as invalid when used in an index.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592887">592887</a></td>
<td>Some database corruptions could have caused the cleaner to attempt to reference pages beyond the end of the database. This situation is now caught, and the server will halt with assertion failure 201301.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592912">592912</a></td>
<td>In some cases, the database server was not able to fully recover from a crash, and displayed an assertion failure message. The server console would have shown that the server was able to recover the database, and a checkpoint was completed successfully, but then assertion failure 100920 was displayed: &quot;Transaction log page X is corrupted.&quot; This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592976">592976</a></td>
<td>When using the debugger in the Sybase Central, right-clicking in the Editor to show the popup menu would have make the cursor disappear. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR592981">592981</a></td>
<td>Generating SQL procedures using the iAnywhere WSDL compiler (WSDLC) may have failed if the target WSDL (Web Services Description Language) contained an operation with a message referencing a complex fault type. This has been fixed. Generating fault stubs for WSDLC -l sql ... is not supported. The fault message type is now ignored and the SQL for the SOAP procedure is generated as expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593118">593118</a></td>
<td>Only users with DBA authority should be able to reset a login policy, even if it is for themselves. The server was failing to check for this permission. This has been fixed. The server now ensures that only users with DBA authority can reset a login policy.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593120">593120</a></td>
<td>The QAnywhere server could have stopped sending and receiving messages with an Enterprise Messaging Server, through its JMS connector, when connectivity to the EMS was interrupted and subsequently restored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593135">593135</a></td>
<td>The server could have become deadlocked soon after starting a database. For this to have occurred, the database in question must have had a large dbspace, which must have been rapidly growing, and recent inserts and updates must either have failed, or have been undone by another transaction. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593143">593143</a></td>
<td>When running the database transfer tool on a BlackBerry Bold, the buttons were too small to display all text. Only the first character, plus some ellipses showed up on all buttons. This has been fixed.</p>
<p>				Now, all buttons display normally. However, the layout of the buttons is affected. They are aligned to the left, instead of in the center.</p>
<p>				After the fix, buttons on other models of the BlackBerry remain legible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593273">593273</a></td>
<td>The server could have crash when attempting to execute a statement having a WHERE clause with a disjunction on sargable predicates, such that each predicate can be used for a partial index scan. This has been fixed.</p>
<p>				For example:</p>
<p>				select * from R left outer join T where R.X = 10 OR R.Y = T.Y</p>
<p>				Both &quot;R.X = 10&quot; and &quot;R.Y = T.Y&quot; are sargable. An index must exist for on R&lt;X&gt; and R&lt;Y&gt;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593329">593329</a></td>
<td>When a database was run on a server started in &quot;in-memory&quot; mode (-im connand line option), and a checkpoint was performed during recovery, the server could have hung on shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593334">593334</a></td>
<td>The error &quot;Fatal error: Could not write to file&quot; could have been returned from the server when attempting to write to a file in a clustered environment. While the clustering service was performing some tasks, it was possible that the database server would be given an error ERROR_NOT_READY when attempting to perform an operation on the file. The server now retries the operation several times in this circumstance.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593347">593347</a></td>
<td>An application connected using the iAnywhere JDBC Driver, and calling the method PreparedStatement.setBlob() to insert a blob of length between 64M and 256M, would have seen the insert take much longer than if the application used the method PreparedStatement.setBinaryStream() instead. This problem has now been fixed, and in addition, also improves the performance of using PreparedStatement.setBinaryStream(). </p>
<p>				Note that using setBlob() requires significantly less memory than using setBinaryStream(), and also, for blob values greater than 256M in size, setBlob() may actually be the only option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593428">593428</a></td>
<td>If an application executed a query containing a large number of proxy tables on a 64-bit server, and the query ended up being executed in NO PASSTHRU mode, then there was a chance the server would have failed assertion 101508 instead of giving the &quot;syntactic limit exceeded&quot; error. This problem has now been fixed, and the &quot;syntactic limit exceeded&quot; error is now properly returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593472">593472</a></td>
<td>If a subquery contained an equality predicate with an outer reference, and the left and right expressions of the equality predicate had different domains, then the computed result set may have been incorrect. The equality predicate must have been of the form &quot;local column = outer reference column&quot;. This problem has now been fixed. </p>
<p>				For example:</p>
<p>				select * from R, S</p>
<p>				where R.X NOT IN ( select T.X from T where T.N = S.I)</p>
<p>				where the column T.N is of type numeric and the column S.I is of type integer.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593523">593523</a></td>
<td>The addition of fractional days to a timestamp value would have been incorrect. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR593676">593676</a></td>
<td>When using the SQL Anywhere ODBC driver, the transaction isolation level can be set with a call to the ODBC function SQLSetConnectAttr(). The following is an example for setting the transaction isolation level to &quot;readonly-statement-snapshot&quot;:</p>
<p>				SQLSetConnectAttr( dbc, </p>
<p>				SA_SQL_ATTR_TXN_ISOLATION, </p>
<p>				(SQLPOINTER)SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT, </p>
<p>				SQL_IS_INTEGER );</p>
<p>				The following isolation level options are available.</p>
<p>				SQL_TXN_READ_UNCOMMITTED</p>
<p>				SQL_TXN_READ_COMMITTED</p>
<p>				SQL_TXN_REPEATABLE_READ</p>
<p>				SQL_TXN_SERIALIZABLE</p>
<p>				SA_SQL_TXN_SNAPSHOT</p>
<p>				SA_SQL_TXN_STATEMENT_SNAPSHOT</p>
<p>				SA_SQL_TXN_READONLY_STATEMENT_SNAPSHOT</p>
<p>				When any of the &quot;snapshot&quot; isolation levels were selected, the ODBC driver would have set the transaction isolation level incorrectly upon connecting to the server. The following is an example of a SET statement that was executed:</p>
<p>				SET TEMPORARY OPTION isolation_level = readonly-statement-snapshot;</p>
<p>				This would have resulted in a syntax error and the server options would not have been changed. This problem has been fixed. The ODBC driver will now generate the following correct syntax with quotes around the isolation level value.</p>
<p>				SET TEMPORARY OPTION isolation_level = &#39;readonly-statement-snapshot&#39;;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594121">594121</a></td>
<td>The value of property(&#39;StartTime&#39;) could have been returned as NULL if used in an event that was fired immediately after the server was started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594130">594130</a></td>
<td>If the Interactive SQL utility, Sybase Central, or DBConsole reported an internal error, and the link to check for software updates was clicked, it would not say that updates were available, even if they were. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594288">594288</a></td>
<td>The message for SQLE_INDEX_NOT_UNIQUE errors did not contain the index or table names. This has been fixed so that the error is now set with the appropriate parameters.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594317">594317</a></td>
<td>If a synchronization had failed during the download, but before MobiLink had been able to generate any data for the download, then the MobiLink server would have placed the synchronization in the restartable state. When the same remote database synchronized again, there was a chance that the MobiLink server would not have been able to find the previous synchronization to cancel it, preventing the remote database from synchronizing. This problem has now been fixed.</p>
<p>				A workaround to this problem would be to stop and start the MobiLink server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594327">594327</a></td>
<td>If an application called the method DatabaseMetaData.getDatabaseProductVersion() on a closed Connection object, then the iAnywhere JDBC Driver would have thrown a NullPointerException, instead of returning the appropriate SQLException. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594373">594373</a></td>
<td>When used with a BIGINT argument, the INTTOHEX function could have returned an incorrect value. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594463">594463</a></td>
<td>The server could have crashed if the definition of a declared temporary table used in a procedure was modified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594465">594465</a></td>
<td>The addition of fractional days to a timestamp value would have been incorrect. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594470">594470</a></td>
<td>Attempting to call the system procedure sa_performance_statistics(), could have resulted in the failure of assertion 109510 on machines with many CPUs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594476">594476</a></td>
<td>On Linux systems, invoking the Service utility (dbsvc) with the options &quot;-l -cm&quot; would have given unexpected results. In particular, it would not have displayed the service creation command. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594479">594479</a></td>
<td>On Linux systems, the Service utility (dbsvc) did not accept localized confirmations for overwrite or delete. For example, in the German version, when dbsvc asked to confirm overwriting or deleting a service, it showed the language specific options (J/N), but it expected a &#39;Y&#39; for confirmation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594492">594492</a></td>
<td>In rare cases, a database mirroring server could have crashed at shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594528">594528</a></td>
<td>In very rare situations, the server could have failed assertion 104908 at shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594568">594568</a></td>
<td>Queries executed with a plan that involved parallel hash joins that caused a run-time error (for example, a conversion error) could have occasionally hung. This has been fixed.</p>
<p>				A workaround is to disable parallel plans (i.e. set MAX_QUERY_TASKS = 1).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594666">594666</a></td>
<td>If an application called the ODBC function ResultSet.getCursorName(), then the iAnywhere JDBC Driver would have returned a truncated cursor name. The JDBC driver was incorrectly assuming that the returned length from SQLGetCursorNameW was in bytes, when in fact the value returned is in characters. This problem has been fixed, and the full cursor name is now properly returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594708">594708</a></td>
<td>When a SQL Anywhere database that was being monitored by the SQL Anywhere Monitor, had a percentage of cache used that was over the user-set threshold in the Monitor, the Monitor could have failed to raise the corresponding memory usage alert. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594711">594711</a></td>
<td>The cardinality estimation of an index having more than one sargable equality predicate on a prefix column could have been incorrectly set to 0%. At least one of the sargable predicates must have been an equality with a constant and at least one of the sargable predicates must have been an equality with a non-constant expression. This has been fixed.</p>
<p>				For example:</p>
<p>				There exists an index on T &lt;X,Y&gt;: create index T_xy on T (X,Y)</p>
<p>				Select * from </p>
<p>				T, R where T.X = 1 and T.X = R.X and T.Y &gt; 10</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594888">594888</a></td>
<td>The performance of ODBC metadata functions, such as SQLPrimaryKeys, SQLTables, and SQLColumns, has been improved for case-sensitive databases. This performance improvement will not occur for case-sensitive databases if SQLSetStmtAttr is called to set the SQL_ATTR_METADATA_ID attribute to SQL_TRUE. However, by default, this attribute is set to SQL_FALSE. When set to SQL_FALSE, case-sensitive databases will now enjoy the same performance as case-insensitive databases.</p>
<p>				Please note that when the SQL_ATTR_METADATA_ID attribute is set to SQL_TRUE, the string arguments to metadata functions are treated as identifiers, not strings (or patterns like &quot;co%&quot;). Identifiers can be delimited, in which case leading and trailing spaces are removed. Identifiers need not be delimited, in which case trailing spaces are removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594897">594897</a></td>
<td>The initial directory used by the file browsing windows in the graphical administration tools was &quot;C:\Windows\System32&quot; on Vista and Windows 7. The inappropriate initial directory was chosen only when the application was launched from an icon (e.g. in the &quot;Start&quot; menu.) This has now been changed to the system-defined user home directory, which is the initial directory used on Windows XP.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594913">594913</a></td>
<td>UltraLite primary key constraints must be named &quot;primary&quot;. This requirement was not being enforced when the primary key was defined. This has been corrected so that now it is. Databases that have primary key constraints not named &quot;primary&quot; should be rebuilt.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594914">594914</a></td>
<td>The Relay Server had been relying on standard http cookie reflection or header reflection from the client to maintain affinity of the http session. However, some mobile devices suffer from thin http support, where both cookie and header reflection are not supported. So, the Relay Server Outbound Enabler (RSOE) now injects an IAS-RS-AFQ header at the first HTTP request of all session. The value of the header is the affinity token for the rest of the request belonging to the session. The backend server is responsible for transporting the affinity token to their client in their application protocol. The client is responsible for inserting the following query parameter to the query string of the subsequent responding URL.</p>
<p>				IAS-RS-AFQ=&lt;affinity_token&gt;</p>
<p>				The relay server will respect this affinity control when affinity information was not found in standard cookie nor in proprietary header.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594916">594916</a></td>
<td>In some circumstances, the server may have failed to recover a database with assertion failure 201135 - &quot;page freed twice&quot;. Some newly allocated database pages were not being initialized. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594917">594917</a></td>
<td>Backend farm Outbound Enabler security requirements and client security can be specified by client_security and/or backend_security properties of the backend farm in the Relay Server configuration file. These setting were not enforced though until the first Relay Server configuration update. This problem has now been fixed so that these setting are enforced immediately after Relay Server startup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594922">594922</a></td>
<td>The Relay Server at log level 3+ will produce packet header logging in the RS-OE protocol. The Relay Server at log level 5+ will also produce packet header logging plus the hex dump of the payload. This has been changed to now suspress level 3 packet header logging when verbosity level is 5 or above.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR594929">594929</a></td>
<td>If an application called a CLR stored procedure at exactly the same time that another connection or event that made a CLR stored procedure call terminated, then there was a small chance the server would have incorrectly returned a thread deadlock error instead of completing the CLR call. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595100">595100</a></td>
<td>The Connect to Database dialog had strings overlapping text boxes. The &quot;Connection String:&quot; string and the &quot;Specify Custom User&quot; string overlapped their text boxes. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595104">595104</a></td>
<td>The Relay Server may be set up to autostart by the first RSOE connection. Concurrent autostarts were unnecessarily failing some of the RSOE connections that attempted to spawn the state manager (rshost.exe), but lost the race. This left those losing RSOE connections in an idle failed startup state, requiring users to restart them. The following error message would have been shown on the RSOE console and log file:</p>
<p>				400 Auto started rshost.exe but it exited with return code &lt;?&gt;.</p>
<p>				This has been fixed by suppressing the startup error for the failed connections, as long as the connections can attach to the stage manager started by others.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595276">595276</a></td>
<td>Procedures containing XML generation functions (XMLAGG, XMLELEMENT, etc.) that were simultaneously executed by large numbers of connections, could have caused the server to crash. This has been fixed.</p>
<p>				A workaround is to rewrite procedures that cause this behaviour to use the XML generation functions as EXECUTE IMMEDIATEs with a trim. For example, :</p>
<p>				CREATE PROCEDURE FOO()</p>
<p>				BEGIN</p>
<p>				SELECT XMLELEMENT(&#39;foo&#39;);</p>
<p>				END;</p>
<p>				could be rewritten as:</p>
<p>				CREATE PROCEDURE FOO()</p>
<p>				BEGIN</p>
<p>				EXECUTE IMMEDIATE trim(&#39;SELECT XMLELEMENT(&#39;&#39;foo&#39;&#39;)&#39;);</p>
<p>				END;</p>
<p>				Note that such rewritten procedures will no longer be able to take advantage of plan caching.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595294">595294</a></td>
<td>The install or uninstall process could have left the machine.config file in a bad state. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595416">595416</a></td>
<td>Support has now been added for Mac OS X 10.6</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595494">595494</a></td>
<td>When running on Windows Vista or later, if the server encountered a fatal error it was possible to see a Windows crash dialog as well as a &quot;Send Error Report&quot; dialog. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595502">595502</a></td>
<td>The Relay Server may have incorrectly reported that shared memory was exhausted and then failed to relay further traffic after a rare memory abuse. This fix improves the memory manager by detecting and reporting incidents when a block of shared memory is freed by more than one process, and will allow the Relay Server to continue following the abuse. The detection was added without introducing extra computational overhead. The error report has the following format in the relay server log:</p>
<p>				E. 2009-10-22 14:39:32. &lt;1036.440.ShmDebug&gt; Internal Error! Freeing already freed memory!: 00011390</p>
<p>				The error message is useful in reporting issue to tech support so that we can identify defects in the higher level logic and eliminate the source of the rare abuse.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595504">595504</a></td>
<td>If an authenticated application connected to an authenticated database and executed an external environment call, then there was a chance the external call would fail with an authentication violation error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595624">595624</a></td>
<td>The Relay Server Outbound Eeabler (RSOE) will verify routing of the relayed packets, and issue session mismatch errors when a routing issue occurs. One of the verifications was checking against a session finger print (sfp). The error message contained useful elements like session index, observed sfp and expected sfp, but the message being logged in the RSOE log was mangled so that it was not possible to use the detail information in the message to diagnose routine issues effectively. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595699">595699</a></td>
<td>In very rare cases, the Windows and Linux server may have hung and stopped processing requests if request level logging was turned on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595744">595744</a></td>
<td>After an HTTP request failure, the Relay Server Outbound Enabler (ROSE) would have unnecessarily failed an HTTP client retrying an HTTP request on the session using the acquired session cookie. This has been fixed by adding support in RSOE for this kind of resume.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595745">595745</a></td>
<td>After a session was interrupted due to client disconnecting from the Relay Server, the Relay Server Outbound Enabler (RSOE) may have logged cancelled operations on the session using incorrect backend connection context information. This has been fixed. Along with this fix, a typo was corrected where sfp was being logged as spf.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595746">595746</a></td>
<td>If the Interactive SQL utility executed a DROP statement which included an &quot;IF EXISTS&quot; clause, subsequent statements in the same batch would not have been parsed correctly. The symptom was that an unexpected error message would have been displayed, which referred to more than one of the statements which followed the DROP statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595878">595878</a></td>
<td>Under rare circumstances, the server could have crashed when processing an INSERT ... SELECT statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595997">595997</a></td>
<td>When using a Synchronization Model with a Microsoft SQL Server consolidated database that had a table with a UNIQUEIDENTIFIER or TIMESTAMP primary key column, and using snapshot download and downloading of deletes, the following error would have occurred for the generated download_delete_cursor script:</p>
<p>				[-10002] Consolidated database server or ODBC error: ODBC: [Microsoft][ODBC SQL Server Driver]Restricted data type attribute violation</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR595999">595999</a></td>
<td>With versions of the server that included the changes made for Engineering case 555808, queries with a recursive union could have failed to match rows on the recursive passes. Although there was nothing wrong with the fix itself, the changes exposed the underlying problem, which has now been fixed.</p>
<p>				A workaround is to drop indexes on the table(s) being queried recursively, although there may a performance implications to doing this, which could be significant.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596021">596021</a></td>
<td>Database recovery using in-memory mode would have failed with assertion 201865. The database must have had multiple dbspaces for this assertion to have occurred. This has been fixed. </p>
<p>				A workaround is to recover without in-memory mode, but thist will cause the database on disk to be modified.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596034">596034</a></td>
<td>Attempting to run a silent install using an MSI file created by the Deployment wizard, could have failed with the error:</p>
<p>				Error 2769: Custom Action CAD_writeStrings did not close 3 MSIHANDLEs.</p>
<p>				This has been corrected by no longer using MSIHANDLEs in custom actions, but rather using PMSIHANDLE variables, which are automatically freed when they go out of scope.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596235">596235</a></td>
<td>When deploying a Synchronization Model to a new UltraLite database, if the remote schema had LONG NVARCHAR columns, an error would have occurred because UltraLite does not support LONG NVARCHAR columns. This has been fixed so that a warning is now given, and a LONG VARCHAR column is used instead in the new UltraLite database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596417">596417</a></td>
<td>There was a scenario, although rare, where an UltraLiteJ client may have hung and no longer have been able to synchronize when MobiLink server farms are involved. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596419">596419</a></td>
<td>When autostarting a database, database-specific options (such as -ds) which had values containing quotation marks were not handled correctly. For example, the following would not have worked correctly:</p>
<p>				dbisqlc -c &quot;dbf=my.db;dbs=\&quot;d:\tmp\spacey path\&quot;&quot;</p>
<p>				This problem has now been corrected.</p>
<p>				Note that using quotation marks on the command line to start a database server worked correctly:</p>
<p>				dbeng11 my.db -ds &quot;d:\tmp\spacey path&quot;</p>
<p>				A related problem was found and fixed in dbisqlc which handled the START DATABASE statement itself, and constructed a connection string containing a &quot;dbs=-ds ...&quot; parameter, rather than passing the START DATABASE statement to the server. Dbisqlc was not putting quotes around a -ds parameter that contained spaces.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596641">596641</a></td>
<td>If all of the following conditions were met, then SQL Remote would have continued to hold locks in the database until the next time that it needed to send the results of a SYNCHRONIZE SUBSCRIPTION to a remote database:</p>
<p>				1) SQL Remote was running in send-only mode (-s)</p>
<p>				2) SQL Remote was running in continuous mode</p>
<p>				3) SQL Remote was satisfying a resend request for user &quot;X&quot;, and was forced to re-scan the transaction logs</p>
<p>				4) While scanning the transaction log, a SYNCHRONIZE SUBSCRIPTION operation was scanned for a user &quot;Y&quot;</p>
<p>				5) User &quot;Y&quot; had already been sent the results of the SYNCHRONIZE SUBSCRIPTION operation in a previous run of SQL Remote.</p>
<p>				This has been fixed by releasing the locks when the send phase of dbremote reaches the end of the transaction log and determines that the SYNCHRONIZE SUBSCRIPTION operation does not need to be sent to the remote user.</p>
<p>				The problem can be worked around by stopping and starting the dbremote process that was running in send-only mode.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR596656">596656</a></td>
<td>If an application made an external environment call, and the external environment procedure subsequently made a server-side call that required acquiring a lock that was already held by the connection making the external environment call, then there was a chance the application would hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605029">605029</a></td>
<td>When the Relay Server Outbound Enabler (RSOE) loses a connection to the Relay Server, it will attempt to recovery the connection at a rate controlled by the -d switch. The reattempt may have unnecessarily failed, causing more reattempts before the service was restored. This has been fixed. The fix also improves error reporting on the RSOE so that it will report the HTTP response code and message in an error in cases when the web server rejects the request before it reaches the Relay Server extension.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605032">605032</a></td>
<td>Under rare situation, the Relay Server may have notified the Relay Server Ooutbound Enabler (RSOE) to disconnect a stale backend connection when the HTTP response had been completed, but the RSOE didn&#39;t indicate that the backend server connection had been completed within a tolerable latency. When this happened on a request that was not the first one of a HTTP session, the Relay Server didn&#39;t fill in available OE and session indexes to optimize the lookup of the backend session, and caused the RSOE to perform extra work to lookup the session. The RSOE was also logging misleading invalid indices because of this. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605039">605039</a></td>
<td>When using using the &quot;-im nw&quot; command line option (in-memory, no-write mode ), the server does not use a temporary file for the database; however, sa_disk_free_space() was returning a row for the temporary dbspace. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605058">605058</a></td>
<td>If a client-side cursor UPDATE was performed using the SQL Anywhere OLE DB provider, and the column was of type VARCHAR(n), where n was greater than or equal to 256 and the column value was originally NULL, then an error message similar to the following would have been issued by ADO: </p>
<p>				Row cannot be located for updating. Some values may have been changed since it was last read.</p>
<p>				The OLE DB provider was failing to return DBSTATUS_S_ISNULL for the column value and returned an empty string instead. This caused ADO to generate an UPDATE statement with a WHERE clause expression of the form &quot;column = ?&quot; and a bound value of &#39;&#39; (a zero-length string). This problem has been fixed. ADO will now generate an UPDATE statement with a WHERE clause expression of the form &quot;column IS NULL&quot;. </p>
<p>				A workaround is to use a server-side cursor.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605071">605071</a></td>
<td>The Relay Server, in general, is not forward compatible with future versions of the Relay Server Ooutbound Enabler (RSOE). Changes have now been made which will allow future version of RSOE to fallback to a protocol version that is compatible with the Relay Server in use at the time. New Relay Servers will no longer reject connections from newer RSOEs, but will request a protocol version adjustment. This fix also contains an independent change that allows the RSOE to work with legacy 11.0.x Relay Servers without patching the Relay Server with the capability to request a protocol version adjustment. Heterogeneous Relay Server farms, with a mix of new and old Relay Servers, has also been enabled by this change. This can be useful in progressive Relay Server farm upgrades. Here is the compatibility matrix following this change:</p>
<p>				RS RS</p>
<p>				11.0.0.ga-1529 11.0.0.1530 and up</p>
<p>				11.0.1.ga and up</p>
<p>				12.0 beta and up</p>
<p>				RSOE</p>
<p>				11.0.0.ga-1529 YES YES </p>
<p>				RSOE</p>
<p>				11.0.0.1530 and up NO YES</p>
<p>				11.0.1.ga and up</p>
<p>				12.0 beta and up</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605250">605250</a></td>
<td>It was possible that for a long running query alert to have been generated with &quot;null&quot; as the query text in the alert. In most circumstances, this was caused by the server option &quot;RememberLastStatement&quot; being turned off. This has been corrected so that when this situation now occurs the alert text has been updated to suggest that the user turn on RememberLastStatement, rather than presenting the unhelpful query text of &quot;null&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605253">605253</a></td>
<td>Sybase Central would have throw an exception on startup on Windows 7 systems. The Windows XP theme that Sybase Central used did not work poperly in JDK 1.4.2. That theme is no longer used on a Windows 7 system, the classic Windows theme is used instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605385">605385</a></td>
<td>When installing 11.0.1 on Mac OS X 10.6 (Snow Leopard), the registration key panel had problems displaying the key as entered. Sometimes, nothing would have been displayed, other times mangled characters would have been displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605386">605386</a></td>
<td>When any of the Java based administration tools (Interactve SQL, Sybase Central, </p>
<p>				Mobilink Monitor, DBConsole) were launched on Mac OS X systems, two copies of </p>
<p>				the admin tool icons were being displayed on the Dock. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605393">605393</a></td>
<td>The value being maintained for the CacheFree property was not as documented and was of limited use. The value now returned is the number of cache images that contain no useful data. The values for the properties CacheFree+CachePinned+CacheFile should give the current cache size (i.e. number of images currently in the cache). The values for the properties CacheFile+CacheFree should give an upper bound on the number of pages immediately available for reuse (without resorting to growing the cache).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605412">605412</a></td>
<td>If client_security (or server_security) was set to &#39;on&#39; in the Relay Server for Apache running on Linux, the Relay Server may have unnecessarily failed the client&#39;s (or Outbound Enabler&#39;s) HTTPS requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605413">605413</a></td>
<td>If the server attempted to open a database file concurrently with antivirus software, the database could have failed to start, or the server could have failed with an assertion error. This has been fixed by adding a retry for sharing violations on a file open.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605414">605414</a></td>
<td>On very rare occasions, if the number of allowed connections was exceeded, the HTTPS server may have sent the &quot;Service temporarily unavailable&quot; 503 response in plaintext. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605417">605417</a></td>
<td>The QAManagerFactory.getInstance() method of the QAnywhere .NET client would have thrown the exception System.DllNotFoundException when the native library qany9.dll or qany10.dll was missing. This exception may have been unexpected by a QAnywhere application, and has now been fixed. A QAException is now thrown in this situation, with ErrorCode 1000 (QAException.COMMON_INIT_ERROR) and Message containing the System.DllNotFoundException.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605433">605433</a></td>
<td>If an application attempted to execute an UPDATE statement that updated a local table, but had a subquery in the SET clause that accessed a proxy table, then the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605645">605645</a></td>
<td>On rare occasions, the execution of a VALIDATE DATABASE statement could have reported spurious orphaned page errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605651">605651</a></td>
<td>The MobiLink server would have thrown the exception IllegalCastException when assigning the null reference to the Value property of an IDataParameter when using the MobiLink Direct Row API to download data. This has been fixed.</p>
<p>				A work around is to assign DBNull.Value instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605653">605653</a></td>
<td>If a REORGANIZE TABLE statement failed due to the table having been locked, then subsequent attempts to execute a REORGANIZE TABLE syatement would have also failed. The error would have been that a reorgorganize was already in progress. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605668">605668</a></td>
<td>If an application that was connected via jConnect or Open Client attempted to insert or retrieve a datetime or time value, then the date portion of the value was limited to January 1, 1753 or later, and the time portion was restricted a precision of 1/300th of a second. Now, if an application uses newer versions of jConnect and Open Client, then the date portion of datetime values will span the full range from 0001-01-01 to 9999-12-31, and the time portion will now be handled in microsecond precision.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605675">605675</a></td>
<td>For a MySQL synchronization model, any events with comments would have had the comments lost when deploying the model directly to a MySQL consolidated database. Thus the special &quot;--{ml_ignore}&quot; comment to ignore a script, would have been lost. This has been fixed.</p>
<p>				A workaround is to deploy to a file, and then run the deployed file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605792">605792</a></td>
<td>If an internal connection was the cause of a diagnostic message, it might have been identified with the phrase &#39;another user&#39;. A more descriptive string identifying the connection will now be used. For example, one might now get a diagnostic message such as: User &#39;Cleaner&#39; has the row in &#39;x&#39; locked (SQLCODE: -210; SQLSTATE: 42W18)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605803">605803</a></td>
<td>When uploading data into a SQL Anywhere database from Microsoft SQL Server using the Linked Server mechanism, SQL Server could have reported that it had received inconsistent metadata information and failed the upload. This was due to the SQL Anywhere OLE DB provider returning inconsistent column lengths for VARCHAR and NVARCHAR columns when using the UTF8 character set collation. For example, an NVARCHAR(100) column length would have been reported as 400, which is the octet length for this column using the UTF8 collation, but the &quot;ulColumnSize&quot; field of the DBCOLUMNINFO structure should contain the maximum length in characters for DBTYPE_STR and DBTYPE_WSTR columns, not the maximum length in bytes. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605818">605818</a></td>
<td>The Relay Server Outbound Enabler (RSOE) may not have issued timely liveness packet on the down channel when the backend server was loaded. This may have caused a down channel read timeout on the Relay Server. Also, the Relay Server may not have issued timely liveness packets on the up channel when the it was loaded, This may have caused an up channel read timeout on the RSOE. Both of these problems are now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605823">605823</a></td>
<td>For an IBM DB2 synchronization model, any events with comments would have had the comments lost when deploying the model directly to a DB2 consolidated database. Thus the special &quot;--{ml_ignore}&quot; comment to ignore a script, would have been lost. This has been fixed. A workaround is to deploy to file and run the deployed file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605843">605843</a></td>
<td>When non-persistent http was used, and there was a significant latency for the backend server to close the socket after writing all response bytes and before the next request of the same session come into the Relay Server Outbound Enabler (RSOE), the RSOE may have mistakenly failed the new request when the Relay Server timed out waiting for the close of the previous request. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605873">605873</a></td>
<td>Two minor problems have been corrected:</p>
<p>				1) The logging of unilitialized session indexes has been fixed</p>
<p>				2) Reword logging of backend socket closing activities to &quot;DoneReceive EOF&quot; instead of &quot;disconnecting&quot; or &quot;socket close&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR605874">605874</a></td>
<td>When the Relay Server Outbound Enabler (RSOE) timed out an up channel connection, the RSOE would have recovered the connection, but it may have resulted in an invalid opcode being received in error from the Relay Server, and then cause the RSOE to disconnect both the up and down channels and restart. This is now fixed so that the RSOE will handle the reconnect properly without causing a more substaintial restart before restoring the service.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR606014">606014</a></td>
<td>When the script sqlanydb.py was run, it would not have propagated some fetch-related errors to the application. This has been fixed. </p>
<p>				Support has been added for Connection and Cursor .messages and .errorhandler attributes as outlined in PEP 249. Support has been added for SPARC 64 (and other platforms where sizeof(c_void_p) != sizeof(c_int)).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR606024">606024</a></td>
<td>A logic bug in the server may have caused database indexes to become corrupt under certain circumstances. The corruption would typically have manifest itself by generating SQLCODE -189 when deleting from an indexed column, followed by raising assertion 106200 - &quot;Unable to undo index changes during rollback&quot;. The possibility of corruption was greater when using large page sizes with non-unique indexes over a small number of short columns. This problem has now been fixed. The corruption can be eliminated by dropping the affected index and recreating it with a server with this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR606038">606038</a></td>
<td>If an application attempted to create a proxy table to a Micosoft SQL Server table that contained a varchar(max) or nvarchar(max) column, then the server would have incorrectly mapped the varchar(max) columns to varchar(1) and the nvarchar(max) columns to nvarchar(1). This problem has now been fixed and the server now correctly maps varchar(max) columns to long varchar and nvarchar(max) columns to long nvarchar.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_73.htm#CR606227">606227</a></td>
<td>When running running on HPUX, Solaris or AIX systems, it was possible for the server to </p>
<p>				crash while receiving IPv6 traffic. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606229">606229</a></td>
<td>When using the SQL Anywhere OLE DB provider, a memory leak cpuld have occurred when fetching data LONG VARCHAR or long VARBINARY columns. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606247">606247</a></td>
<td>When unloading VARCHAR or LONG VARCHAR data, the special characters &quot;(double quote) and `(apostrophe) were not replaced by their escaped counterparts &quot; and &#39; in XML. This may have caused the unloaded XML file to be invalid.</p>
<p>				In addition the characters \r(carriage return), \n(line break) and \t(tab) were not replaced by the character references and . As a result the these characters were being treated exactly the same as empty spaces in the unloaded XML file.</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606273">606273</a></td>
<td>When the SQL statement ALTER TABLE ADD FOREIGN KEY was executed, the system table sysfkcol did not contain the foreign columns for the new foreign key. This meant that the foreign key relation would have been corrupt once the database reboots. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606440">606440</a></td>
<td>If a DSN was created using the Data Source utility (dbdsn), attempting to modified the userid or password of the DSN using the ODBC Administrator would have reported no errors, but it would have failed to change either of these fields. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606445">606445</a></td>
<td>When setting up a download subset in a synchronization model, either by Mobilink user or remote id, the list for choosing a column to match included columns with incompatible types. This has been corrected so now columns with incompatible types are not listed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606464">606464</a></td>
<td>Queries with null-supplying derived tables, which have constants in the select list, may have failed with &quot;Run time SQL error -- *** ERROR *** Assertion failed: 106105&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606465">606465</a></td>
<td>If the &quot;kerberos&quot; connection parameter, or its short form &quot;krb&quot;, was given on the command line, the Interactive SQL utility would not have connected to the database unless a userid was also given. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606626">606626</a></td>
<td>When using the Interactive SQL utility (dbisqlc) to connect, and attempting to use integrated logins or kerberos, (i.e. dbisqlc -c &quot;integrated=yes&quot; or dbisqlc -c &quot;kerberos=yes&quot;), it would have displayed the connection dialog without first attempting to connect. Similarly, the the statements CONNECT USING &#39;integrated=yes&#39; and CONNECT USING &#39;kerberos=yes&#39; with dbisqlc, would also have displayed the connection dialog without first attempting to connect.</p>
<p>				This has been fixed so that a connection with be attempted in these cases and if the connection attempt is successful, the connection dialog will not be displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606629">606629</a></td>
<td>When the XML input to ULjLoad contained one of the two following scenarios, ULjLoad would have rejected the file, even when it should have accepted it.</p>
<p>				1. If a foreign key constraint comes before the definition of the primary table;</p>
<p>				2. If the order of the tables in the data part does not follow the order of the tables in the schema part;</p>
<p>				These problems have been fixed, but rearranging the schema definition or the data in the XML will workaround these problems..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606642">606642</a></td>
<td>If a division by zero error occurred in a result set, the SQL Anywhere OLE DB provider would have returned DB_S_ENDOFROWSET instead of 0x800a000b (divide by zero). For example, the following SELECT statement will result in a division by zero error if the column value for &quot;num&quot; is 3:</p>
<p>				SELECT num/(num-3) FROM divisionby0</p>
<p>				This problem has been fixed. ADO will now set the correct error number (11) and description (Division by zero) from the error code returned by OLE DB.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606651">606651</a></td>
<td>The creation of a proxy procedure for a procedure on a remote server may have caused a server crash, or failed assertion 201503, if a proxy procedure with the same name had been dropped as part of the execution of a DROP REMOTE SERVER statement. This has now been fixed. </p>
<p>				A work around for the problem is to drop all proxy procedures belonging to a remote server before executing the DROP REMOTE SERVER statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606658">606658</a></td>
<td>When shuting down the Relay Server for Apache on Linux, one persistent System V semaphore for IPC was being leaked between Relay Server components. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606660">606660</a></td>
<td>When working with clients that don&#39;t support communication liveness, such as MobiLink 9.x clients, the Relay Server will timeout a client after being idle for 8 minutes, if the web server has not timed out the client earlier. Increasing the web server liveness timeout will not resolve the situation. The solution is to use the IAS-RS-App-Timeout-Minute header in the http request. For example, to set a 20 minute timeout for a big download with a MobiLink version 9.x client, simply add custom_header=IAS-RS-App-Timeout-Minute:20 to the HTTinkP synchronization communication option. This timeout header is an existing but undocumented feature in all released version of the Relay Server. There is no software change involved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606678">606678</a></td>
<td>If a database contained BINARY type data that ended with one or more bytes of 0&#39;s, the 0&#39;s would have be truncated by ULjUnload when written to the output. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606683">606683</a></td>
<td>The build number on policy.11.0.iAnywhere.Data.SQLAnywhere.dll is incorrect. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606726">606726</a></td>
<td>If the Table editor or the Column property sheet was used to change a column&#39;s data type and its unique setting to &#39;not unique&#39;, then the change from &#39;unique&#39; to &#39;not unique&#39; would have been ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606823">606823</a></td>
<td>The date at the beginning of the connection attempt information generated by the LogFile connection parameter was not necessarily in the locale format. This also affected the information in the Show Details dialog when using the ODBC Administrator&#39;s Test Connection feature. This has been fixed so these dates are now in the locale format.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606826">606826</a></td>
<td>An incomplete startup of the Relay Server on Linux due to resource limitations, may have left many persistent System V semaphores behind. This would have caused a permanent semaphore resource drain to the system until they were either manually deleted, or the system was rebooted. This issue has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606828">606828</a></td>
<td>When creating a Synchronization Model with a Sybase ASE consolidated database, the following error may have occurred when installing the MobiLink system setup:</p>
<p>				[Sybase][ODBC Driver][ASE] Foreign key table qualifier must be name of current database</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606833">606833</a></td>
<td>Malformed or unexpected HTTP and HTTPS requests would sometimes have been closed by the MobiLink server without issuing a response. This has been corrected so that the MobiLink server now issues an HTTP or HTTPS error prior to closing the socket.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606835">606835</a></td>
<td>The reason reported by the server for failing to start a database may have been incorrect. When attempting to open a file, the server will retry on certain errors. If it retries too many times it just reports &#39;database not found&#39;. This behaviour was much more likely with the changes for Engineering case 605413, as sharing violations were now retried. This behaviour has now been changed so that the server reports the last OS error when it fails to open the database file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606840">606840</a></td>
<td>When running on Windows Vista or Windows 7 systems, menu items that toggle a property on or off would not always have shown the check mark next to the menu item&#39;s text. Similarly, menu items that choose a value from a mutually exclusive set of values would not always have shown a sphere next to the currently selected value. Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606841">606841</a></td>
<td>When using the Table wizard to create a new table, if the F5 key was pressed before saving the table, and answering &#39;No&#39; to the &quot;Do you want to save changes&quot; dialog, would either have caused Sybase Central to crash or have caused the dialog to have been displayed repeatedly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606848">606848</a></td>
<td>Executing a REORGANIZE TABLE statement on a table having an IMMEDIATE text index would have caused the index size to double. Additionally, under some rare circumstances, incorrect results could have been returned for subsequent full text queries. This has been fixed.</p>
<p>				Note, if there exists a text index in a database affected by this problem, it should be dropped and recreated to reclaim the space and avoid possible wrong results for full text queries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606858">606858</a></td>
<td>A possible, but unlikely, security hole involving secure communications on MacOS systems has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606882">606882</a></td>
<td>When the MobiLink client&#39;s startup/options dialog was used to enter options, such as the publication or MobiLink password, it was possible that the synchronization would complete successfully, but the client would then crash when shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606888">606888</a></td>
<td>When redeploying a synchronization model to a SQL Anywhere remote database using the wizard initialized with the last settings, the extended options for the SQL Anywhere client could have been corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR606991">606991</a></td>
<td>Starting a database, which had been backed up on a Windows CE device, could have caused &quot;Assertion Failed: 201129 (version.build) File is shorter than expected&quot;. This problem was introduced in Engineering case 576669. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607048">607048</a></td>
<td>When using the Table Editor for SQL Anywhere or UltraLite, or when using the Table Mapping Editor for MobiLink, a check box would sometimes have required two single clicks to change its value. This has been corrected so that only a single click is sufficient.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607061">607061</a></td>
<td>The DBTools function DBCreatedVersion() was not able to handle databases that used strong encryption. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607117">607117</a></td>
<td>Use of the WEEKS() and DAYS() functions could have erroneously thrown an OVERFLOW exception. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607234">607234</a></td>
<td>The SQL Anywhere Python database interface, now works with Python 3.x.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607303">607303</a></td>
<td>If F5 was pressed, or View -&gt; Refresh Folder was selected, while creating a new table in the Table Editor and Yes was answered when prompted to save the table, right-clicking to display a popup menu would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607330">607330</a></td>
<td>The SQL Anywhere C API was fetching the TINYINT data type as a signed value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607425">607425</a></td>
<td>The number of nullable columns in a table is limited. This limitation is based on the page size of the database. For 4K pages, the limit is approximately 32000 columns. Attempting to add too many nullable columns to a table using ALTER TABLE would have resulted in a failed assertion, rather than an error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607636">607636</a></td>
<td>Under virtually all circumstances, the Database Information utility (ULjInfo) would have terminated abnormally when opening a valid database file. The error message would have been &quot;getOrdinal(string) not supported&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607651">607651</a></td>
<td>In extremely rare circumstances, fetching a string from a table could have caused the server to hang. This would only have occurred if the string was longer than the prefix size of the column, but less than the page size of the database, and a string manipulation function such as TRIM() was being used, and another connection was attempting to update the string at the same time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607874">607874</a></td>
<td>The SQL Anywhere C API version of DBD::SQLAnywhere perl driver did not fetch floating point/double values correctly (incorrect values would have been returned). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607881">607881</a></td>
<td>The MobiLink server would have reported error -10152 if a Java class loaded for scripting contained overloaded methods, and would have failed with an AmbiguousMatchException if a .NET class contained overloaded methods. This restriction has been lifted. This is most useful for the authenticate_parameters script, as now remotes can send different numbers of authentication parameters and the MobiLink server will choose the method that most closely matches those parameters. </p>
<p>				For example, suppose a class Test exists:</p>
<p>				public class Test {</p>
<p>				public static String auth( InOutInteger status, </p>
<p>				String user_name, </p>
<p>				String p1, </p>
<p>				String p2 )</p>
<p>				{</p>
<p>				return &quot;insert into j_authparm_T2 (pk, c1, c2, c3) values (?,?,?,?)&quot;;</p>
<p>				}</p>
<p>				public static String auth( InOutInteger status, </p>
<p>				String user_name, </p>
<p>				String p1, </p>
<p>				String p2,</p>
<p>				String p3 )</p>
<p>				{</p>
<p>				return &quot;insert into j_authparm_T2 (pk, c1, c2, c3, c4) values (?,?,?,?,?)&quot;;</p>
<p>				}</p>
<p>				}</p>
<p>				Then the auth method can be registered as the script for the authenticate_parameters event:</p>
<p>				call ml_add_java_connection_script( &#39;the version&#39;, &#39;authenticate_parameters&#39;, &#39;Test.auth&#39; )</p>
<p>				and invoking dbmlsync with different -ap switches will give different behaviour:</p>
<p>				&quot;-ap parm1,parm2&quot; will call the first &#39;auth&#39; overload</p>
<p>				&quot;-ap parm1,parm2,parm3&quot; will call the second &#39;auth&#39; overload</p>
<p>				&quot;-ap parm1&quot; will print the error, &quot;[-10362] No overload matching &#39;auth(ianywhere.ml.script.MLInOutInteger, java.lang.String, java.lang.String)&#39; was found in class &#39;Test&#39;&quot;, because there are not enough parameters to call any of the overloads</p>
<p>				&quot;-ap parm1,parm2,parm3,parm4&quot; will invoke the second &#39;auth&#39; overload, but the returned SQL will cause error &quot;[-10094] Expecting 3 authentication parameter(s) from client, but received 4 for script insert into j_authparm_T2 (pk, c1, c2, c3, c4) values (?,?,?,?,?)&quot; because the MobiLink server will accept a Java or .NET authentication_parameters script if it has the same number of parameters or fewer, but SQL authentication_parameters scripts must match the exact number of parameters. Some future version of the server may place that restriction on Java and .NET authentication_parameters scripts as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607934">607934</a></td>
<td>The system functions DAYS() and WEEKS(), when called with a single argument under J2ME, could have generated incorrect results that were off by one. This was now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR607936">607936</a></td>
<td>When a nullable column had a column default specified, and a row with that column set to null was inserted, the null value is ignored and the column default value was inserted instead. This behaviour was incompatible with UltraLite and SQL Anywhere. More seriously, when a nullable column had a column default specified, and the table with that column was altered by an ALTER TABLE statements, all the rows with null values in that column would have been replaced by the column defaults. The following SQL statements were affected. In all these cases, null values would have been replaced by column defaults.</p>
<p>				1. INSERT () VALUES ();</p>
<p>				2. INSERT () select-statement;</p>
<p>				3. ALTER TABLE ADD column-definition;</p>
<p>				4. ALTER TABLE DROP column-name;</p>
<p>				5. ALTER TABLE ALTER column-definition.</p>
<p>				This has been corrected. Now all the null values are preserved in these scenarios.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608095">608095</a></td>
<td>When continually making ODBC connections/disconnections, using SQLConnect()/SQLDisconnect(), a memory leak would have occurred in the application. The process heap would continue to grow as the application looped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608101">608101</a></td>
<td>When processing a synchronization download, rows with VARCHAR columns that had the total size exceeding the database page size would still have been downloaded and processed. Following the synchronization, if these rows were deleted, the database would have been in an error state. For example, if the page size is 256, then the maximum size of VARCHAR columns is 243, due to page overhead. However, UltraLiteJ would have accepted a VARCHAR of 244 bytes long during download. This has been fixed. Now UltraLiteJ will properly reject rows that are too big due to VARCHAR columns&#39; sizes, which means the synchronization will fail.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608106">608106</a></td>
<td>If an application called ResultSet.getObject() on a tinyint column, and the column value ranged from 128 to 255, then the JDBC driver would have incorrectly thrown a SQLException with a conversion error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608314">608314</a></td>
<td>When the Application Profiling wizard was run on an encrypted database, it would have failed with the error: &quot;This database does not support encrypted tables.&quot; This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608321">608321</a></td>
<td>A host variable used by itsself as an item in an IN list could have caused a crash (Null pointer exception). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608332">608332</a></td>
<td>When executing a SQL statement that lead to an internal conversion between Numeric types, the source Numeric value may have been corrupted by the conversion. For example, if a value 5.12 in a Numeric(5,2) column was converted to a Numeric(5,1) column, the source value would have been changed to 5.10 after the conversion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608339">608339</a></td>
<td>On 11.0.1, builds 2309 through 2312 inclusive contained the fix for Engineering case 588740; however, builds 2313 through 2354 inclusive accidentally reverted back to the old behaviour. This regression has been fixed. </p>
<p>				Note, testing has shown that the new correct behaviour can cause a significant performance degradation for server running databases without a transaction log (where every commit becomes a checkpoint). The amount of degradation will depend on the application, and on the hardware in use.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608342">608342</a></td>
<td>A server participating in a mirroring system may, on rare occasions, have crashed if an </p>
<p>				outgoing connection to another server participating in the mirroring system failed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608354">608354</a></td>
<td>The use of a host variable as the right operand of a LIKE operator, could have given incorrect results when an index was used to optimize the search condition. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608552">608552</a></td>
<td>In rare cases, the executing the ATTACH TRACING statement could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608728">608728</a></td>
<td>If a connection string was made up of parameters coming from different sources (i.e. the connection string itself, DSNs or file DSNs, SQLCONNECT environment variable), and the UID and PWD/ENP parameters were not specified in the same source, the PWD/ENP would have been ignored. For example, if DSN &quot;foo&quot; contained a UID but no PWD, then the connection string &quot;DSN=foo;PWD=secret&quot; would ignore the PWD field. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608737">608737</a></td>
<td>When utilities or applications attempt to connect to a database with 10000 or more rows and 5 or more indexes, the exception &#39;java.lang.OutOfMemoryError: Java heap space exception&#39; could have occurred if lazy index loading was disabled. This has been fixed. The handling of large numbers of indexes has been improved and utilities now use lazy loading, but it is possible for this exception to still occurr for large databases.</p>
<p>				A work around is to increase the heap space in the java starting line by adding the VM option -Xmx256m. This also applies to the batch file that starts uljunload, uljload and uljinfo.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608742">608742</a></td>
<td>The following statements were added e added in version 11.0.1:</p>
<p>				CREATE ENCRYPTED [TABLE] DATABASE newfile FROM oldfile </p>
<p>				KEY newkey [ALGORITHM alg] [OLD KEY oldkey]</p>
<p>				CREATE DECRYPTED DATABASE newfile FROM oldfile KEY oldkey</p>
<p>				Execution of either of these statements in the Interactive SQL utility would have left the values of &quot;oldKey&quot; or &quot;newKey&quot; in plain text in the command history. This has been corrected so that these values are now obfuscated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608743">608743</a></td>
<td>When installing an MSI created by the Deployment wizard which contained Sybase Central and one or more plugins, on Windows Vista or Windows 7, it would have failed with the error: &quot;The exception unknown software exception (0xc000000d) occurred in the application at location 0x10001d3d.&quot; The install would have completed, but the plugins were not correctly registered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608747">608747</a></td>
<td>The Relay Server Outbound Enabler may have reported session mismatch errors when an Afaria client disconnect their POST channel. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608750">608750</a></td>
<td>If an application called ResultSet.getObject() on an unsigned smallint, int or bigint column, then the JDBC driver may have given a conversion error. This problem has now been fixed such that calling ResultSet.getObject() on an unsigned column will now promote the datatype. Hence, calling ResultSet.getObject() on an unsigned smallint column will now return an int; similarly, an unsigned int column will now return a long, and an unsigned bigint column will now return a BigDecimal. It should be noted that most applications prefer to have full control on the column object so it is always better to use one of the getShort(), getInt(), getLong() and getBigDecimal() methods explicitly rather than using an implicit method like getObject().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608751">608751</a></td>
<td>If an application called IBlob.getBytes() with a position value &lt;= 0, or a length value &lt; 0, then the getBytes() method would have incorrectly returned NULL. The JDBC driver now correctly throws a SQLException for these cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR608904">608904</a></td>
<td>Additional drive flushing was added to improve recoverability (see Engineering case 588740); however, this flushing could have made the server significantly slower when no transaction log was present due to every commit causing a checkpoint. This performance issue has been addressed by reverting to the old flushing behaviour when no transaction log is being used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609049">609049</a></td>
<td>Some server, database, or connection properties may have shown values that were too large, or that have rolled over. This would only have happened on single core machines running the Personal server (dbeng11) on Unix platforms (but not Linux). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609050">609050</a></td>
<td>Query execution strategies that required the materialization of intermediate results (e.g. DISTINCT) may have used excessive memory when strings or blobs longer than the PREFIX length, but shorter than a page size, were involved in the query. This may have caused the query execution engine to switch to a low-memory strategy causing poor performance. This has been fixed.</p>
<p>				Note, using compressed columns will avoid the bad-code path and is a suitable work-around for this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609062">609062</a></td>
<td>The MobiLink client (dbmlsync) was leaving a small fixed amount of memory unfreed on shutdown. This should not have been visible to users, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609096">609096</a></td>
<td>Rows containing non-ascii7 characters in VARCHAR() columns (but not LONG VARCHAR columns) would have resulted in strings padded at the end with &#39;\u0000&#39; characters.</p>
<p>				For example (using SQL escape sequences) the string &#39;Ann\u00E9e&#39; would have downloaded as &#39;Ann\u00E9e\u0000&#39; the and string &#39;Enqu\u00EAte qualit\uooE9 deux&#39; would have downloaded as &#39;Enqu\u00EAte qualit\uooE9 deux\u0000\u0000&#39;.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609310">609310</a></td>
<td>The fix for Engineering case 570493, in very rare cases, could have caused the server to hang with one CPU at 100% usage when shutting down a database with many events. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609449">609449</a></td>
<td>FIPS 140-2 certified encryption is now supported by the MobiLink server on 64-bit (x64) Windows.</p>
<p>				If the &quot;FIPS-approved Strong Encryption&quot; feature is not already installed, proceed as follows after applying the EBF:</p>
<p>				- From Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Add option and enter the Add-on Registration Key and click Next.</p>
<p>				- In the dialog, ensure that the &quot;FIPS-approved Strong Encryption&quot; feature is selected and proceed.</p>
<p>				If the &quot;FIPS-approved Strong Encryption&quot; feature is already installed, proceed as follows after applying the EBF:</p>
<p>				- From Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Modify option and de-select the &quot;FIPS-approved Strong Encryption&quot; feature, to temporarily remove it, and proceed.</p>
<p>				- Again from Add &amp; Remove Programs, select SQL Anywhere 11 and click the Change button.</p>
<p>				- Select the Modify option and select the &quot;FIPS-approved Strong Encryption&quot; feature and proceed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609454">609454</a></td>
<td>When trying to bind null values for string or blob columns, the SQL Anywhere C API would have crashed in the call to sqlany_execute(). This has been fixed.</p>
<p>				Also, when binding null values, dbcapi required a valid type to be specified. This is no longer required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609701">609701</a></td>
<td>The sample ECC certificate eccroot.crt shipped with versions 9.x and 10.x expired on November 17, 2009. As a result, the sample server certificate sample.crt has also expired, since it was signed by eccroot.crt. These have been replaced by new sample ECC certificates. The new server certificate is called eccserver.crt, and its password is &quot;test&quot;. The file name for the signing certificate is still eccroot.crt but the certificate itself is different.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609704">609704</a></td>
<td>When calling the SQL Anywhere C API function sqlany_clear_error() the resulting SQLSTATE value would have been set to the empty string instead of &quot;00000&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609706">609706</a></td>
<td>When running, the database cleaner could have interfered wth transactions by causing locking attempts to fail. This has been fixed by having the requesting transaction wait for the cleaner.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609707">609707</a></td>
<td>When running the MobiLink server in a server farm, it was possible for the MobiLink server to have printed errors to the MobiLink log that dealt with problems on operations to the ml_active_remote_id table. These errors are now suppressed, and more meaningful warnings or errors are printed to the MobiLink log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609708">609708</a></td>
<td>When using the SQL Anywhere C API and binding parameters for prepared statements and calling sqlany_execute() multiple times, the second and subsequent calls to sqlany_execute() would have failed with the error &quot;Cursor already open&quot;. The problem was introduced as part of the changes for Engineering case 560351. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609736">609736</a></td>
<td>If an application had a connection that was holding on to table locks, and the same application had other connections that were blocked in the server waiting for the table locks to be released, then there was a chance the application would have hung if the connection holding on to the table locks subsequently called Connection.createStatement(). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609739">609739</a></td>
<td>When an application retrieved a Blob object by calling ResultSet.getBlob(), and the application subsequently retrieved the Blob&#39;s InputStream by calling Blob.getBinaryStream(), the applications performance would have been severely impacted if the application called InputStream.read( byte[] ) or InputStream.read( byte[], int, int ) on the Blob InputStream. This problem has now been fixed.</p>
<p>				Note that a workaround is to use Blob.getBytes() directly, instead of using the Blob InputStream.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609944">609944</a></td>
<td>When running the Relay Server Outbound Enabler (ROSE) and the backend server on slow machines, the RSOE may have failed to notify the Relay Server (RS) that the backend connection for a non-persistent http request had been closed, which would have caused the RS to hold on to resources for an extended period of time, making the RS less scalable. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR609953">609953</a></td>
<td>The HTTP server may have crashed due to certain circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610115">610115</a></td>
<td>The database server was vulnerable to a particular type of denial-of-service attack. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610118">610118</a></td>
<td>When using the UltraLiteJ Database Transfer desktop application for USB transfer, the utility may have crashed with the error &quot;A fatal error has been detected by the Java Runtime Environment&quot;. This would have been seen when the desktop application started (&quot;Start&quot; is pressed in the GUI) before the BlackBerry application was started(&quot;Next&quot; is pressed on the final screen). This problem occurs with BlackBerry Desktop Manager 5.0.1, but it could have occurred in other versions as well. In order to function properly, the BlackBerry application must start before the desktop application. This has been resolved. The BlackBerry application&#39;s on-screen instruction of the correct order of starting the two pieces has been updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610141">610141</a></td>
<td>When the Relay Server State Manager was run on Linux with the -os command line option, it would have generated many small archive output log files once the archiving process had started. The logger&#39;s size counter wasn&#39;t being reset after successfully generating the first output archive file. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610279">610279</a></td>
<td>The use of a host variable in the left operand of a LIKE operator could have given incorrect results. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610505">610505</a></td>
<td>Attempting to renaming an index (or text index) to an invalid name, would have resulted in unexpected behaviour of following statements related to the index. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610520">610520</a></td>
<td>The STRING() SQL function would have returned NULL when any of the parameters were null. </p>
<p>				This has been corrected so that if any parameters passed to the STRING() function are non-NULL, then any NULL parameters are treated as empty strings. This now conforms with the SQL Anywhere server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610533">610533</a></td>
<td>If an application retrieved a ResultSet via a DatabaseMetaData call, and the application subsequently retrieved the underlying Statement object of that ResultSet by calling ResultSet.getStatement(), then attempting to close that DatabaseMetaData Statement object could have crashed the application. The problem with closing DatabaseMetaData Statement objects has now been fixed.</p>
<p>				Note that in general, applications do not explicitly need to close DatabaseMetaData Statement objects; hence the chances of an application crashing due to this problem are rare. Closing the ResultSet of a DatabaseMetaData call is not uncommon and not affected by this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610718">610718</a></td>
<td>If an application executed an UPDATE statement, and the UPDATE statement involved proxy tables, then the server may have crashed when the UPDATE statement could not be handled in full passthrough mode. This problem has now been fixed, and a proper error message is returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610723">610723</a></td>
<td>If the Data Source utility (dbdsn) was used to create an ODBC data source, but the -c </p>
<p>				option was not specified, a data source would have been created containing &quot;LINKS=ShMem,TCPIP&quot;. This has been fixed, the -c option is now required when -w is used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610724">610724</a></td>
<td>Problems with an LDAP server could have caused a SQL Anywhere server, or a client application using it, to hang. Calls to the LDAP library were synchronous, so if the LDAP server was hung and did not respond, the SA server would have waited forever for a response. This has been fixed by making the LDAP library calls asynchronous and adding a timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610948">610948</a></td>
<td>Attempting to execute an ALTER TABLE statement that added a primary or foreign key would have returned a Runtime SQL error (SQLCODE -300) if the option row_counts had been turned on. The workaround is to temporarily turn the option off. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610974">610974</a></td>
<td>If a REFRESH MATERIALIZED VIEW staement was executed with the WITH ISOLATION LEVEL SNAPSHOT clause, and database recovered was later attempted using the transaction log, recovery would have failed when attempting to access the view. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR610982">610982</a></td>
<td>When installing SQL Anywhere on a Windows system that used a multibyte character set as the ANSI code page, the SQL Anywhere performance monitor counters may not have been registered correctly and no error message would have been displayed. At startup, the server would have displayed the message &quot;Unable to initialize NT performance monitor data area; server startup continuing&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611017">611017</a></td>
<td>When the OLE DB provider&#39;s GetNextRows method was called, the next row would not have been read if the previous row had NULL column values. This problem was introduced by the changes for Engineering case 605058, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611168">611168</a></td>
<td>ODBC drivers support standard escape sequences in bound data as a driver-independent way to specify date and time literals, outer joins and procedure calls. The SQL Anywhere driver was failing to recognize these escape sequences when embedded in a bound parameter that contained a Unicode string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611184">611184</a></td>
<td>Attempting to convert a string to a UUID when the string included braces as the first and last characters, would have resulted in a conversion error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611227">611227</a></td>
<td>The MESSAGE statement did not allow specifying the EVENT, SYSTEM LOG and DEBUG ONLY clauses at the same time. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611262">611262</a></td>
<td>Customer try to setup Mobilink Server with Consolidate Database ASE Cluster Edition using </p>
<p>				the SDK15 ODBC driver. According to SDK document, the SDK ODBC Driver &quot;libsybdrvodb.so&quot; </p>
<p>				require third party Driver Manager.</p>
<p>				With the ODBC DSN, Mobilink Server try to load the ODBC driver when the client sync. request, then Mobilink Server will crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611350">611350</a></td>
<td>The server may have hung while generating a cache dump. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611361">611361</a></td>
<td>Using Sybase Central to cancel a system message that resided in a QAnywhere Client database would have resulted in an unhandled Null Pointer Exception. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611368">611368</a></td>
<td>The Interactive SQL utility (dbisql) was using only the &quot;sqlconnect&quot; environment variable when connecting from the command line, where it should have been using &quot;SQLCONNECT&quot;, as it did in version 10 and earlier. Now, dbisql will look for &quot;SQLCONNECT&quot;, and if that variable is not set, it will look for &quot;sqlconnect&quot;. This is the same algorithm used by the non-graphical command line tools (e.g. dbping).</p>
<p>				Note, the &quot;ULSQLCONNECT&quot; environment variable is now treated the same way. </p>
<p>				This change only affects machines running non-Windows operating systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611373">611373</a></td>
<td>The MobiLink server could have occasionally given the following error:</p>
<p>				A downloaded value for table &#39;table_name&#39; (column #column_number) was either</p>
<p>				too big or invalid for the remote schema type</p>
<p>				and then aborted the synchronization, when a client was trying to download data from a table that contained NCHAR, NVARCHAR or LONG NVARCHAR columns, even when NCHAR, NVARCHAR or LONG NVARCHAR data was uploaded in a previous synchronization. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611414">611414</a></td>
<td>When using the iAS Oracle ODBC driver, attempting to execute an INSERT, UPDATE, or DELETE statement with SQLExecDirect immediately after executing a SELECT statement with the same statement handle, would have failed with the following error message:</p>
<p>				ORA-24333: zero iteration count</p>
<p>				This problem is fixed now.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611611">611611</a></td>
<td>If an application executed a query similar to the following:</p>
<p>				select * from T where price * (1 - discount) &gt; 500</p>
<p>				and the table T was a remote table, then it was possible the query would have returned the wrong result. This was due to fact that the Remote Data Access layer sometimes failed to include the parenthesis when generating queries to be executed on remote servers. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_74.htm#CR611877">611877</a></td>
<td>The Listener utility (dblsn) was failing to recognize the operating system when run on Windows 6.x systems, which may have resulted in crashes. This has been fixed.</p>
<p>				Note, the Listener utility now tracks the following new Windows 6.x versions:</p>
<p>				Windows Server 2008</p>
<p>				Windows Vista</p>
<p>				Windows 7</p>
<p>				Windows Server 2008R2</p>
<p>				Future versions will be tracked as &quot;Unrecognized Windows NT ?.?&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_75.htm#CR611985">611985</a></td>
<td>Software installs that were built using merge modules (MSM files) created by the SQL Anywhere Deployment Wizard would have failed to generate the .jpr files needed to register plugins for Sybase Central. Consequently, the following error would have occurred:</p>
<p>				Error - EXCEPTION: java.io.FileNotFoundException: C:\Program Files\SQL Anywhere 11\java\SQLAnywhere.jpr (the System cannot find the file specified). </p>
<p>				A similar error message would also have appeared for the file Mobilink.jpr</p>
<p>				This has been fixed, so that MSMs now work correctly as well.</p>
<p>				Note, MSI installs built with the Deployment Wizard did not exhibit this behavior.</td>
</tr>
</tbody>
</table>
<p>--EOF--</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">https://www.dbainfo.net/sap-asa-cr-number-5.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SAP SQL Anywhere的所有已知BUG列表（5）</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-10.htm" title="SAP PB Enterprise的所有已知BUG列表（10）">SAP PB Enterprise的所有已知BUG列表（10）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-9.htm" title="SAP PB Enterprise的所有已知BUG列表（9）">SAP PB Enterprise的所有已知BUG列表（9）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-8.htm" title="SAP PB Enterprise的所有已知BUG列表（8）">SAP PB Enterprise的所有已知BUG列表（8）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-7.htm" title="SAP PB Enterprise的所有已知BUG列表（7）">SAP PB Enterprise的所有已知BUG列表（7）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-6.htm" title="SAP PB Enterprise的所有已知BUG列表（6）">SAP PB Enterprise的所有已知BUG列表（6）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-5.htm" title="SAP PB Enterprise的所有已知BUG列表（5）">SAP PB Enterprise的所有已知BUG列表（5）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-4.htm" title="SAP PB Enterprise的所有已知BUG列表（4）">SAP PB Enterprise的所有已知BUG列表（4）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-3.htm" title="SAP PB Enterprise的所有已知BUG列表（3）">SAP PB Enterprise的所有已知BUG列表（3）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-2.htm" title="SAP PB Enterprise的所有已知BUG列表（2）">SAP PB Enterprise的所有已知BUG列表（2）</a> (1)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-1.htm" title="SAP PB Enterprise的所有已知BUG列表（1）">SAP PB Enterprise的所有已知BUG列表（1）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sap-asa-cr-number-5.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP SQL Anywhere的所有已知BUG列表（4）</title>
		<link>https://www.dbainfo.net/sap-asa-cr-number-4.htm</link>
		<comments>https://www.dbainfo.net/sap-asa-cr-number-4.htm#comments</comments>
		<pubDate>Sat, 07 Mar 2015 16:58:27 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[CR]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2852</guid>
		<description><![CDATA[随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。 只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。 考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。 在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。 需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。 以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！ 不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。 SQL Anywhere的所有已知BUG列表（1） SQL Anywhere的所有已知BUG列表（2） SQL Anywhere的所有已知BUG列表（3） SQL Anywhere的所有已知BUG列表（4） SQL Anywhere的所有已知BUG列表（5） SQL Anywhere的所有已知BUG列表（6） SQL Anywhere的所有已知BUG列表（7） SQL Anywhere的所有已知BUG列表（8） &#160; CR Number Description 463608 When generating sortkeys for the following collations, the [...]]]></description>
			<content:encoded><![CDATA[<p><base target="_blank" /></p>
<p>随着Sybase被完全整合到SAP下，Sybase原来的支持网站被SAP Support Portal取代。<br />
	只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。<br />
	考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况，现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。<br />
	在SAP Support Portal网站或者google上搜索Targeted CR List for ASE，可以看到针对不同版本的CR（CR表示Change Request）简单描述信息列表。<br />
	需要注意的是：Targeted CR List for ASE列出的CR虽然绝大多数是BUG，但有一些是更改需求。<br />
	以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息！<br />
	不仅仅包括BUG的详细描述信息，还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程；有些BUG还提供了Workaround来临时解决该BUG带来问题。</p>
<p><a href="https://www.dbainfo.net/sap-asa-cr-number-1.htm">SQL Anywhere的所有已知BUG列表（1）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-2.htm">SQL Anywhere的所有已知BUG列表（2）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-3.htm">SQL Anywhere的所有已知BUG列表（3）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SQL Anywhere的所有已知BUG列表（4）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-5.htm">SQL Anywhere的所有已知BUG列表（5）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-6.htm">SQL Anywhere的所有已知BUG列表（6）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-7.htm">SQL Anywhere的所有已知BUG列表（7）</a><br />
	<a href="https://www.dbainfo.net/sap-asa-cr-number-8.htm">SQL Anywhere的所有已知BUG列表（8）</a><br />
	&nbsp;</p>
<table align="left" border="1" cellpadding="0" cellspacing="0" style="table-layout: fixed; word-break:break-all; word-wrap: break-all;" width="100%">
<tbody>
<tr align="center">
<td width="11%">CR <br />
				Number</td>
<td>Description</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463608">463608</a></td>
<td>When generating sortkeys for the following collations, the generated sortkeys were default UCA keys, rather than the keys appropriate to the language or region:</p>
<p>				47 scandict </p>
<p>				48 scannocp </p>
<p>				58 rusdict </p>
<p>				59 rusnocs </p>
<p>				63 cyrdict </p>
<p>				64 cyrnocs </p>
<p>				65 elldict </p>
<p>				69 hundict </p>
<p>				71 hunnocs </p>
<p>				70 hunnoac </p>
<p>				72 turdict </p>
<p>				74 turnocs </p>
<p>				73 turnoac </p>
<p>				1 thaidict </p>
<p>				This has been corrected so that appropriate keys are now generated. It is highly recommended that any columns which store SORTKEY values using these collations be recomputed, as comparisons and sort order will be affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463613">463613</a></td>
<td>Opening online help in Sybase Central may not have worked the first time it was asked for, although subsequent requests would have succeeded. The problem was timing and operating system dependent. It has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463614">463614</a></td>
<td>When attempting to add a row to a table that had constraints that were not checked until the transaction was committed, and the new row violated those constraints, it was not possible to cancel the insertion. The same problem affected table row modifications. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463662">463662</a></td>
<td>In general, the optimizer enumerates all valid plans which compute the correct result set for a given query. For each such plan, the optimizer estimates an execution cost measured in microseconds. The plan with the smallest estimated cost is then chosen as the execution plan for a query (aka the &#39;best plan&#39; for a query). If the database option Optimization_goal is set to FIRST-ROW, the estimated cost for a plan enumerated by the optimizer is the estimated time to compute the first row of the result set of the query. If the optimization goal is set to ALL-ROWS, the estimated cost for a plan enumerated by the optimizer is the estimated time to compute all the rows in the result set of the query. The optimizer was not enumerating plans with complete index scans on the right hand side of a MERGE JOIN. This has now been fixed.<span id="more-2852"></span></td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463668">463668</a></td>
<td>A memory leak would have occurred in the MobiLink client when synchronizing BIT strings. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463669">463669</a></td>
<td>If the database option Percent_as_comment was set to &#39;OFF&#39;, statements such as:</p>
<p>				select 11 % 2</p>
<p>				would have incorrectly reported an error, instead of the correct result of 1 being returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463733">463733</a></td>
<td>The server may have hung on shutdown if it was running an HTTPS server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463734">463734</a></td>
<td>A complex query (e.g. a join of many tables) may have taken a long time to be optimized, and would have appeared to be hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463740">463740</a></td>
<td>Interactive SQL could have reported an internal error (ClassCastException) when importing UNIQUEIDENTIFIER data into UltraLite databases. This would only have happened when running the Import wizard if there was already a result set showing. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463741">463741</a></td>
<td>When clients using an HTTP non-persistent connection synchronized, the synchronizations could have ended with the errors: (SQLCode -10279) &quot;Connection was dropped due to lack of network activity.&quot;, or: (SQLCode -10256) &quot;This synchronization was canceled due to a new synchronization...&quot;. The synchronization of rows was not interrupted by these errors. The MobiLink server did not consider a synchronization closed until it sent the last few bytes. MobiLink clients did not always read these last few bytes, which lead to the errors. This has been fixed, the MobiLink server now accounts for this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463747">463747</a></td>
<td>Pipelined HTTP requests may have caused the server to crash under certain circumstances. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463748">463748</a></td>
<td>On Unix systems, attempting to connection without including a UserID in the connection string would have failed with the error &quot;User ID &#39;???&#39; does not exist&quot;. This has been fixed to give the error &quot;Invalid user ID or password&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463763">463763</a></td>
<td>When using BCP IN to populate a table which had a nullable date or time column, the BCP utility would have given a &#39;NULLs not allowed&#39; error if the data file inserted a NULL into the date or time column. The server was was incorrectly describing all date and time columns to the BCP utility as non-nullable, even if they were nullable. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463776">463776</a></td>
<td>A backup of the database could have been made that would have failed to start with the database assertion, 201502, &quot;Inconsistent page modification counter value&quot;. This would not have occurred when the BACKUP DATABASE statement used the clause &quot;WITH CHECKPOINT LOG NO COPY&quot; or the Backup utility used the &quot;-k nocopy&quot; command line option, or if the database file did not grow from insert activity during the backup. This problem was more likely to occur if a backup was made while the database was growing in size, as the database would have to have had a large number of pages allocated for the checkpoint log, and have been both modifying (updating) existing database pages, as well as growing the database file during the course of the backup. If all of these conditions existed, then there was a small window of opportunity where the backup operation could have incorrectly read database pages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463781">463781</a></td>
<td>The Java utilities (and potentially any Java application) on Mac OS X could not connect to ODBC data sources that were created with the ODBC Administrator utility (found in /Applications/Utilities/) that ships with Mac OS X 10.4. Specifically, applications fail with SQLCode -620 and SQLState IM003: &quot;Could not connect to the database. Unable to load driver&quot;. The ODBC Administrator utility produces odbc.ini files that have white space around the equals sign, which confused the parser. The parser has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463882">463882</a></td>
<td>If an application, connected via the iAnywhere JDBC Driver, fetched a timestamp value using the ResultSet.getTimestamp() method, then the fractional portion of the returned timestamp would have been incorrectly truncated to millisecond precision. This problem has now been fixed and the fractional portion of the timestamp is now the expected nanosecond precision.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463887">463887</a></td>
<td>Deployment Wizard installs containing ADO.Net components would have failed without a good error message when trying to register the .Net components on a system with no .Net framework installed. This has been fixed so that the install now checks for the framework if it is required, and issues a warning.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463910">463910</a></td>
<td>The MobiLink server could have incorrectly displayed the message &quot;Ping complete&quot; when a MobiLink Monitor session disconnected. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463912">463912</a></td>
<td>A query with an ordered GroupBy operator immediately above an Exchange operator in the plan could have returned incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR463915">463915</a></td>
<td>Sybase Central did not distinguish between CHAR or VARCHAR columns with byte-length or character-length semantics, nor did it allow for the creation of CHAR or VARCHAR columns with character-length semantics. Both of these problems have been fixed. Now, CHAR and VARCHAR columns with character-length semantics are displayed as &quot;char(nn char)&quot; and &quot;varchar(nn char)&quot; respectively. </p>
<p>				In addition, when editing a column in the table editor or Column property sheet, or creating a domain or function in the corresponding wizards, it was possible to specify a size value that would exceed the database maximum (32767/maximum_character_length for CHAR and VARCHAR; 8191 for NCHAR and NVARCHAR). This problem has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464155">464155</a></td>
<td>Attempting to use the Create Procedure wizard to create a Transact-SQL procedure, would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464158">464158</a></td>
<td>A new statement, ALTER DATABASE SCHEMA FROM FILE, now allows for alteration an UltraLite database schema. This statement replaces the 9.0.2 schema upgrade feature that was implemented with the UpgradeSchemaFromFile() / ApplyFile() methods from this previous release. </p>
<p>				Because Ultralite error callback is active during the upgrade process, the application is notified of errors during the conversion process. For example, SQLE_CONVERSION_ERROR reports all values that could not be converted in its parameters. Errors do not mean the process failed. The final SQL code after the statement returns is a 130 warning in this case. These warnings describe operations of the conversion process and do not stop the upgrade process.</p>
<p>				Note: There is no mechanism to support the renaming of tables, columns or publications. Also, renaming a table is processed as a DROP TABLE and CREATE TABLE operation. </p>
<p>				Caution: Resetting the device during the upgrade process leaves the database unusable.</p>
<p>				To upgrade the schema with this new statement:</p>
<p>				1. Define a new schema by creating a SQL script of DDL statements. The character set of the SQL script file must match the character set of the database you want to upgrade.</p>
<p>				The UltraLite utilities ulinit or ulunload can be used to extract the DDL statements required for this script. Use these utilities to ensure that the DDL statements required are syntactically correct.</p>
<p>				- For ulunload, use the 杗 and 杝 [file] options. </p>
<p>				- For ulinit, use the 杔 [file] option.</p>
<p>				See the UltraLite Database Management and Reference documentation for details.</p>
<p>				2. Review the script and ensure that:</p>
<p>				- That non-DDL statements have not been included. Including non-DDL statements does not have the expected effect.</p>
<p>				- Words in the SQL statement are separated by spaces. </p>
<p>				- Only one SQL statement can appear in each line. </p>
<p>				- Comments are prepended with &#39;--&#39; and only occur at the start of a line. </p>
<p>				3. Backup the existing database.</p>
<p>				4. Run the new statement using the following syntax:</p>
<p>				ALTER DATABASE SCHEMA FROM FILE �&lt;filename&gt;�</p>
<p>				For example:</p>
<p>				ALTER DATABASE SCHEMA FROM FILE &#39;MySchema.sql&#39;</p>
<p>				5. The existing database is upgraded with the new schema using the following process:</p>
<p>				- Both the new and existing database schemas are compared to see what differs. </p>
<p>				- The schema of the existing database is then altered accordingly. </p>
<p>				- Rows that do not fit the new schema are dropped. When this occurs, a SQLE_ROW_DROPPED_DURING_SCHEMA_UPGRADE (130) warning is raised.</p>
<p>				For example, if a uniqueness constraint was added to a table, and there are multiple rows with the same values, all but one row will be dropped. </p>
<p>				Alternately, if an attempt to change a column domain causes a conversion error, then that row will be dropped. That is, say a VARCHAR column is converted to an INT column, if the value for a row is 揂BCD�, then that row is dropped. </p>
<p>				Lastly, if the new schema has new foreign keys where the foreign row doesn&#39;t have a matching primary row, these rows are also dropped.</p>
<p>				If dropping rows is not the desired behavior of the schema upgrade, detect the warning and restore from backup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464201">464201</a></td>
<td>The runtime server does not support execution of procedures; however, it still attempted to execute a login procedure if one was defined using the PUBLIC.login_procedure option. That attempt would always have failed and caused a message to be displayed in the server console window for each connection:</p>
<p>				Login procedure &#39;sp_login_environment&#39; caused SQLSTATE &#39;0AW04&#39;</p>
<p>				Triggers and procedures not supported in runtime server</p>
<p>				This has been corrected so that the runtime server will no longer attempt to invoke the login procedure.</p>
<p>				A workaround would be to execute:</p>
<p>				set PUBLIC.login_procedure=&#39;&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464299">464299</a></td>
<td>Installing the Runtime version of SQL Anywhere, using the &quot;Add&quot; option during SQL Anywhere Install Maintenance, would have uninstalled some previously installed components. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464303">464303</a></td>
<td>When determining where to begin scanning the transaction log, dbmlsync will now ignore subscriptions if they do not contain any of the tables that are currently being synchronized. Previously when building an upload, dbmlsync scanned the log from the lowest progress value of any subscription involving the MobiLink user who is synchronizing. </p>
<p>				To take advantage of this optimization, you should now define your publications as disjoint (not sharing any tables) whenever possible. This will result in a major performance improvement when one subscription is being synchronized more frequently than another. </p>
<p>				For example, suppose publications P1 and P2 share no tables. P2 is synchronized daily and P1 is synchronized hourly. Each time P1 is synchronized, its progress is advanced by 1000. The following table shows the segment of log scanned for each synchronization based on the old and new behavior:</p>
<p>				log scanned log scanned</p>
<p>				Action P1&#39;s progress P2&#39;s progress (old behavior) (new behavior)</p>
<p>				sync P1 1000 1000 1000-2000 1000-2000</p>
<p>				sync P1 1000 2000 1000-3000 2000-3000</p>
<p>				sync P1 1000 3000 1000-4000 3000-4000</p>
<p>				sync P1 1000 4000 1000-5000 4000-5000</p>
<p>				You should be able to define your publications as disjoint except where two publications contain the same table but with different WHERE clauses. Defining disjoint publications should never limit functionality because the dbmlsync -n option can accept a comma separated list of publications which causes the union of the publications to be synchronized.</p>
<p>				For example, suppose table T1 is to be synchronized throughout the day, and tables T1 and T2 are to be synchronized at the end of the day. Previously, you might have defined your publications as follows:</p>
<p>				- P1 contains T1 </p>
<p>				- P2 contain T1 and T2.</p>
<p>				- Synchronize during the day with the dbmlsync option -n P1</p>
<p>				- Synchronize at the end of the day with the dbmlsync option -n P2</p>
<p>				In order to take advantage of the new optimization, two publications should be defined: P1 contains T1, and P2 contains T2. During the day dbmlsync will synchronize using the -n P1 option. At the end of the day dblmsync will synchronize using -n P1,P2. This does the same thing, but is much more efficient with the new log scanning behavior.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464307">464307</a></td>
<td>The QAnywhere Agent may have displayed the errors on startup:</p>
<p>				... Failed to start QAnywhere Agent (register with DBLsn)</p>
<p>				... Error registering with DBLSN code: -1</p>
<p>				This was due to the MobiLink Listener crashing, and has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464321">464321</a></td>
<td>It was possible for the server to terminate the connection when an attempt was made by the application to cancel a request. This has been fixed so that the request is correctly cancelled and the connection is not terminated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464341">464341</a></td>
<td>Cancelling a statement containing a long-running function call would have appeared to succeed (i.e. the &quot;Execute&quot; menu item and toolbar button were enabled), but the statement might have been left running if the function was executed as a result of fetching rows from the statement&#39;s result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464348">464348</a></td>
<td>The following predefined variables, ias_Originator and ias_StatusTime, were missing from the list of predefined variables listed in the Rule dialog used when composing deletion or transmission rules. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464442">464442</a></td>
<td>The iAnywhere JDBC Driver could have leaked memory, and exhausted memory heaps, if an application causes many SQLWarnings to be generated. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464446">464446</a></td>
<td>Connecting to a version 10 server with a version 9 or older client, could have caused the server to ignore the Language connection parameter, or in rare cases, caused the server to crash. The language used by the connection would then have been the server&#39;s default language. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464473">464473</a></td>
<td>When executing the statement ALTER TABLE ADD FOREIGN KEY there was not check that the new foreign key rows all had matching primary rows. A check has been added so that the statement will now fail if a primary row is missing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464474">464474</a></td>
<td>On Mac OS X systems only, items in the menu bar for Sybase Central were enabled even when a modal dialog was open. If one of these menu items was clicked while the dialog was open, the program could have crashed. This has been fixed.</p>
<p>				Note, this problem affected the Interactive SQL utility, DBConsole, and the MobiLink Monitor as well, which have also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464477">464477</a></td>
<td>After the execution of an ALTER TABLE [ADD | DROP | MODIFY ] COLUMN statement, the server would have failed to reload trigger and stored procedure definitions. This reload should have caused a recompile of the trigger or procedure definitions, which would have altered the semantics of their statements if they depended upon the ALTERed column. As an example, if a query in a trigger definition used the syntax &quot;SELECT *&quot; and referenced the modified table, an incorrect number (or type) of columns would have been returned in the query&#39;s result. This oversight has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464488">464488</a></td>
<td>The MobiLink server now buffers pending writes more efficiently during HTTP synchronizations. This change allows the server to use significantly less memory, which may make for less swapping to disk.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464640">464640</a></td>
<td>The IAnywhere Oracle ODBC driver could have crashed if the following ODBC API functions were called in this order:</p>
<p>				SQLAllocHandle( ..., SQL_HANDLE_STMT, ...) (returns SQL_SUCCESS)</p>
<p>				SQLExecDirect( ..., &quot;select ...&quot;, ... ) (returns SQL_SUCCESS)</p>
<p>				SQLExecDirect( ..., &quot;insert...&quot;, ...) (returns SQL_ERROR)</p>
<p>				SQLFreeStmt( ..., SQL_UNBIND) with the same statement handle.</p>
<p>				The number of columns of the result set was not reset to zero when the same statement handle was reused. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464669">464669</a></td>
<td>In a database mirroring environment, an operational server may have crashed when first establishing a connection to another partner or the arbiter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464681">464681</a></td>
<td>Servers running on Unix systems, and experiencing a high volume of HTTP connections, may have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464828">464828</a></td>
<td>Calling the system procedure xp_sendmail with a non-ASCII character (i.e., character greater than 0x7f) in the Subject, would have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464834">464834</a></td>
<td>The &quot;Start Agent&quot; menu item associated with a .QAA file was missing a keyboard mnemonic. This has been correct so that it now has one.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464837">464837</a></td>
<td>A synchronization would have failed if it used publications, and the runtime did not know if the MobiLink server had received the upload of the previous synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464838">464838</a></td>
<td>It was possible for the Interactive SQL utility to crash (NullPointerException) if the window was closed while editing table data. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464849">464849</a></td>
<td>When a column for an INSERT statement was bound in a Java application as follows:</p>
<p>				stmt.setTimestamp( pnum, new java.sql.Timestamp(System.currentTimeMillis()) );</p>
<p>				executing the INSERT statement would have failed with a SQLE_CONVERSION_ERROR. The microseconds were not scaled into nanoseconds, and vice versa. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464881">464881</a></td>
<td>If an application initialized, finalized, and then re-initialized a client library, making a connection could possibly have caused the application to crash. How the client library is initializing and finalizing varies from API to API. For DBLib, this is done with db_init and db_fini. For ODBC with a Driver Manager, this is done when connecting when there are no existing connections from the application, and when disconnecting, when the connection being disconnected was the only connection from the application. This has now been fixed so that the application will not crash when making a connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464885">464885</a></td>
<td>When the MobiLink server was configured to support synchronization requests from version 9 clients using the -xo option, the following error could have occurred at shutdown: &quot;[-10117] Stream Error: Unable to open a &#39;tcpip&#39; network connection. An error occurred during shutdown.&quot;. This has been fixed so that the error no longer occurs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR464889">464889</a></td>
<td>If the -sl option (set Java options) was used more than once on the MobiLink server command line, an error such as &quot;unrecognized argument&quot; could have occurred. This has now been corrected. </p>
<p>				For example &quot;mlsrv10 -sl java ( opt1 ) -sl java (opt2 ) ...&quot; now correctly parses as &quot;mlsrv10 -sl java( opt1 opt2 ) ...&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465003">465003</a></td>
<td>If multiple connections using Remote Data Access attempted to read from the same set of tables in a Microsoft SQL Server database, then the connections would have been serialized. This was due to the fact that Remote Data Access always used pessimistic locking when connecting to Microsoft SQL Server. This has now been fixed so that connections to Microsoft SQL Server are no longer serialized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465040">465040</a></td>
<td>When the server was converting the WHERE, ON or HAVING clauses to Conjunctive Normal Form, and discovered at least one simplified or implied condition, then it was possible that the resulting query was not equivalent to the original query and therefore did not return the same result set.</p>
<p>				For example, the following should return 1 row, but did not return any rows:</p>
<p>				create table T1 ( d int, e int, f char(5) ,g char(5) );</p>
<p>				insert into T1 values ( 5, 2, &#39;4E&#39;, &#39;N&#39; ); </p>
<p>				select * from T1 </p>
<p>				where ( d is not null or d is NULL )</p>
<p>				and ( e = 2 or e is NULL ) </p>
<p>				and ( g &lt;&gt; &#39;Y&#39; or g is null )</p>
<p>				and e = 2 </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465042">465042</a></td>
<td>The way destination aliases are handled by the QAnywhere server changed in version 10.0.1 in a way that the plug-in didn&#39;t handle correctly. The list history entries for multi-addressed messages were including all of the messages sent to the alias members. This has now been fixed so that only those history entries whose addresses match the destination address shown in the Messages panel are shown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465151">465151</a></td>
<td>The UltraLite runtime would have accepted the empty string as a valid script version. This has been fixed. The empty string is now rejected, just like if it had been set to NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465161">465161</a></td>
<td>While rare, the server could have crashed on shutdown. This would only have been seen if more than one external function had been called, and the calls were either cancelled before the functions completed, or the database tasks servicing the request had received a thread deadlock error before the functions completed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465168">465168</a></td>
<td>Pipelined HTTP requests may have prematurely exceeded the MaxRequestSize protocol option limit, resulting in a 413 - &#39;Request Entity Too Large&#39; HTTP status. This has been fixed. Now, by default, the MaxRequestSize limit is 102,400 bytes per request.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465178">465178</a></td>
<td>As of version 10.0.0, Remote Data Access no longer worked with an ODBC driver that did not support UNICODE. This has now been resolved, and Remote Data Access is now possible with non-UNICODE ODBC drivers. It should be noted though that data coming from non-UNICODE ODBC drivers will not undergo any character set translation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465368">465368</a></td>
<td>If the Timeout synchronization parameter was set to a value that was too low, and a TLS or HTTPS synchronization was being done over a slow channel, the runtime may have attempted to send a liveness packet before the TLS handshake had been completed, causing the synchronization to fail in a number of different ways. The MobiLink server may have reported a handshake or protocol error, or the client could have crashed. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465371">465371</a></td>
<td>If a procedure, trigger, batch or event contained a string which was continued across multiple lines, and there was a syntax error in the procedure at some point after the string, the wrong line number would have been reported in the error message. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465383">465383</a></td>
<td>A web services procedure attempting to make a secure connection to a remote web service may have failed with the error &quot;Unable to connect to the remote host specified by &#39;&lt;URL&gt;&#39;&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465385">465385</a></td>
<td>Copying cells from results tables always copied the data as comma-delimited form, with character data quoted with quotation marks, without respecting the Interactive SQL options: isql_field_separator, isql_quote, and isql_escape_character. This has been corrected. </p>
<p>				Note, this fix now makes it easier to paste data from dbisql into Excel: Set the default field delimiter to a tab (&quot;\t&quot; -- a backslash followed by the lower-case letter T), then copy the data from the table in the usual way.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465388">465388</a></td>
<td>Inserting a row that contained a zero-length binary value for a long binary column would have caused the UltraLite engine to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465405">465405</a></td>
<td>The Edit/Select All menu item would only have operated on the contents of the &quot;SQL Statements&quot; field. The intended behavior is that this operation select the contents of the active pane. This has been fixed so that if a result table has focus, the Edit/Select All menu item selects all of the rows it contains.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465530">465530</a></td>
<td>If the filename of a transaction log, including its full path, was exactly 70 bytes, and the Backup utility was used to do a backup, the server would have failed to truncate the log when the -x option (delete and restart the transaction log) was specified. This has been fixed. </p>
<p>				A workaround would be to use the BACKUP DATABASE statement with the TRANSACTION LOG TRUNCATE clause to truncate the log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465693">465693</a></td>
<td>If the ExecuteQuery method detected an error, a non-null ResultSet could still have been returned. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465695">465695</a></td>
<td>After connecting using embedded SQL, some user options may not have been respected until the first SET OPTION was performed. Public options may have been used instead of any user options (i.e. options set with &quot;SET OPTION user.option = value&quot; may not have been respected.)</p>
<p>				After executing a SETUSER WITH PERMISSIONS userid statement, some of the current options for userid may not be respected. Similarly, the next SETUSER command which should have set the options back, may have caused the original options to not be respected.</p>
<p>				Both of these problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465708">465708</a></td>
<td>After it has started all necessary processes, the QAnywhere Agent now prints a line like this to the console window and log file:</p>
<p>				I. 2007-04-11 11:21:54. There are 23 processes running</p>
<p>				This is useful in diagnosing problems on Windows CE devices with Windows Mobile 5, and previous OSes, because there is a fixed limit of 32 processes that can be running at once. After that, the OS will start shutting down applications in a not completely deterministic way.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465712">465712</a></td>
<td>When running the consolidated database on a server that uses snapshot isolation (Oracle 10g for example), it was possible that MobiLink would have redelivered messages to QAnywhere clients that were previously received and acknowledged. This problem would have occurred when there was a long-running transaction on the consolidated database, which caused the last_download_timestamp to stay fixed at the time that the transaction began. It has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465733">465733</a></td>
<td>Attempting to create a a tracing database would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465814">465814</a></td>
<td>Performing a LOAD TABLE into a temporary table that already contained rows could have crashed, if the table had no primary key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465848">465848</a></td>
<td>On MacOS systems, trying to connect to a server running on the same machine as the client over the IPv6 loopback address would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465947">465947</a></td>
<td>MobiLink clients that use TLS or HTTPS would have crashed if they were not able to load the appropriate TLS stream dlls (mlcrsa10.dll, mlcecc10.dll, mlcrsafips10.dll and sbgse2.dll). This has been fixed. They will now report the error &quot;Failed to load library x&quot; (STREAM_ERROR_LOAD_LIBRARY_FAILURE).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR465964">465964</a></td>
<td>If a web service had a SQL statement associated with it, the web service property sheet was used to change the web service&#39;s type to &#39;DISH&#39;, then the SQL statement would have been deleted without warning. Now a warning message appears when &#39;DISH&#39; is selected in the &quot;Service type:&quot; drop down list, with an opportunity to select Cancel without deleting the SQL statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466044">466044</a></td>
<td>If the server was started with the -qw (&quot;do not display database server screen&quot;) or -qi (&quot;do not display database server tray icon or screen&quot;) command line options, certain messages, such as checkpoint messages, would not have been written to the output log or to the internal message list (which can be queried with the property functions). Services on Windows Vista, as well as services on XP which did not allow interaction with the desktop, may have behaved as if -qi was specified. This has been fixed so that all messages now always go to the server output log and internal message list.</p>
<p>				On Windows, the -qw switch now completely suppresses the creation of the server window. As before, a systray icon is created but that icon is now created immediately upon startup. Previously, a minimized server window was created momentarily before the systray icon was created. In 9.0.2, the menu for the systray icon allowed the user to open the server window via the &quot;Restore&quot; menu item but &quot;Restore&quot; has now been disabled (which is consistent with 10.x &amp; the fact that -qw is supposed to prevent the creation of a server window).</p>
<p>				On UNIX, the -qw switch suppresses all messages from going to the console after the &#39;press q to quit&#39; message has been displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466058">466058</a></td>
<td>A new option has been added to the CE Deployement Installer, which allows for excluding the default QAnywhere database in the .CAB file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466070">466070</a></td>
<td>Connection attempts to the utility_db would have failed, throwing an exception that setting options was not allowed in the utility_db. As the SET OPTION statement is not valid in the utility_db, the AsaConection method now checks if the database is the utility_db before issuing a SET TEMPORARY OPTION statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466074">466074</a></td>
<td>Certain x.509 server certificates would have been erroneously rejected by the client during the TLS handshake, causing the connection to fail. Certificates generated by 10.0 gencert were particularly likely to be rejected. This problem has been resolved by upgrading to newer versions of the Certicom TLS libraries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466091">466091</a></td>
<td>The Unload utility (dbunload) may have crashed when attempting to rebuild a database prior to version 10, if a version 10 server that disallowed connections to the utility_db was already running. Thia has been fixed.</p>
<p>				Note, in general it is good practice to insure that no version 10 server is running when rebuilding databases prior to version 10.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466169">466169</a></td>
<td>The method QAManagerBase.GetQueueDepth() could have returned a queue depth of 0 when there were untransmitted outgoing messages in the message store. This was due to a race condition between the GetQueueDepth method and the message transmission process in the QAnywhere Agent. This has been fixed by changing the behaviour of GetQueueDepth so that uncommitted outgoing messages are included in the queue depth count.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466188">466188</a></td>
<td>When unloading a database created using a version prior to 10, using the version 10.x Unload utility , the unload may have failed with the error &quot;SQL error: Not enough memory to start&quot;. This would only have occurred if one of the dbunload command line options -ac, -ar or -an was used, either the unload engine or the reload engine (or both) had to be autostarted and was the 32 bit server, and the machine had sufficient RAM such that when dbunload requested a cache size of 40% of available memory, this was greater than the maximum allowable non-AWE cache size on the given platform. This would have meant a memory size of about 8 GB on Unix and 32-bit Windows platforms, and 10 GB on 64-bit Windows. This has been fixed.</p>
<p>				A workaround is to specify the undocumented dbunload options -so and -sn, to set the options for the unload and reload servers respectively, as follows:</p>
<p>				dbunload -so &quot; -ch 40p&quot; -sn &quot; -c 40p&quot; ...</p>
<p>				Note the space before the -c switches, these are required. Mnemonic: -so sets the additional switches for the &quot;Old&quot; server, -sn sets the additional switches for the &quot;New&quot; server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466202">466202</a></td>
<td>The maximum number of active SQLCA variables (i.e. SQLCAs that have been initialized and used to call into the runtime, but not finalized) supported by the UltaLite engine has been increased from 31 to 63.</p>
<p>				For .NET applications, the SQLCA limit also represents the database connection limit, since a new sqlca is used for each connection. Also, an internal SQLCA is used by each .NET application, so the effective connection limit for .NET apps is 63 minus the number of running .NET clients.</p>
<p>				Note that the runtime&#39;s connection limit is 64.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466203">466203</a></td>
<td>If a trigger encountered an error due to a statement referencing a table that was exclusively locked by another connection, a subsequent execution of the trigger could report &quot;Invalid statement&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466209">466209</a></td>
<td>The QAnywhere Agent (qaagent) now has an option to control where the listener tracking store is created. The option is -z &lt;path&gt; and corresponds to the dblsn -z option documented in Engineering case 460718.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466265">466265</a></td>
<td>When unloading a database, either with the Unload utility or the UNLOAD statement, DDL statements to create a non-primary key index on a global temporary table would not have been written to the reload.sql file. This has been fixed and proper DDL to re-create the index is now written to the reload file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466293">466293</a></td>
<td>A server with active HTTP connections could have hung indefinitely during shutdown. At the point of the hang, the server had completed stopping all databases. This has been fixed so that the server shutdown will not hang, although in rare cases it could still take up to about 20 seconds after the databases have been stopped to complete the shutdown process.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466319">466319</a></td>
<td>An IF expression, with one branch of type XML and one of type VARCHAR, would have returned type VARCHAR and therefore special characters would be quoted in a SQLX function. This has been corrected so that the IF expression now returns type XML in this case. In the following example, the e1 element is quoted before the fix, but not after:</p>
<p>				select xmlelement( name e, IF 1=1 THEN cast( &#39;&lt;e1/&gt;&#39; as xml ) ELSE &#39;&#39; ENDIF )</p>
<p>				A workaround to avoid the quoting without the fix is to make all branches of the IF the same type:</p>
<p>				select xmlelement( name e, IF 1=1 THEN cast( &#39;&lt;e1/&gt;&#39; as xml ) ELSE cast( &#39;&#39; as xml ) ENDIF )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466442">466442</a></td>
<td>The changes for Engineering case 449577 introduced a problem with the Developer and Evaluation Editions. When run on Unix systems, the server could not be autostarted, and therefore utilities that auto-start servers, such as dbinit or dbunload, would have failed. On Linux systems, the server would have started to the point where the GUI splash screen / license prompt was brought up. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466446">466446</a></td>
<td>Two command line options have been added to the MobiLink listener (dnlsn) for controlling ip tracking behavior.</p>
<p>				1. The -gi option controls the ip tracker polling interval. The default is 10 seconds.</p>
<p>				example: dblsn.exe -gi 30</p>
<p>				2. The -ga option is for asynchronous ip tracking. The -gi option is ignored when -ga is used.</p>
<p>				example: dblsn.exe -ga</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466456">466456</a></td>
<td>If an application had an open cursor, and another transaction deleted a row that affected that cursor, it was possible for the cursor to have been positioned on the wrong row. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466474">466474</a></td>
<td>When synchronization tables on an ASE database server were created with the &#39;datarows&#39; locking scheme, the MobiLink server could have silently skipped rows that were inserted by other connections without a commit. The ASE server doesn&#39;t block any other connections that are trying to query the rows from a table that were created with &#39;datarows&#39; locking scheme, even when there are uncommitted inserts for this table. The MobiLink server now work around this behaviour properly to ensure that no rows are skipped. </p>
<p>				By default, the MobiLink server now queries the minimum transaction starting time from master..systransactions and then sends this timestamp to the client as the last download timestamp. In the next synchronization for this client, the MobiLink server will use this timestamp as the last download time for download. In order to get the starting time, the user ID the MobiLink server uses to connect to an ASE server must have select permission and the master..systransactions table. If the user does not have proper permissions, the MobiLink server will present a</p>
<p>				warning message and get the download time from the ASE function getdate(), reverting to the old behaviour where rows could be missed in the download. With this change, it&#39;s now possible that the MobiLink server may send duplicate data to clients, if there are any open transactions that modified any tables in the synchronization database or any databases on the ASE</p>
<p>				database server when MobiLink server is doing a download. Although the clients are able to handle duplicate data, this behavior may reduce MobiLink server performance.</p>
<p>				The MobiLink server now includes two new command line switches so you can the behaviour of the MobiLink server with respect to tables with the &#39;datarows&#39; locking scheme. The -dr switch can be used to tell MobiLink that none of the synchronizing tables use the &#39;datarows&#39; locking scheme. The -dt switch can be used to force MobiLink to detect transactions only within the current database when determining the last download time that will be sent to the remote database. The -dt switch should be used if all the synchronizing tables are located in a single database, as this could reduce duplicate data sent by the MobiLink server to the clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466491">466491</a></td>
<td>The server could have failed with various assertion failure errors when rebuilding a database with an invalid foreign key definition. For example, if the foreign key trigger action had the column being set to NULL, based on some event and the column definition did not allow NULLs, then this could have occurred. A database could have gotten into this state if at the time the foreign key was created the definition was valid but the column definition changed at a later date. The proper error is now returned indicating the reason the key is now invalid.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466513">466513</a></td>
<td>Executing an SQL statement with input parameters could have caused a memory leak. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466559">466559</a></td>
<td>If a LOAD TABLE statement attempted to load a NUMERIC value that was too large for the target column, an invalid value would have been loaded. Now a conversion error is reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466560">466560</a></td>
<td>Using 2.0 ADO .Net provider could have caused the exception TypeLoadException. The 2.0 provider was built as an x86 specific assembly, but the assembly binding policy file was not updated. This has now been fix by adding processorArchitecture=&quot;x86&quot; to the assembly binding policy file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466566">466566</a></td>
<td>If a cursor was opened on a statement containing a comparison predicate of the form &quot;T.x = val&quot;, where val was NULL, and, further, the statement was opened with the Rowcounts option ON, or scrolling forward and backward was performed, then the server could have given the wrong answer (rows that did not match the predicate), or in some cases a crash was possible. In order for the problem to appear, the value had to have specific characteristics (for example, variable within a stored procedure, or an unquantified function). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466683">466683</a></td>
<td>The runtime could have crashed at the end of an HTTPS synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466685">466685</a></td>
<td>When synchronization tables on an ASE database server were created with the &#39;datarows&#39; locking scheme, the MobiLink server could have silently skipped rows that were inserted by other connections without a commit. The ASE server doesn&#39;t block any other connections that are trying to query the rows from a table that were created with &#39;datarows&#39; locking scheme, even when there are uncommitted inserts for this table. The MobiLink server now works around this behaviour properly to ensure that no rows are skipped. </p>
<p>				By default, the MobiLink server now queries the minimum transaction starting time from master..systransactions and then sends this timestamp to the client as the last download timestamp. In the next synchronization for this client, the MobiLink server will use this timestamp as the last download time for download. In order to get the starting time, the user ID the MobiLink server uses to connect to an ASE server must have select permission and the master..systransactions table. If the user does not have proper permissions, the MobiLink server will present a warning message and get the download time from the ASE function getdate(), reverting to the old behaviour where rows could be missed in the download. With this change, it&#39;s now possible that the MobiLink server may send duplicate data to clients, if there are any open transactions that modified any tables in the synchronization database or any databases on the ASE database server when MobiLink server is doing a download. Although the clients are able to handle duplicate data, this behavior may reduce MobiLink server performance.</p>
<p>				The MobiLink server now includes a new command line switch so you can the behaviour of the MobiLink server with respect to tables with the &#39;datarows&#39; locking scheme. The -dr switch can be used to tell MobiLink that none of the synchronizing tables use the &#39;datarows&#39; locking scheme. The -dt switch on the MobiLink server has also been enhanced to include Adaptive Server Enterprise in addition to Microsoft SQL Server. The -dt switch can be used to force MobiLink to detect transactions only within the current database when determining the last download time that will be sent to the remote database. The -dt switch should be used if all the synchronizing tables are located in a single database, as this could reduce duplicate data sent by the MobiLink server to the clients.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466696">466696</a></td>
<td>When a MobiLink server was started with the Java VM loaded, an error related to network issues could have caused the server to crash when shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466700">466700</a></td>
<td>When using the IBM DB2 ODBC driver with the iAnywhere JDBC driver to try to fetch rows from a result set, the iAnywhere JDBC driver would have have crashed if the result set had a CLOB column. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466735">466735</a></td>
<td>If an application connected to the server using jConnect 6.x, and attempted to query a nullable long nvarchar column, then is was very likely the server would have hung. The TDS datatype map was incorrectly resolving nullable long nvarchar columns to itself, rather than resolving to nullable long binary as per the TDS specification. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466790">466790</a></td>
<td>If a query contained at least two predicates &quot;T.col = (subselect1)&quot; and &quot;R.col = (subselect2)&quot; and both predicates could be used as fence posts for index scans on the tables T and R respectively, then the optimizer would have under estimated the cardinality of the joins which may have resulted, for complex queries, in unoptimal plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466812">466812</a></td>
<td>HTTP synchronizations through third party web servers, or proxies that use cookies, could have failed with stream error STREAM_ERROR_HTTP_HEADER_PARSE_ERROR. Also, if the server used the &quot;Set-Cookie2&quot; header, the client would never have sent the cookie back up to the server. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_45.htm#CR466829">466829</a></td>
<td>If the server was in the process of starting up or shutting down when the machine was put into the hibernate state, the server may then have crashed when the machine came out of hibernation. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR466873">466873</a></td>
<td>If an application made a remote procedure call to a stored procedure in a Microsoft SQL Server database, and one of the arguments to the stored procedure was a string argument of type Input with the value of &#39;&#39; (empty string), then the RPC would have failed with an &#39;invalid precision value&#39; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR466887">466887</a></td>
<td>Using encrypted streams could have resulted in failed synchronizations, particularly on Mac systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR466968">466968</a></td>
<td>Repeated concatenation of a string to another concatenation expression, could have caused the server to use excessive amounts of cache memory, eventually resulting in a stack overflow or a crash. For this to have occurred, a concatenation expression must have repeatedly been performed as the right hand argument of a concatenation expression. </p>
<p>				For example:</p>
<p>				declare @var long varchar; </p>
<p>				declare @counter integer; </p>
<p>				set @counter = 1; </p>
<p>				set @var = space(30); </p>
<p>				calcloop: </p>
<p>				WHILE @counter &lt; 100000 LOOP </p>
<p>				set @var = &#39;string&#39; || @var;</p>
<p>				set @counter = @counter + 1; </p>
<p>				END LOOP calcloop; </p>
<p>				The error did not occur if only the left hand argument of a concatenation expression was a concatenation expression, i.e., set @var = @var || &#39;string&#39;;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR466989">466989</a></td>
<td>When running on HP-UX Itanium, the server did not search the LD_LIBRARY_PATH when trying to locate shared libraries, instead the SHLIB_PATH is searched. Now both locations are searched.</p>
<p>				Note that in most cases the script sa_config.sh or sa_config.csh, that is included in the install, is used to set the environment for SQL Anywhere. When sa_config is used, both SHLIB_PATH and LD_LIBRARY_PATH are set, and hence SQL Anywhere will be able to find any libraries it requires. If sa_config is not used, users should work around this issue by </p>
<p>				setting both SHLIB_PATH and LD_LIBRARY_PATH.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR466996">466996</a></td>
<td>It was possible for a dbmlsync synchronization to fail with the following error messages:</p>
<p>				... Communication error occurred while sending data to the MobiLink server</p>
<p>				... Internal error (???!s).</p>
<p>				... Communication error occurred while sending data to the MobiLink server</p>
<p>				... Unspecified communication error</p>
<p>				This problem was most likely to have occurred when a slow network was being used. With a slow network, dbmlsync could have become blocked on a network write. which prevented the sending of a liveness message. To correct this problem, dbmlsync will no longer attempt to send liveness messages when it is blocked on a write.</p>
<p>				A possible workaround for this problem would be to use the timeout communication parameter to increase the liveness timeout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467100">467100</a></td>
<td>When very rare, a client application using a shared memory connection could have hung forever while executing a statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467122">467122</a></td>
<td>The execution time of the CREATE TABLE statement did not scale very well as the number of columns being created increased. The statement could have taken a significant amount of time to create tables with thousands of columns. The performance of the server has been improved so that the CREATE TABLE statement behaves more gracefully as bigger tables are created.</p>
<p>				Note, this also addresses the problem where deleting a column from a table via the ALTER TABLE statement would have caused a syntax error for values that already existed in other columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467128">467128</a></td>
<td>The following system stored procedures no longer require DBA authority by default:</p>
<p>				sa_dependent_views</p>
<p>				sa_get_dtt</p>
<p>				sa_check_commit</p>
<p>				sa_materialized_view_info</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467145">467145</a></td>
<td>The keybaord accelerator for the &quot;SQL/Stop&quot; menu item was displayed as &quot;Ctrl+Clear&quot;, even though there is no &quot;Clear&quot; key on most keyboards. This text has been changed to read &quot;Ctrl+Break&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467246">467246</a></td>
<td>When there were a large number of messages in the message store that were ready for transmission (eg. 200 12KB messages), and the QAnywhere Agent was started on a Windows Mobile 5 device, the synchronization process would have consumed 100% CPU for a significant period of time (eg. 1 minute). Further, if the upload failed after it had started, for whatever reason, each subsequent synchronization would have consumed CPU for a longer period each time. This performance problem has now been significantly alleviated so that synchronizations with QAnywhere will not get progressively longer after upload failures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467259">467259</a></td>
<td>The server could have crashed when a large number of connections were concurrently executing INSERT or UPDATE statements on tables with CHECK constraints. This was more likely to occur on multi-processor machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467268">467268</a></td>
<td>Synchronizations that took longer than ten minutes could have been timed-out by the MobiLink server, if the synchronization parameter &#39;timeout&#39; was set to zero. MobiLink clients send keep-alive bytes to the MobiLink server at an interval of half the timeout value to keep the connection active, UltraLite was not sending these bytes if the timeout value was set to zero. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467269">467269</a></td>
<td>For some input values, the UNISTR() function could have entered an endless loop. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467274">467274</a></td>
<td>When a QAnywhere application (using SQL Anywhere as the message store) queued messages in time zone A, and then the time zone of the device was changed to time zone B with time earlier than time zone A, the queued messages would not have been transmitted until the time in time zone B reached the time that the messages were queued in time zone A. This has been fixed so that the messages queued in time zone A are now sent immediately when the device is online in time zone B.</p>
<p>				Note that the issue of time zone independence with QAnywhere has not been completely addressed. All time values used in transmission rules refer to local time. Also, the special variable ias_StatusTime, used in transmission rules, refers to local time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467276">467276</a></td>
<td>The SQL Anywhere OLE DB provider may have failed an assertion if called by ADO with an incorrect set of parameters to Rowset::ReleaseRows. This problem only exists in the 64-bit version of MSADO15.DLL for Windows Vista. It does not exist in the 32-bit version of Vista, nor does it exist in the 64-bit version of Windows 2003. It occurred when ADO calls the SQL Anywhere OLE DB provider to release rows in a rowset that it has not previously fetched rows from. The symptoms include a request to release a rowset with a single row and a pointer to a row handle that is invalid.</p>
<p>				A work around has been added to the SQL Anywhere OLE DB provider such that a request to release a rowset when no rowset exists will be ignored. The following VBScript sample will fail on 64-bit Windows Vista without the provider workaround:</p>
<p>				query = &quot;SELECT * FROM Employees&quot;</p>
<p>				Set recordset = connection.Execute(query)</p>
<p>				For Each field in recordset.Fields</p>
<p>				WScript.Echo field.Name</p>
<p>				propCount = 0</p>
<p>				For Each prop in field.Properties &#39;crashes on 64-bit Vista</p>
<p>				...</p>
<p>				Next</p>
<p>				Next</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467437">467437</a></td>
<td>Referencing a column as &quot;IDENTIFIER&quot; .. &quot;IDENTIFIER&quot; (note: two dots) could have caused the server to hang. In cases where the server did not hang, the first identifier would have been ignored. A similar problem existed for columns referenced as &quot;IDENTIFIER&quot; . &quot;IDENTIFIER&quot; .. &quot;IDENTIFIER&quot;.</p>
<p>				For example, the following script would have caused a server hang:</p>
<p>				CREATE TABLE T1 (</p>
<p>				x char(4) NOT NULL,</p>
<p>				y char(13) NOT NULL,</p>
<p>				z char(5) NOT NULL,</p>
<p>				);</p>
<p>				CREATE TABLE T2 (</p>
<p>				w char(5) NOT NULL,</p>
<p>				);</p>
<p>				SELECT a.x as x, a.y as y, </p>
<p>				count(b.w)</p>
<p>				FROM T1 a, </p>
<p>				T2 b</p>
<p>				WHERE a.z = b.w</p>
<p>				Group by a.y, a..x ; -- Note extra &#39;.&#39;</p>
<p>				Now, the server will generate an error if a query contains a column expression of the form </p>
<p>				&quot;IDENTIFIER&quot; .. &quot;IDENTIFIER&quot; </p>
<p>				or </p>
<p>				&quot;IDENTIFIER&quot; . &quot;IDENTIFIER&quot; .. &quot;IDENTIFIER&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467441">467441</a></td>
<td>The built-in MobiLink authentication classes that authenticate to external LDAP, POP3 and IMAP servers were unable to read a property if the ScriptVersion of the property was defined as &#39;ml_global&#39;. It is now possible to define both the authenticate_user connection script and MobiLink properties needed for authentication using the special &#39;ml_global&#39; connection script.</p>
<p>				Note that the ml_global property can be over-ridden with a script version specific property, similar to the way connection scripts work.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467446">467446</a></td>
<td>If auditing of database activity was enabled, certain failed connection attempts could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467468">467468</a></td>
<td>The server could have crashed, or became deadlocked, when using snapshot isolation. This could only have happened if the snapshot transaction made use of a long index value. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467495">467495</a></td>
<td>It was possible for an UPDATE or DELETE statement executed at isolation level 0, to have been blocked on a row lock for a row that was not actually affected by the statement. For this to have occurred, the row of the table must have matched all of the local simple predicates for the table, but be rejected by a later subquery or join predicat, or a predicate involving a user defined function. This behaviour has been changed. Now, UPDATE and DELETE statements at isolation level 0 will only take INTENT or EXCLUSIVE locks on the rows that are actually modified by the statement. Further, this change adjusts the locking behaviour at isolation level 1 so that it is less likely for an INTENT or EXCLUSIVE lock to be taken on a row not affected by an UPDATE or DELETE statement, but this is not guaranteed at isolation level 1. With isolation levels 0 and 1, update anomalies may occur and not all anomalies are prevented by the locking mechanism. Application developers should use caution when using isolation level 0 or 1 with UPDATE and DELETE statements to ensure that the semantics are acceptable to them.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467502">467502</a></td>
<td>A warning message output by the UltraLite Database Initialization utility may have been misleading. When column subsets in a table T that were referenced in a publication PUB, were used to build an UltraLite database, the following warning was displayed:</p>
<p>				ignoring column subset for publication &#39;PUB&#39;, table &#39;T&#39; -- all columns will be added</p>
<p>				Actually, the column subset was being used to build the UltraLite table, it&#39;s just that columns not in the subset were being properly excluded from the UltraLite table schema. The message was intended to warn the user in regard to synchronization publications, as UltraLite always synchronizes all of the rows of a table that is specified in a sync publication. Part of the confusion is due to overloading the concept of a publication as a set of tables plus columns to be included in the schema, with the concept of a publication as a set of tables to be synchronized. In order to make this clearer, the warning has been changed to:</p>
<p>				ignoring column subset for synchronization publication &#39;PUB&#39;, table &#39;T&#39; -- UltraLite synchronizes entire rows&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467507">467507</a></td>
<td>When using SQL Server Business Intelligence Development Studio, the Data Flow Task &quot;Preview&quot; and column list functions would have failed when using the SQL Anywhere OLEDB Provider to connect to a SQL Anywhere server. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467522">467522</a></td>
<td>When making a remote procedure call to a stored procedure in a Microsoft SQL Server database, if one of the arguments to the stored procedure was a string argument of type Input with a value of NULL, then the RPC would have failed with an &quot;Invalid precision value&#39; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467528">467528</a></td>
<td>Applications running on AIX systems, and providing the CPORT option in the connection string, would have failed to connect if IPv6 was enabled. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467580">467580</a></td>
<td>If a function was declared non-deterministic and it was used in a SELECT INTO (variable) statement, then the function could have been executed extra times. For this to have occurred, the function reference must not have contained any column references. This problem could also have occurred for SELECT statements, if a column were fetched using GET DATA requests. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467586">467586</a></td>
<td>After a failed integrated login, calls to the system function EVENT_PARAMETER( &#39;User&#39; ) in the ConnectFailed event, could have returned garbage characters. This has been fixed so that calls to EVENT_PARAMETER( &#39;User&#39; ) will now return the empty string if the user is not known.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467587">467587</a></td>
<td>The server may have crashed if it was not able to get the network interfaces from the operating system. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467590">467590</a></td>
<td>If concatenation was performed in procedural code (either using the concatenation operator or string() function), and one of the arguments had an error, then the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467594">467594</a></td>
<td>Calling SADataReader may have caused extra characters to have been returned for string values. A miscalculation of the strings length has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467621">467621</a></td>
<td>The Server Licensing utility, dblic, is used to modify the server&#39;s licensing information. In version 10.0.1, with the introduction of license files, dblic operates on the license file instead of the server executable. As an extension, it is possible to still specify the name of the server executable as the argument to dblic. When doing this though, the contents of the license file was being written out over top of the server executable, rendering it unusable. This has been fixed so that it is now possible to specify either the name of the license file or the server executable and dblic will modify only the license file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467652">467652</a></td>
<td>If a procedure had a query that referenced a table that was then modified by an ALTER TABLE statement, later execution of the procedure could have caused the server to crash. This has been fixed.</p>
<p>				See also Engineer case 443016</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467712">467712</a></td>
<td>A .NET application would have crashed when trying to send a text message, if the QAManager is closed. Problems with detecting that message repository objects were open have been corrected. Now, the message: &quot;The QAManager is not open.&quot; (error code 1021) will be returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467733">467733</a></td>
<td>When editing a stored procedure which had more than about 1000 lines, CPU usage could have gone to 100%, even without doing anything. This same problem affected the Interactive SQL utility dbisql as well, when editing large SQL files. The problem was caused by the amount of tokenizing being done for syntax highlighting. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467737">467737</a></td>
<td>When SQL Anywhere was installed in a directory path containing non-ASCII characters, on a system for which the ANSI code page was different from the OEM code page (such as a typical English Windows installation), the server and client libraries may not have been able to access Unilib data files. The problem could show up as an &quot;invalid parameter&quot; error from SORTKEY/COMPARE, or failure to create certain character set converters. The path was erroneously being converted from the OEM codepage to UTF16, rather than from the ANSI codepage to UTF16. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467747">467747</a></td>
<td>A second situation similar to Engineering case 467468 was found where the server could have crashed, or became deadlocked, when using snapshot isolation. As with the previous issue, this could only have happened if the snapshot transaction made use of a long index value. This has now been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467783">467783</a></td>
<td>When executing a statement, the &quot;Execution time&quot; message displayed in the &quot;Messages&quot; pane could have been displayed before all of the asynchronous messages caused by a statement had been displayed. This has been corrected to that the execution time message follows the asynchronous messages. Asynchronous messages are those generated explicitly by the MESSAGE statement, or implicitly by CREATE DATABASE.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467789">467789</a></td>
<td>Interrupting a SQL statement would not have also aborted any subsequent statements which were pending execution. For example, if a number of statements were entered in the &quot;SQL Statements&quot; field each separated by the command delimiterand then executed, attempting to abort them by clicking the &quot;interrupt&quot; toolbar button, would only have aborted the statement currently executing when the button was aborted; the remaining statements would have continued to be executed. This has been fixed so that the remaining statements are not executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467800">467800</a></td>
<td>Attempting to create a proxy table to a table that has a computed index on a remote Oracle server, would have failed with the error &quot;column not found&quot;. As part of creating a proxy table to an existing remote table, the server will also attempt to create indexes on the proxy table to match the indexes on the remote table. In this case, the name returned for the computed column was not an actual column name, but an expression name. The server now verifies that the column name truly is the name of a column in the proxy table when automatically creating indexes on proxy tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467861">467861</a></td>
<td>OLEDB driver retuns error when executing stored procedure with parameters</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467873">467873</a></td>
<td>The dblib functions db_change_char_charset() and db_change_nchar_charset() may not have set the error correctly if they failed, and an error was already set from the last request. This has been fixed so that the error is now set correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR467970">467970</a></td>
<td>In the presence of a thread deadlock error, an HTTP or SOAP stored procedure or function could have caused the server to appear to hang indefinitely. This problem would only have occurred if the HTTP or SOAP procedure or function being initiated happened to be the last unblocked database request task (i.e., on a server with a -gn value of x, x-1 request tasks would need to be blocked already). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468023">468023</a></td>
<td>When performing a 10.0.1 upgrade of a 10.0.0 install on Windows, when the FIPS option was selected the dbfips10.dll is not updated. This has been fixed. EBFs with this change will now update the dbfips10.dll.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468031">468031</a></td>
<td>Under some conditions, the qastop utility would have failed to shutdown the QAnywhere Agent. When this occurred, qaagent would hang and the process would have to be terminated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468033">468033</a></td>
<td>Inout parameters were not returned by SADataAdapter.Update when using SADataAdapter and stored procedures to update data. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468129">468129</a></td>
<td>When an error occurs during synchronization, the MobiLink server should display the full details of the error, including the MobiLInk user name, remote ID, script version, row values (if available), etc. However, if no -vr command line option was specified, the row values were not displayed in the error context by the MobiLink server. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468148">468148</a></td>
<td>In some cases, executing queries that contained more than one procedure in the FROM clause could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468319">468319</a></td>
<td>It was possible, although very unlikely and timing dependent, that the server could have hung, or even less likely crashed, when a connection was disconnected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468343">468343</a></td>
<td>If an application attempted to connecting using the TCP parameter DoBroadcast=None and specified an alternate server name, rather than the real server name, in the ENG parameter, the connection would have failed. This has been fixed. </p>
<p>				Note that the fix requires both an updated server and updated client library.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468347">468347</a></td>
<td>MobiLink clients would never have timed-out a connection if the timeout synchronization parameter was set to zero. This has been fixed so that connections will now timeout after the maximum timeout period of 10 minutes if the server has not responded in this period.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468358">468358</a></td>
<td>If the server returned the error &quot;Dynamic memory exhausted&quot;, it will be followed by diagnostic information about the cache usage that is printed to a file. During this diagnostic printing the server may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468456">468456</a></td>
<td>For certain MobiLink server errors, such as authentication failure, a second error may have appeared later in the log: &quot;Download failed with client error xxx&quot; when download acks had been turned on. This could have been confusing, since it suggested the error originated on the client, when the true error was reported further up in the server log. This has been corrected; the second error message will no longer appear.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468462">468462</a></td>
<td>If BCP IN was used to populate a table owned by a user other than the connected user, it would have failed with either a &#39;table not found&#39; error, or the server could have crashed. In some cases, if the connected user also owned a table with the same name as the table being populated, then the server would have attempted to add rows to the wrong table. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468558">468558</a></td>
<td>The MobiLink plug-in may have failed to create an index on the timestamp column used for timestamp-based synchronization if the consolidated database was an Oracle consolidated database. The script the plug-in uses (in ml-template.zip) has been fixed and the column is now properly indexed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468582">468582</a></td>
<td>The SQL Anywhere 10.0.1 Maintenance Release was not updating the ADO.NET Data Provider file: iAnywhere.Data.SQLAnywhere.dll. This has been fixed so that susequent EBFs will update this file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468602">468602</a></td>
<td>The MobiLink file transfer utility mlfiletransfer did not display national characters properly on the command line. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468630">468630</a></td>
<td>The iAnywhere JDBC Driver currently supports the ResultSet.getBlob() method even though this method is optional in the JDBC specification. However, the ResultSet.getBlob().getBinaryStream() method (which is also optional in the specification) was not supported. Some applications insist that Blob.getBinaryStream() be supported if getBlob() is supported. As a result, the iAnywhere JDBC Driver now supports ResultSet.getBlob().getBinaryStream().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468631">468631</a></td>
<td>All of the GUI applications shipped with SQL Anywhere for Mac OS X, such as the Interactive SQL utility and DBLauncher, would have stopped working after applying </p>
<p>				updates to Mac OS X, specifically Security Update 2007-004. The applications would either have crashed, or displayed a message similar to the following:</p>
<p>				The library dbput9_r could not be loaded. This may be because the provider is being re-loaded (in which case you need to restart the viewer) or because the library could not be found in the Adaptive Server Anywhere installation. Service management will not be available.</p>
<p>				or:</p>
<p>				Link (dyld) error: Library not loaded: libdbserv9_r.dylib Referenced from: /Applications/SQLAnywhere9/System/bin/dbsrv9 Reason: image not found</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468726">468726</a></td>
<td>The server could have returned incorrect results, or in some cases crashed, when executing statements with predicates of the form &quot;expression compare (subquery)&quot;. This has been fixed. </p>
<p>				Note that BETWEEN predicates involving subqueries also qualify as they are interpreted as two compare predicates (see example below). </p>
<p>				Example:</p>
<p>				select s_suppkey,</p>
<p>				s_name,</p>
<p>				s_address,</p>
<p>				s_phone,</p>
<p>				total_revenue</p>
<p>				from supplier, revenue1</p>
<p>				where s_suppkey = supplier_no</p>
<p>				and ( select max(total_revenue)</p>
<p>				from revenue1</p>
<p>				) between (total_revenue-0.01) and (total_revenue+0.01) </p>
<p>				order by s_suppkey</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468735">468735</a></td>
<td>If a QAnywhere message in the server database with an expiration date, was synchronized down to a client device before it had expired, the message would not have transitioned to an expired state, and hence would not have been deleted by the default server delete rule. This has been fixed.</p>
<p>				Note that a QAnywhere message in the server database with an expiration date, that is not delivered to the client device before it expires, will also transition to an expired state and be deleted by the default server delete rule. This was the case before this change.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468745">468745</a></td>
<td>If the option to view the Readme.txt file, or the iAnywhere Online Resources page, was selected during an install, the corresponding application would not have run. However, the install script would have waited for the user to dismiss the (invisible) application(s), and the install would have appeared to be hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468783">468783</a></td>
<td>Clicking the Name column heading in the table editor, would not have sorted the column names correctly. Specifically, all column names starting with upper-case letters were sorted before all column names starting with lower-case letters. This has been fixed. A similar fix has been made for the Data Type, Value and Comment columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468862">468862</a></td>
<td>Previouly, the MobiLink server only supported &quot;blocking download ack&quot; mode. Now, the MobiLink server also supports &quot;nonblocking download ack&quot; mode. This mode may be controlled with the &quot;-nba+&quot; (use nonblocking download ack) or &quot;-nba-&quot; (use blocking download ack) command line options, with &quot;-nba-&quot; being the default. Nonblocking download acknowledgement mode provides a significant performance advantage over blocking download acknowledgement mode, but may not be compatible with some existing scripts.</p>
<p>				The following is the documentaion update:</p>
<p>				MobiLink now supports two modes of download acknowledgement: blocking and non-blocking. Prior to this change, MobiLink only supported blocking download acknowledgement. When you turn on download acknowledgement, the default continues to be blocking. </p>
<p>				Note: Download acknowledgement is not on by default. To turn it on, use the dbmlsync &quot;SendDownloadACK&quot; extended option or the UltraLite &quot;Send Download Acknowledgment&quot; synchronization parameter. Download acknowledgement is not required to ensure that data is successfully downloaded. Download acknowledgement simply allows you to get acknowledgement of a successful download immediately (in the download); otherwise the acknowledgement occurs in the next upload.</p>
<p>				To set non-blocking download acknowledgement, use the new mlsrv10 option -nba+.</p>
<p>				Non-blocking download acknowledement is recommended because it provides a significant performance advantage over blocking download acknowledgement. However, non-blocking download acknowledgement cannot be used in the following cases: </p>
<p>				- Clients prior to 10.0.0 do not support non-blocking acknowledgement.</p>
<p>				- You cannot use non-blocking acknowledgement with the Notifier scripts that are generated by MobiLink Model mode.</p>
<p>				QAnywhere messaging uses non-blocking download acknowledgement. You cannot change this setting for QAnywhere: You will get an error if you specify both -m and -nba- on the mlsrv10 command line. </p>
<p>				To provide extra optional functionality to the new non-blocking download acknowledgement, two new MobiLink events have been added: nonblocking_download_ack and publication_nonblocking_download_ack.</p>
<p>				nonblocking_download_ack connection event</p>
<p>				-----------------------------------------</p>
<p>				Function: When using non-blocking download acknowledgement, this event lets you update your database based on the successful application of the download.</p>
<p>				Parameter name Description Order</p>
<p>				-------------- ----------- -----</p>
<p>				s.remote-id VARCHAR(128) N/A</p>
<p>				s.username VARCHAR(128) 1</p>
<p>				s.last_download TIMESTAMP 2</p>
<p>				This event is only called when using non-blocking download acknowledgement. When in non-blocking mode, the download transaction is committed and the synchronization ends when the download is sent. This event is called when the synchronization client acknowledges a successful download. This event is called on a new connection, after the end_synchronization script of the original synchronization. The actions of this event are committed along with an update to the download time in the MobiLink system tables.</p>
<p>				Due to the special nature of this script, any connection-level variables set during the synchronization are not available when this event is executed.</p>
<p>				For example, the following script adds a record to the table download_pubs_acked. The record contains the remote ID, first authentication parameter, and the download timestamp.</p>
<p>				INSERT INTO download_pubs_acked( rem_id, auth_parm, last_download )</p>
<p>				VALUES( {ml s.remote_id}, {ml a.1}, {ml s.last_publication_download} )</p>
<p>				publication_nonblocking_download_ack connection event</p>
<p>				-----------------------------------------------------</p>
<p>				Function: When using non-blocking download acknowledgement, this event lets you update your database based on the successful application of the download of this publication.</p>
<p>				Parameter name Description Order</p>
<p>				-------------- ----------- -----</p>
<p>				s.remote-id VARCHAR(128) N/A</p>
<p>				s,username VARCHAR(128) 1</p>
<p>				s.last_publication_download TIMESTAMP 2</p>
<p>				s.publication_name VARCHAR(128) 3</p>
<p>				s.subscription_id VARCHAR(128) 4</p>
<p>				This event is only called when using non-blocking download acknowledgement. When in non-blocking mode, the download transaction is committed and the synchronization ends when the download is sent. When the synchronization client acknowledges a successful download, this event is called once per publication in the download. This event is called on a new connection and after the end_synchronization script of the original synchronization. The actions of this event are committed along with an update to the download time in the MobiLink system tables.</p>
<p>				Due to the special nature of this script, any connection-level variables set during the synchronization are not available when this event is executed. </p>
<p>				For example, the following script adds a record to a table called download_pubs_acked. The record contains the publication name, the first authentication parameter, and a download timestamp:</p>
<p>				INSERT INTO download_pubs_acked( pub_name, auth_parm, last_download ) </p>
<p>				VALUES( {ml s.publication_name}, {ml a.1}, {ml s.last_publication_download} )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468864">468864</a></td>
<td>Servers running on Unix systems, and attempting to use an alternate server name, may have failed to start, giving the error &quot;Alternate server name is not unique&quot;, even though no other server on the machine or network was using that server name. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468867">468867</a></td>
<td>When run on Windows CE devices, 1MB per of address space was reserved by the server for each thread, although only a portion was actually allocated, or &quot;committed&quot;. This has been changed for Windows CE PocketPC 2003 and newer devices, as the server now implements the -gss command line option for these devices. The -gss option sets the stack size per internal execution thread. The default and minimum stack size is 64K and the maximum is 512K.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468878">468878</a></td>
<td>After executing a statement, the toolbar buttons could have remained disabled, even though they should have been enabled. This problem was timing dependent, so it tended to appear on some machines from time to time, but not on others at all. This has now been fixed.</p>
<p>				Note that the menu items and accelerator keys corresponding to the toolbar buttons were enabled correctly and were functional.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468882">468882</a></td>
<td>In certain situations, for example, when the database server was shutting down, DBLauncher may not have displayed all of the messages it received from the database server, making it look like the database server had hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468897">468897</a></td>
<td>If an embedded SQL application allocated a SQLCA, some of the contents of the allocated SQLCA could have been left uninitialized after calling db_init. It was also possible, although likely rare, that a call to sqlerror_message using an allocated SQLCA could have caused the application to crash. Using the sqlca pointer included in DBLib did not have this problem. This has been fixed so that the allocated SQLCA is now properly initialized as part of db_init, and calls to sqlerror_message will not cause a crash.</p>
<p>				A workaround is to zero out the allocated SQLCA memory after allocating it and before calling db_init. The allocated SQLCA (say app_sqlca) can be zeroed out using:</p>
<p>				memset( app_sqlca, 0, sizeof( SQLCA ) )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR468905">468905</a></td>
<td>When running at snapshot isolation, a positioned update or delete to a row previously updated by another connection may have blocked in some cases, even though it was possible to have immediately given an update conflict error. This is fixed.</p>
<p>				Note, in general blocking is still allowed when snapshot transactions do updates or deletes (unless the &quot;blocking&quot; option is off). This change only gives the conflict error earlier in some restricted cases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469002">469002</a></td>
<td>When run on Windows CE, the reserved stack sizes for all threads in the QAnywhere agent, the Listener and the MobiLink client have been changed to be as follows:</p>
<p>				qaagent.exe: 64 KB</p>
<p>				dblsn.exe: 64 KB </p>
<p>				dbmlsync.exe: 128 KB</p>
<p>				Previously, 1MB per thread of address space was reserved, while only a portion was actually allocated, or &quot;committed&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469020">469020</a></td>
<td>The internal data structure for a cursor cannot exceed 64K. When a cursor would be larger than 64K, a diagnostic was not always generated. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469145">469145</a></td>
<td>If the QAnywhere Agent is started on Windows CE with a spacey path in the startline connection parameter, for example:</p>
<p>				qaagent -c &quot;...;startline=\Program Files\Sybase\ASA9\dbsrv9 -o dbsrv.txt -c 20m -gd all -gp 4096 -n qanywhere -gk all -qw -gn 10&quot;</p>
<p>				then it would have failed to start the database server with the error &quot;InternalError: Unable to start database server&quot;. A problem with passing double quotes in the connection string has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469146">469146</a></td>
<td>If the return type of a method in a WSDL document contained the method name, the WSDL compiler would have generated an incorrent C# method signature for the asynchronous method call.</p>
<p>				For example:</p>
<p>				public WSResult AsyncCategoryBrowseResponseResponse CategoryBrowse(CategoryBrowseRequest request) // incorrect</p>
<p>				should be:</p>
<p>				public WSResult AsyncCategoryBrowse(CategoryBrowseRequest request) // correct</p>
<p>				A problem with the generation of asynchronous C# method signatures has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469151">469151</a></td>
<td>The MobiLink server now closes non-persistent HTTP connections without waiting for the client to close the connection, as there is no need to hang on to the connection after the HTTP response is sent. This change modestly improves server resource usage when using non-persistent HTTP.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469259">469259</a></td>
<td>The server may have crashed during the execution of an IN predicate of the form &quot;{column} IN ( const, ...)&quot;. This would have occurred if the IN predicate was part of a control statement&#39;s condition, or part of the WHEN clause of a trigger definition; or at least one IN list entry needed an implicit type conversion in order to perform the compare. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469411">469411</a></td>
<td>Calls to the ODBC function SQLNativeSql() could have caused a crash in the ODBC driver. If the character set of the database was UTF8, a crash could have occurred or incorrect results could have been returned. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469436">469436</a></td>
<td>The server would have incorrectly marked all updates applied by SQL Remote as having caused a conflict when being applied to the consolidated database. This would have caused the resolve update trigger to fire when there was in fact no conflict, and would also have caused the update that was just applied to the consolidated to be echoed back to the remote database. This would have caused the row at the remote database to be temporarily set back to an older value. This problem has now been fixed so that the server will properly detect conflicts at the consolidated database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469523">469523</a></td>
<td>If a view was updated with an UPDATE statement that contained a VERIFY clause, the server may have crashed or incorrectly used the VERIFY clause. This would only have happened if the view and the base table had a different column ordering in the select list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469570">469570</a></td>
<td>If the default command file for the Listener utility (dblsn,txt) was used implicitly, then having the -q option in the command file would have had no effect on the gui, instead of minimizing it. The desired behavior was achieved if the same command file was used explicitly (i.e. dblsn.exe @dblsn.txt). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469674">469674</a></td>
<td>The number of rows being sent by MobiLink to an UltraLite client could have been more than the number of rows the UltraLite client actually inserted. Rows could have been lost by UltraLite during synchronization when the primary key for a table was not the first index in the table. This situation could have occurred when changing the primary key via the UltraLite Schema Painter application. This problem has now been fixed. Newly created schemas (or altered schemas) will ensure the primary key is the first index for every table. For existing databases, UltraLite will check after loading the schema, that the primary key is the first index in every table and it will make it so if necessary.</p>
<p>				A workaround to this issue would be to unload and reload the schema and/or the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469685">469685</a></td>
<td>The server could have incorrectly accepted an outer reference as a parameter to the ROWID() function, without throwing an error. For example, the following query would not have returned an error:</p>
<p>				SELECT * FROM table1, some_procedure( ROWID( table1 ) )</p>
<p>				The behaviour of such a function call was undefined; a query containing an illegal outer reference may have returned unintuitive or inconsistent results. This has been corrected so that the server now correctly returns an error when the ROWID() function is called with an illegal outer reference as an argument.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469699">469699</a></td>
<td>An attempt by a version 9.0.2 DLL to self-register itself on Windows Vista would have resulted in the regsvr32 process going into an infinite loop waiting for the self-registration to complete. This could have happened during any of the EBF installs from 9.0.2 build 3476 on. The problem would also have manifest itself after any of these EBFs have been installed by manually executing a regsvr32 command on a DLL. Since any 9.0.2 DLL that requires registration has already performed the registration step as part of the initial 9.0.2 install, the re-registration failure during an EBF install should not cause any problem, and the regsvr32 process can be safely terminated. In a similar fashion, any attempt to unregister a DLL (regsvr32 /u) once the EBF was applied would also have failed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469705">469705</a></td>
<td>If an existing database that contained materialized views and indexes on these views, was unloaded using the Unload utility or the DBTools function DBUnload, then the definitions of these indexes was not unloaded. This problem has now been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469731">469731</a></td>
<td>Attempting to start a real database with the DatabaseName &quot;utility_db&quot;, would have resulted in one of two different error messages (permission denied or naming conflict), depending on the situation. This has been corrected, the name &quot;utility_db&quot; is now reserved for the utility database. Other databases attempting to use this name </p>
<p>				will see the error SQLE_DB_ALIAS_RESERVED_UTILDB (-985) &quot;The database name &#39;utility_db&#39; is reserved for the utility database.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469827">469827</a></td>
<td>The server may have erroneously reported the error &quot;Right Truncation of string data&quot; when data was converted to CHAR or VARCHAR as part of a query (eg a CAST operation). This would have occurred if the database was created with a multi-byte collation, and a column contained NCHAR data of sufficient length (depending on the collation in use, but always at least 8192 bytes). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469851">469851</a></td>
<td>If a rule was created whose condition expression contained a newline character, once saved to a &quot;.qar&quot; file, the file could not have been read properly. Embedded newlines were not being escaped with the line continuation character when they were written. This has ben fixed so that the condition is now saved correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469896">469896</a></td>
<td>Selecting a different value in the &quot;Encoding&quot; combobox did not correctly update the preview of table data in the Import Wizard. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469973">469973</a></td>
<td>On Windows Vista systems, the server would have left a minimized command-shell window visible in the Windows taskbar when starting Java in the database. </p>
<p>				Self-registering DLLs, such as the ODBC driver or the dbctrs perfmon plugin DLL, could also have shown a minimized command-shell window, but it was very short-lived.</p>
<p>				Both these problems have now been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469974">469974</a></td>
<td>An application would have failed to autostart the engine when using a quoted StartLine value that contained spaces in the path. For example, the following startline would have failed with SQLE_UNABLE_TO_CONNECT_OR_START:</p>
<p>				StartLine=&quot;\Program Files\uleng10.exe&quot;</p>
<p>				This problem has been fixed.</p>
<p>				This problem can be worked-around by making the opening quote the second character:</p>
<p>				StartLine=\&quot;Program Files\uleng10.exe&quot;</p>
<p>				or by enclosing the entire quoted value in single quotes:</p>
<p>				StartLine=&#39;&quot;\Program Files\uleng10.exe&quot;&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469976">469976</a></td>
<td>The server may have returned incorrect results when evaluating a query that contained a procedure call in the FROM clause if the body of the procedure contained only a single statement, and an unqualified column reference was passed to the procedure as an argument. In order for this incorrect behaviour to have occurred the column reference passed to the procedure had to have the same name as a column in a table referenced by the statement in the body of the procedure. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR469977">469977</a></td>
<td>If a server was started on Windows Vista and the default port number 2638 was in use, the server may give the error &quot;Unable to initialize communications links&quot; and fail to start. This would only have happened if a port number was not specified using the -x server option. The correct behaviour is to choose a different port and start on that port. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470050">470050</a></td>
<td>It was possible when rebuilding a database (version 10 or earlier) to version 10 using dbunload -an, -ar or -ac, that the new database would have been missing some objects. This would only have occurred if the database being unloaded contained GLOBAL TEMPORARY TABLES that had foreign keys, or comments using COMMENT ON, on them. The resulting database could have been missing indexes and/or comments on indexes for any tables, including base tables, that were to be created after those for the GLOBAL TEMPORARY TABLE. This has now been fixed. The fix requires a new dbtools library, as well as the updated script files, unload.sql and unloadold.sql.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470052">470052</a></td>
<td>On Japanese Windows systems, when browsing for a file in SQL Anywhere Explorer, UltraLite udb and pdb files would not have been displayed when the file type was &quot;All UltraLite Database Files (.udb, .pdb)&quot;, even though they did exist. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470056">470056</a></td>
<td>Attempting to include a column with an approximate data type (real, float or double) in an index would have caused a warning dialog to be displayed discouraging this practice. The dialog was provided with an OK button only. This has been corrected so that now both OK and Cancel buttons are provided, with Cancel cancelling the operation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470058">470058</a></td>
<td>If a database contained a user-defined message that included an embedded quote, attempting to rebuild the database would have failed when the resulting CREATE MESSAGE statement was executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470173">470173</a></td>
<td>After using Sybase Central to create a proxy table to a table in Paradox, fetching from that table would have failed with a &quot;could not find the object&quot; error message. The method Sybase Cenral used to qualify the table name with the database name was not supported by Paradox. This problem has been fixed by implementing a work around in the server to modify the qualified table name so that it is supported by Paradox.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470176">470176</a></td>
<td>There was no implementation for the ODBC function SQLSynchronizeW() in the Runtime, even though it is defined in ulodbc.h. This has been corrected by implementing SQLSynchronizeW().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470195">470195</a></td>
<td>If an event was fired using the TRIGGER EVENT statement with a list of event parameter values, the server could have crashed when the event handler attempted to access the parameters via the event_parameter() function. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470198">470198</a></td>
<td>The utility SetupVSPackage.exe was not respecting the language setting as defined by DBLANG. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470202">470202</a></td>
<td>Named parameters found in scripts would have been parsed and incorrectly substituted for, when found in comments and quoted strings. This could have caused parameters to be passed in the wrong order, or an error message to be generated, when the number of parameters did not match what was expected. This has been fixed.</p>
<p>				Note, the following forms of comments are recognized:</p>
<p>				-- (two hyphens)</p>
<p>				// (two forward slashes)</p>
<p>				/* */</p>
<p>				The first two forms cause the script text to be ignored until the end of a line.</p>
<p>				The last form causes all text between the &quot;/*&quot; and &quot;*/ to be ignored. This form of comment cannot be nested.</p>
<p>				Any other type of vendor specific comment will not be recognized and should not be used to comment out references to a named parameter.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_46.htm#CR470274">470274</a></td>
<td>If a query used certain internal system procedures on the NULL-supplying side of an outer join, the wrong results could have been returned. The following procedures had this characteristic, and have been corrected:</p>
<p>				- sa_rowgenerator</p>
<p>				- sa_report_blocking</p>
<p>				- sa_lockinfo</p>
<p>				- sa_report_deadlocks</p>
<p>				- sa_performance_diagnostics</p>
<p>				- sa_performance_statistics</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470282">470282</a></td>
<td>An erroneous conversion error could have been raised when executing a query if it referenced a derived table which was empty on the right side of a left outer join, and the derived table contained a GROUP BY clause and had a NUMERIC item in its SELECT list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470292">470292</a></td>
<td>Under heavy load the server could have crashed without any assertions in the system log or the console log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470296">470296</a></td>
<td>The ODBC driver could have allocated a large amount of memory when using a shared memory connection. This would have been very rare, and only occurred with large responses. This h has been fixed.</p>
<p>				Note, this problem could also have occurred with embedded SQL applications, and is now fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470313">470313</a></td>
<td>A query may have failed with the message &#39;Assertion failed: 106104 &quot;Field unexpected during compilation&quot;&#39; when a simple select that should bypass the optimizer was executed. The problem would only have occurred if the select used a unique index and an additional search condition contained a column reference on the right hand side.</p>
<p>				For example:</p>
<p>				create table T1 ( pk int primary key, a int, b int );</p>
<p>				select * from T1 where pk=1 and a=b;</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470315">470315</a></td>
<td>The default name of a primary key constraint is &quot;primary&quot;. If a table was created with a constraint name that was not the default, Sybase Central would have crashed silently when navigating to the Data tab. </p>
<p>				For example, navigating to the Data tab for the following table definition would have caused Sybase Central to crash: </p>
<p>				CREATE TABLE t1 </p>
<p>				( </p>
<p>				c INTEGER NOT NULL, </p>
<p>				CONSTRAINT &quot;cn&quot; PRIMARY KEY(&quot;c&quot; ASC)</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470335">470335</a></td>
<td>To determine if a downloaded file has changed, the MobiLink File Transfer utility calculates a hash of its copy of the file and sends it up to the server. The server calculates a hash of its own copy and compares it with the hash of the remote file, and if they don&#39;t match, it transmits its entire copy of the file down to the remote. However, if the only change to the file is that extra bytes had been appended to the end, the file was transmitted incorrectly and the resulting file on the remote contained only the new portion -- the original portion of the file was lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470414">470414</a></td>
<td>If a Remote Data Access server was created where the underlying ODBC driver was not a Unicode driver, then using Remote Procedure Calls (RPC) with that remote server would not have worked correctly. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470546">470546</a></td>
<td>A query with a procedure call in the FROM clause, that had a column or variable parameter that matched the name of one of the procedure&#39;s own result columns, would have failed with the error -890 &quot;statement size or complexity exceeds server limits&quot;. This is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470559">470559</a></td>
<td>The server could have crashed when starting up a database, if the start event of the database contained an HTTP/SOAP call. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470562">470562</a></td>
<td>When synchronizing with stream parameters pointing to a MobiLink server on a different machine, carrying out several synchronization operations in a row could have produced errors such as SQLE_COMMUNICATIONS_ERROR or SQLE_SYNC_INFO_INVALID. This would not have occurred if the stream parameters string was empty and the defaults were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470582">470582</a></td>
<td>The error &#39;Function or Column name reference &quot;Unknown&quot; must also appear in GROUP BY&#39;, may have been erroneously raised when an IF expression involved an aggregate function. </p>
<p>				For example:</p>
<p>				IF count(n) &gt; 50 THEN &#39;good&#39; ELSE &#39;bad&#39; ENDIF</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470594">470594</a></td>
<td>The MobiLink Listener would likely have failed to send confirmation of notification delivery or confirmation of actions, if persistent connections were explicitly turned off (ie dblsn.exe -pc- ). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470660">470660</a></td>
<td>Items in the &quot;Edit&quot; menu were not enabled and did not perform consistently:</p>
<p>				1. The &quot;Edit/Copy&quot; menu item is now enabled if a results table has focus and at least one row is selected.</p>
<p>				2. If the Results panel is selected, the &quot;Edit/Paste&quot; menu item is no longer enabled.</p>
<p>				3. If a results table was focused, the &quot;Edit/Delete&quot; menu item could have been clicked, but nothing would have happened. Now, the menu item will cause the row to be deleted, the same as if the DELETE key had been pressed.</p>
<p>				4. The &quot;Cut&quot;, &quot;Undo&quot;, &quot;Redo&quot;, &quot;Find/Replace&quot;, &quot;Find Next&quot;, and &quot;Go To&quot; menu items are now enabled only if the &quot;SQL Statement&quot; field has focus. Previously, they were enabled even if the &quot;Results&quot; panel was selected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470680">470680</a></td>
<td>When running the Windows Performance Monitor in a Terminal Services session other than session 0, it was not possible to monitor database services running in session 0. On XP, system services and the primary desktop are all in session 0. On Vista, only the system services run in session zero. The behaviour has been changed so that when the Windows Performance Monitor (perfmon) is started (actually, when &quot;add counters&quot; is selected for the first time), perfmon will monitor a database server in the local session if one exists and is providing statistics. If there is no server running in the current session, perfmon will monitor a database server in session 0 if one exists and is providing statistics. If there is no database server providing statistics in the local session or in session 0, perfmon will display statistics for a database server if one is subsequently started in the local session ONLY. To monitor a database server that runs in session 0 (eg, a system service) from a session other than session 0, the database server must be started before perfmon is started.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470685">470685</a></td>
<td>When attempting to fetch an unsigned integer from a table on a remote server, the value returned would always have been 0 if the local server was running on a 64-bit little endian machine. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470812">470812</a></td>
<td>If the QAnywhere Agent was started with a custom policy (ie. transmission rules) where each rule was a scheduled rule, QAnywhere would still have behaved as though the policy was automatic. The messages put in a queue would have been transmitted immediately, and push notifications would have resulted in an immediate message transmission, instead of message transmissions happening on the defined schedule. This has been fixed so that the transmission rules are now all scheduled rules, message transmissions happen only at the scheduled times.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470839">470839</a></td>
<td>When running the Windows CE install in Maintenance mode, the Start Copy Dialog did not contain the list of components to be installed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470854">470854</a></td>
<td>When printing an error report to the console with &quot;dbsupport -pc&quot;, binary data is represented in the form of a hex dump. For non-printable characters, the hexadecimal representation was incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR470999">470999</a></td>
<td>It was not possible to build the PHP driver for SQL Anywhere 10 on Unix systems. The config.m4 script that is used as part of the PHP build procedure has now been updated to use version 10 software.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471006">471006</a></td>
<td>EXECUTE permission was not granted to the group SA_DEBUG for the system procedures sa_proc_debug_version and java_debug_version. If a user that was granted membership in SA_DEBUG was not also a DBA, attempting to use the procedure debugger would have failed and possibly caused Sybase Central to crash. This has been corrected for newly initialized databases. For existing databases, the permissions can be granted by executing the following:</p>
<p>				grant execute on dbo.sa_proc_debug_version to sa_debug</p>
<p>				go</p>
<p>				grant execute on dbo.java_debug_version to sa_debug</p>
<p>				go</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471007">471007</a></td>
<td>When the MobiLink client (dbmlsync)was run with table locking enabled, this is the default and is the case unless the extended option locktables is set to off, the expected behaviour is for synchronizations to fail unless dbmlsync can obtain locks on the tables being synchronized. A problem that would have allowed synchronizations to continue when dbmlsync failed to obtain the locks, has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471044">471044</a></td>
<td>When accessing column values in the upload using Java direct row handling, the ResultSet.getObject() method could have returned null instead of an object representing the column value. Methods such as ResultSet.getString(), ResultSet.getInteger() etc. would have worked correctly. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471045">471045</a></td>
<td>The memory usage of the MobiLink server with QAnywhere messaging enabled would have increased by a small amount at each client synchronization. The amount of increase was reduced by about 90% by changes made for Engineering case 471798. This increase has now been reduced by a further 5%. While not completely resolved, the memory increase has been significantly reduced, and it continues to be addressed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471110">471110</a></td>
<td>If an event handler attempted to create a temporary table via SELECT ... INTO #temptab, or it attempted to create a view and the SELECT list included a string column with CHAR length semantics, the server would have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471148">471148</a></td>
<td>When the server was run on Linux x86 or x86-64 systems, in an X-Window environment where GTK libraries were available, and the command line options -ui or -ux were specified when the GUI console was invoked or when running the Developer Edition regardless of command line options, it may have crashed on shutdown. The integrity of the data in the database was not compromised. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471149">471149</a></td>
<td>When run on Windows 2000, the MobiLink Server was unable to determine the IP address of the remote client, and thus was unable to ignore a request when the stream option &#39;ignore&#39; was specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471155">471155</a></td>
<td>The Unload utility could have crashed if the userid specified in the -ac connection parameter was &#39;dba&#39;, but used a non-default password (i.e. not &#39;sql&#39;), and the userid of the source connection (i.e., -c parameter) was &#39;dba&#39; as well. This has been fixed.</p>
<p>				Note, it is recommended that when using -ac that the destination database have default dba credentials. The password can then be changed after dbunload completes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471293">471293</a></td>
<td>An HTTP request made to a DISH service may have caused a server crash if the DISH service exposed a SOAP service with the following characteristics:</p>
<p>				- the SOAP service was created with DATATYPE ON or IN, specifying that parameter types are to be mapped from SQL to XMLSchema data types (rather than exclusively to xsi:string),</p>
<p>				- one or more parameters within the stored procedure called by the SOAP service were (SQL) XML data types.</p>
<p>				This has been fixed. VARCHAR, LONG VARCHAR, and XML are mapped to XMLSchema type STRING (xsi:string). Most client toolkits including the SQL Anywhere SOAP client will automatically HTML_ENCODE data types that map to xsi:string.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471326">471326</a></td>
<td>The execution time reported in the request-level log for a statement could have been much to high. This would only have happened in the second or subsequent request-level logs that were split using the -on or on command line options. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471339">471339</a></td>
<td>UltraLite clients will now send their version and build number up to the MobiLink server during synchronization. A line similar to the following will appear in the server log:</p>
<p>				Request from &quot;UL 10.0.0.2862&quot; for: ...</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471413">471413</a></td>
<td>If a BACKUP statement was executed that used one of the TRANSACTION LOG backup options, and the database did not use a transaction log file, then the server would have crashed. This has been fixed. The server now returns the error &quot;Syntax error near &#39;backup option&#39;&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471415">471415</a></td>
<td>If the public option MAX_TEMP_SPACE was inadvertently dropped (ie set public.MAX_TEMP_SPACE=), the server would have crashed the next time it checked the free temp space. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471431">471431</a></td>
<td>If an &quot;UPDATE OF column-list&quot; trigger was defined, the trigger could have been fired in some cases where no column in the associated list had in fact been modified. </p>
<p>				BEFORE UPDATE triggers should fire if a column in the column-list appears in the SET clause of the associated UPDATE statement, while AFTER UPDATE triggers should fire if the value of a column in the column-list has been modified by the UPDATE statement.</p>
<p>				A positioned update would have caused all BEFORE UPDATE and AFTER UPDATE triggers to fire regardless of whether a column in their column-list appeared in the SET clause or was modified by the update. Further, if a searched update included all columns in the SET clause, but did not modify the value of any column, AFTER UPDATE triggers would have been fired inappropriately.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471575">471575</a></td>
<td>If an application used the iAnywhere JDBC Driver to connect to a DB2 server, and attempted to use PreparedStatement.setBoolean(), the JDBC driver would have thrown an exception. Calling PreparedStatement.setBoolean() resulted in the driver binding a parameter of type SQL_BIT, even though DB2 does not support SQL_BIT. This has been fixed so that a parameter of type SQL_TINYINT is now used for DB2.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471582">471582</a></td>
<td>The MobiLink clients will now include its version and build number with each synchronization, and the MobiLink server will display this information in its log. As a result, the MobiLink log will now contain lines like the following:</p>
<p>				Request from &quot;Dbmlsync Version 11.0.0.1036 Debug Internal Beta&quot; for: remote ID: e08b39d1-e3fa-4157-969b-8d8679324c00, user name: template_U1, version: template_test</p>
<p>				instead of lines like this:</p>
<p>				Request from &quot;MLSync&quot; for: remote ID: 45ef79ab-195e-4f76-805b-95eef2773e8f, user name: template_U1, version: template_test</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471584">471584</a></td>
<td>Erroneous results could have been obtained for a query containing a left out join, where FOR READ ONLY was not specified, and where a temporary table was required (for example, to order the results of the join). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471644">471644</a></td>
<td>In some situations, if a statement contained a subselect in the SELECT list of a query block that was aliased, and the alias was referred to in the WHERE clause of the query, then the statement would have failed with the following error:</p>
<p>				*** ERROR *** Assertion failed: 106104 (...) Field unexpected during compilation (SQLCODE: -300; SQLSTATE: 40000)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471688">471688</a></td>
<td>Viewing a result set generated by SELECT or CALL statements would have caused the server to place schema locks on the table(s) associated with the result. Theses locks could have subsequently prevented modifying those tables in other applications, such as Sybase Central. This has been changed so that the Interactive SQL utility now releases database locks once the result set has been completely read (and cached), as long as there are no uncomitted changes in the current transaction.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471692">471692</a></td>
<td>Multi-byte characters in push notifications may have been lost. This problem has been fixed. </p>
<p>				Note, multi-byte characters are supported in UDP notifications, but SMS notifications are restricted to 7-bit ascii.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471696">471696</a></td>
<td>The 32-bit and 64-bit versions of the SQL Anywhere library that provides support for the Windows Performance Monitor could not coexist. If the 64-bit library was registered last, only the 64-bit version of the Performance Monitor would have been able to monitor SQL Anywhere servers (both 32-bit and 64-bit servers). If the 32-bit version was registered last, only the 32-bit version of the Performance Monitor would have been able to monitor SQL Anywhere servers (both 32-bit and 64-bit servers). The area of the registry that contains performance monitoring information and, in particular the path to the support library, is shared by both 32-bit and 64-bit applications, unlike other areas of the registry which have been split into 32-bit and 64-bit versions. The problem has been fixed by having the 32-bit and 64-bit support libraries register using different service names.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471710">471710</a></td>
<td>When submitting an error report with dbsupport, minidumps larger than 1Mb in size would silently have been omitted from the submission. Only the crash log would have been included. Also, when printing an error report with dbsupport, minidumps larger than 1Mb in size would not have been printed. These issues would typically only have occurred on Unix systems, since Windows minidumps are much smaller. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471765">471765</a></td>
<td>If a table had a column of type uniqueidentifier, varbit, long varbit, xml, nchar, nvarchar or long nvarchar, the column would not have been in the result set of the system procedure sp_columns. This has been fixed. To get this fix into an existing database, the database needs to be rebuild.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471798">471798</a></td>
<td>The MobiLink server could have leaked 2K bytes of memory per synchronization if compressed streams were being used (ie. the &quot;compression&quot; client option was not &quot;none&quot;). The leak depended directly on how the first uploaded bytes of the synchronization flow on the network between the client and server, so the leak was somewhat random from client&#39;s point of view. The synchronization was not affected by the leak. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471802">471802</a></td>
<td>The dbsupport utility can be used to submit, via the Internet, diagnostic information and crash reports, or to submit feature statistics. When dbsupport prompted the user to submit a particular crash report, and the user declined, it still attempted to submit feature statistics, which is not desired. When dbsupport was configured with &quot;dbsupport -cc no&quot;, the intended behavior is to not prompt for permission to submit reports, and to not submit reports. Although the crash reports were not being submitted, dbsupport still attempted to submit feature statistics, which is also not desired. These issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471825">471825</a></td>
<td>When unloading UltraLite database to SQL, the UltraLite Unload utility would have missed any tables where IsNeverSynchronized() would have returned true. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471931">471931</a></td>
<td>The MobiLink server could have crashed when calling a stored procedure which generated error messages that were longer than 256 characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471948">471948</a></td>
<td>If an HTTPS connection attempt failed because of licensing (i.e. too many connections), the client would have received a plain-text error message, instead of handshake data. HTTPS clients would have interpreted this as a protocol error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471958">471958</a></td>
<td>If the primary key of a table being synchronized, was not defined as the initial column or columns of the table, it was possible for the MobiLink Server to crash while processing the download_delete_cursor for that table. It was more likely for the MobiLink Server to crash if the options -b or -vr were specified on the MobiLink server command line. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471967">471967</a></td>
<td>The MobiLink server may have crashed when executing a user script which contained named parameters, and a parameter failed to bind. Unfortunately, this bind failure was also not being recorded to the log. The bind failure recording and crash have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR471981">471981</a></td>
<td>Attempting to create proxy tables to an Oracle server in an SA database with a mult-byte character set, would likely have failed with a &quot;table not found&quot; error if the table owner and name were not specified in uppercase in the create existing table location string. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472034">472034</a></td>
<td>Validating a table with full check, would have caused the server to crash if the column order of a foreign key did not match the column order of the referenced primary key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472071">472071</a></td>
<td>If a query contained a recursive union that appeared on the right side of a nested loops join and the recursive union selected a hash execution strategy, then the statement could have failed with the following error:</p>
<p>				Run time SQL error -- *** ERROR *** Assertion failed: 106105 (...)</p>
<p>				Unexpected expression type dfe_PlaceHolder while compiling [-300] [&#39;40000&#39;]</p>
<p>				For example, the following statement could cause this error. </p>
<p>				with recursive Ancestor( child) as</p>
<p>				( (select row_num from rowgenerator R1 where R1.row_num = 1 )</p>
<p>				union all</p>
<p>				(select R2.row_num+100</p>
<p>				from Ancestor, rowgenerator R2</p>
<p>				where Ancestor.child = R2.row_num</p>
<p>				)</p>
<p>				)</p>
<p>				SELECT *</p>
<p>				FROM sys.dummy D1, Ancestor</p>
<p>				for read only</p>
<p>				In the case of this error, the server would continue to process other statements (a non-fatal assertion failure). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472073">472073</a></td>
<td>Delete statements that do not bypass optimization, and load CHECK constraints, would have failed if there was a syntax error in CHECK constraint definition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472078">472078</a></td>
<td>The server could have crashed if a MESSAGE statement contained certain types of substr or byte_substr expressions. These expressions must have used a negative start value that specified a starting point before the beginning of the string for a crash to have occurred. For example: &quot;message byte_substr( &#39;a&#39;, -5, 1 )&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472081">472081</a></td>
<td>If a connection string contained LINKS=TCPIP(host=&lt;hostname&gt;;...), where &lt;hostname&gt; was an invalid host name, the client library may not have given an error as expected. This would only have occurred with threaded clients on Linux. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472222">472222</a></td>
<td>If the UltraLite language DLLs were removed from the installation, the UltraLite ODBC driver may have caused Sybase Central and dbisql to crash. The ODBC driver now explicitly checks for missing resources and reports an error if no resources are found.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472228">472228</a></td>
<td>The Mobilink Redirector now support &quot;IIS6 in IIS5 isolation mode&quot;. IIS5 allows processing of multiple persistent HTTP request responses within a single entry into the web server extension. However IIS6 in IIS5 isolation mode disallows that possibly due to the stricter HTTP system driver. To work around this, the redirector will exit the extension after a single request-response cycle, while persisting the backend connection for later use. This change should increase concurrency, especially when the backend servers are the bottleneck.</p>
<p>				To turn on IIS5 isolation mode on a IIS6 server using the IIS Manager, right click on IIS Manager-&gt;Web Sites and select Properties. Bring up the Service page and select the &quot;IIS 5.0 isolation mode&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472237">472237</a></td>
<td>The MobiLink server is now supported on Windows x64. The supported consolidated databases are SQL Anywhere and Oracle (see Engineering case 472238 for details). An x64 JRE install is required, which is available at:</p>
<p>				http://downloads.sybase.com/swd/detail.do?baseprod=144&amp;client=ianywhere&amp;relid=10260</p>
<p>				To install this JRE:</p>
<p>				Download and run SA_1001_JRE_UPD.exe. The install will locate an existing SQL Anywhere 10 installation, and install a Java Runtime Environment for x64.</p>
<p>				To install the x64 MobiLink server:</p>
<p>				1) Install the EBF normally on a x64 computer, and then go to Add/Remove Programs (Programs and Features in Vista), select SQL Anywhere 10 and click on the Change button.</p>
<p>				Check that Modify is selected and click on the Next button.</p>
<p>				2) The Select Features dialog will appear and it will show the MobiLink for x64 features under &quot;MobiLink&quot;. 32 bit MobiLink features will be displayed under &quot;MobiLink (32 bit)&quot;.</p>
<p>				Check the checkboxes for MobiLink to install MobiLink for x64 and click on the Next button.</p>
<p>				3) Click the Next button on the next dialog to implement the modifications.</p>
<p>				4) Click the Finish button on the last dialog to complete the installation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472238">472238</a></td>
<td>The &quot;iAnywhere Solutions 10 - Oracle&quot; ODBC driver is now supported on Windows x64 systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472239">472239</a></td>
<td>Branded, third-party ODBC drivers are no longer shipped with MobiLink. Version 10.0.0 and up already do not ship with branded, third-party ODBC drivers. The drivers that are no longer shipping are:</p>
<p>				iAnywhere Solutions 9 - DB2 Wire Protocol</p>
<p>				iAnywhere Solutions 9 - Oracle Wire Protocol</p>
<p>				iAnywhere Solutions 9 - Sybase ASE</p>
<p>				These drivers are now deprecated, although they will continue to be tested to make sure MobiLink and other components still work with them. If a problem is encountered with one of these drivers that cannot be worked around, a fix cannot be made, the options are to directly use a recommended third-party ODBC driver (see http://www.sybase.com/detail?id=1011880), or to move to version 10.0.1 or higher. The aforementioned link will be updated, recommending:</p>
<p>				- An IBM ODBC driver for DB2</p>
<p>				- Our own (iAnywhere Solutions 9 - Oracle) ODBC driver for Oracle (now shipping with 9.0.2 as of this change)</p>
<p>				- A DataDirect ODBC driver for ASE</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472245">472245</a></td>
<td>A call to SQLCancel() by an ODBC application may have failed, if the attempt was to cancel a multi-row insert. The results may have varied, but it the application could have appeared to be hung. The ODBC driver attempts to execute multi-row inserts as a single operation. If the operation failed, it attempted to insert rows one at a time. In the case where the multi-row insert failed due to the operation being cancelled, the driver was left in a bad state. Now, the driver does not bother trying again if the original statement failed because it was cancelled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472262">472262</a></td>
<td>The &quot;Start In&quot; property of the Sybase Central shortcut (Start menu item) was incorrectly set. This could have resulted in Sybase Central failing to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472364">472364</a></td>
<td>UltraLite allows a publication to be created with a predicate for each of its tables. This allows users to filter rows in a table being synchronized. If the predicate contained a subquery, it was possible that the predicate evaluated to the wrong result, either allowing all rows to be uploaded, or none to be uploaded. This has been fixed.</p>
<p>				Also, note that there are two errors in the documentation. Under UltraLite � Database Management and Reference/Working with UltraLite Databases/Working with UltraLite publications/Publishing a subset of rows from an UltraLite table, the following are incorrect:</p>
<p>				&quot;Palm OS: You cannot use a CREATE PUBLICATION statement with a WHERE clause on this platform.&quot;</p>
<p>				In fact, a WHERE clause can be used on Palm OS.</p>
<p>				The paragraph &quot;What you cannot use in a WHERE clause&quot; </p>
<p>				In fact, you can use columns from tables not in the article (or even not in the publication). You can also use subqueries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472369">472369</a></td>
<td>When running the Linux x86 (32-bit) server, the value of the NativeProcessorArchitecture property would always have been &quot;X86,&quot; even if the engine was running on a system with an x86-64 CPU. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472386">472386</a></td>
<td>If a database containing global autoincrement columns was rebuilt, and the setting of the global_database_id option was 0, the next available value for these columns stored in SYS.SYSTABCOL.max_identity was not set. This has been fixed. As a workaround, execute the following after rebuilding the database:</p>
<p>				set option public.global_database_id=1;</p>
<p>				set option public.global_database_id=0;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472390">472390</a></td>
<td>If a statement other than a SELECT statement converted a value of type NUMERIC or DECIMAL to a string, then the conversion could have been incorrect. There could have been insufficient trailing 0 characters for the declared scale of the value. This has been fixed. </p>
<p>				For example, the following batch would have returned 12.34 and 12.34000, now the two values should both be 12.34000:</p>
<p>				begin</p>
<p>				declare @num numeric(10,5);</p>
<p>				declare @str char(20);</p>
<p>				set @num = 12.34;</p>
<p>				set @str = @num;</p>
<p>				select @str, cast( @num as char(20) );</p>
<p>				end</p>
<p>				Further, the data type of division in the NUMERIC/DECIMAL domain could have been incorrect for a non-SELECT statement. This has been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472400">472400</a></td>
<td>In some cases, if a query contained an unflattened derived table on the null-supplying side of an outer join and the derived table contained a constant, then the statement could have failed with an assertion failure message:</p>
<p>				Run time SQL error -- *** ERROR *** Assertion failed: 106105 (...)</p>
<p>				Unexpected expression type dfe_PlaceHolder while compiling (SQLCODE: -300; SQLSTATE: 40000)</p>
<p>				For example, the following query demonstrates this problem:</p>
<p>				SELECT *</p>
<p>				FROM SYS.dummy D1</p>
<p>				LEFT JOIN</p>
<p>				( select c1</p>
<p>				from ( select distinct D2.dummy_col, 31337 c1</p>
<p>				from dbo.rowgenerator R1 , sys.dummy D2</p>
<p>				) DT1</p>
<p>				) DT2</p>
<p>				ON (D1.dummy_col=DT2.c1-31337)</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472478">472478</a></td>
<td>The iAnywhere JDBC driver has now been enhanced to support the DB2 Mainframe ODBC driver. The iAnywhere JDBC driver now checks the DBMS name of the DB2 driver, if it is the DB2 Mainframe driver it will set the appropriate default result set type and other attributes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472479">472479</a></td>
<td>If a cursor contained a LONG VARCHAR or LONG NVARCHAR column, and it was retrieved using a GET DATA request, then the request could fail with the error: -638 &quot;Right truncation of string data&quot; In some cases, this situation could have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472482">472482</a></td>
<td>If a cursor was opened with a query that referenced proxy tables, and attempted to refetch a row, then the server would have failed assertion 101701. This problem has now been fixed and the server now correctly gives an error indicating that cursors involving remote tables are not scrollable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472484">472484</a></td>
<td>If an application made a request that executed a JAVA call, and then attempted to shut down the database while the JAVA call was still active, then the server would either have hung or crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472486">472486</a></td>
<td>On Linux IA64 systems, the server may cause &quot;floating-point assist&quot; faults. These warnings are as result of operations on denormal (quantities too small to be represented in normalized form) floats and doubles in the server, and can be considered harmless, especially if the number of warnings is low. The Itanium CPU is incapable of operating on denormal numbers in hardware and enters software emulation mode when such an operation is requested. The Linux kernel detects this and displays a performance warning, as the software emulation entails a performance penalty. The correctness of server operations is not compromised. All the same, the server has been modified to minimize internal use of denormal numbers. However, the warnings will still appear if the server is explicitly requested to operate on denormals (for instance, with the statement &quot;SELECT 2.25e-309&quot;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472489">472489</a></td>
<td>The .NET 2.0 framework introduced a new namespace &#39;System.Transactions&#39;, which contains classes for writing transactional applications. Client applications can create and participate in distrubuted transactions with one or multiple participants. These applications can implicitly create transactions using TransactionScope class. The connection object can detect the existence of an ambient transaction created by the TransactionScope and automatically enlist. The applications can also create a CommittableTransaction, and call the EnlistTransaction method to enlist.</p>
<p>				Distributed transaction has significant performance overhead. It is recommand to use database transactions for non-distributed transactions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472503">472503</a></td>
<td>Deploying a synchronization model created with an exisiting UltraLite database could have caused an error. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472505">472505</a></td>
<td>While performing a backup, the server could have crashed in a high availability environment if one or more of the transaction logs was deleted. It was possible to truncate a transaction log when the database file was mirrored, but this is no longer the case. An error is now returned when attempting to truncate a transaction log while it&#39;s involved in mirroring.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472507">472507</a></td>
<td>If a statement contained a hash join with a complex ON condition containing non-equality predicates that should not be executed in parallel, then it was possible for the join to be incorrectly costed by the optimizer as if it were executed in parallel. This could have lead to sub-optimal execution strategies, a server crash or a wrong answer. This has now been fixed.</p>
<p>				For example, the following statement could exhibit this problem:</p>
<p>				select *</p>
<p>				from sysdomain D1 left join sysdomain D2 on D1.type_id = D2.type_id and 0 = ( select D1.type_id - D2.type_id from sys.dummy )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472508">472508</a></td>
<td>If a query contained an outer join that had a derived table on the null-supplying side, and the derived table contained a complex expression and the join condition contained a non-equality predicate that referenced this complex expression that was further used after the join, then the statement could have failed with a non-fatal assertion failure error:</p>
<p>				Assertion failed: 102501 (...) Work table: NULL value inserted into not-NULL column</p>
<p>				For example, the following statement could cause this problem:</p>
<p>				with D(c1,c2) as (</p>
<p>				select row_num-1, 0</p>
<p>				from dbo.rowgenerator R1</p>
<p>				where R1.row_num &lt;= 101</p>
<p>				union all</p>
<p>				select 123456789, 0</p>
<p>				from sys.dummy where 1=0</p>
<p>				)</p>
<p>				select D1.c1, D1.c2 * 23 x, D2.c1</p>
<p>				from D D1 left join D D2 on D1.c1 = D2.c1 and D2.c1 = 3 and x - D2.c2 = 0</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472510">472510</a></td>
<td>A server started with several databases could have crashed on shutdown if more than one alternate server name was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472613">472613</a></td>
<td>If a highly uncompressible string (i.e. one such that compression increases the size of the data or reduces the size by less than about 14 bytes) was inserted into a compressed column, fetching that value from the column would have resulted in decompression errors. This was the result of an assumption that the stored length of the column was less than or equal to the actual length of the string. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472617">472617</a></td>
<td>The Interactive SQL window could have stopped repainting when executing a long-running query. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472619">472619</a></td>
<td>The Unload utility would have reported a syntax error if the tsql_variables option was set to &#39;on&#39;. This option controls how variable references starting with @ are handled. The unload script now temporarily sets the option to the default value (off).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472620">472620</a></td>
<td>Mini core files generated on Linux as a results of a crash are too big. The server was including executable segments in the core files. This has been fixed by discarding executable segments, and any data segments that exceed 2MB in size.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472623">472623</a></td>
<td>If a query was executed that used a merge join, and the null-supplying input of the merge join was a derived table that contained an unquantified expression in its select list and the join condition contained a non-equality predicate referencing this unquantified expression, the statement would have fail with the following message:</p>
<p>				Assertion failed: 106105 (...) - Unexpected expression type dfe_FieldOrigRid while compiling</p>
<p>				For example, the following query could have generated this problem:</p>
<p>				SELECT T1.col1</p>
<p>				FROM</p>
<p>				( select NULL col1, row_num col2,</p>
<p>				(select dummy_col from sys.dummy ) col3</p>
<p>				from dbo.rowgenerator</p>
<p>				) T1</p>
<p>				FULL JOIN</p>
<p>				( select dummy_col c1, dummy_col+1 c2</p>
<p>				from sys.dummy D1</p>
<p>				) T2</p>
<p>				ON (T1.col2=T2.c1) AND (T1.col3=T2.c2)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472632">472632</a></td>
<td>Messages with a NULL originator in the server message store, would have caused message processing to halt. This has been fixed as follows: the QAnywhere Agent has been changed so that messages with a NULL originator will not be uploaded until the store ID is set on the client. The QAnywhere connector has been changed so that if a message with NULL originator somehow gets into the server message store, the message will be marked as unreceivable and skipped, not halting further message processing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472645">472645</a></td>
<td>If a transaction log file on the primary server in a database mirroring environment was grown using ALTER DBSPACE TRANSLOG ADD, the statement would have been sent to the mirror server, but would have been ignored. This has been fixed. The log on the mirror will now be correctly grown when the mirror server receives this statement from the primary server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472648">472648</a></td>
<td>The MobiLink server could have entered into an infinity loop and generated a very large output file, or have even crashed, if the execution of an upload_fetch, download_cursor, or download_delete_cursor script caused an error, or if the number of columns in the result set generated by any of these cursors did not match the number of columns defined</p>
<p>				in the corresponding remote table, and the handle_error or handle_odbc_error script returned 1000 when these errors occurred. This problem has been fixed. The MobiLink server will now abort the synchronization if any of these unrecoverable errors</p>
<p>				occur during synchronization. The errors in the user-defined scripts must be fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472768">472768</a></td>
<td>The Unload utility was generating the reload.sql script using newline (linefeed) characters to separate lines on Windows, rather than the generally accepted carriage return/linefeed characters. This has been fixed. On other platforms, the script will continue to use newline characters as line separators.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472772">472772</a></td>
<td>Mini-core dumps generated by the server on Linux systems may not have loaded properly in the debugger, or would not have shown any stack traces. In order to limit the size of the mini-core files on Linux, the size of a single data segment in the dump was limited, to 2MB. On some Linux systems this was not sufficient so it has been increased to 5MB.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472773">472773</a></td>
<td>If an event has a query that references a proxy table, and the remote data access class was either SAJDBC or ASEJDBC, then the server would have crashed once the event completed. This problem has now been fixed. </p>
<p>				NOTE that there is no problem if the remote data access class is ODBC based.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472777">472777</a></td>
<td>When the Certificate Creation utility (createcert) prompted for an encryption type, RSA vs ECC, it accepted lowercase &#39;r&#39; or &#39;e&#39;, but not uppercase &#39;R&#39; or &#39;E&#39;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472778">472778</a></td>
<td>Secure-streams startup errors, for example when a bogus certificate identity password was used, would not have prevented the server from starting. The error would only have been detected on the first synchronization. This may have resulted in a server crash, depending on the error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472829">472829</a></td>
<td>If an application executes a Java stored procedure, and then the server crashed (for an unrelated reasons) while the Java method was still executing, there was a chance the JVM will not have shut down cleanly. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472920">472920</a></td>
<td>A mobile webservices client application could have failed with a NullReferenceException when processing a SOAP response that contained elements described as &lt;any&gt; in the WSDL description. This has been fixed. </p>
<p>				Note: this problem occurs when processing &lt;row&gt; elements contained within &lt;SimpleDataset&gt; elements in result sets returned by SQL Anywhere SOAP services.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472922">472922</a></td>
<td>In certain circumstances, a complex statement (large number of query elements) could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472928">472928</a></td>
<td>AS of 10.0.1 build 3341, it was possible to use the Data Source utility (dbdsn) to create DSNs for the iAnywhere Oracle driver DSNs&quot;. Although it was possible to install the iAnywhere Oracle driver and not have dbdsn installed. If for example, MobiLink was installed without SQL Anywhere, the iAnywhere Oracle driver would have been install without dbdsn. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472948">472948</a></td>
<td>There were two problems related to foreign keys to unique constraints (in this description, 搖nique constraint� is assumed to be a unique constraint other than the primary key). For each problem, assume there is one table (P) with a unique constraint and another table (F) with a foreign key referencing that unique constraint.</p>
<p>				The first problem was that updating a row in P that was referenced by F would not have generated the necessary foreign key violation error. This would have lead to rows in F with no corresponding row in P. Note that this wasn抰 a problem when referencing primary keys because primary keys should not be updated in UltraLite.</p>
<p>				The second problem occurred when the foreign key from F to P was declared as CHECK ON COMMIT. When a row was deleted from P, temporarily violating RI, but a new row was added before the transaction was committed that kept RI in tact, an error would still have been raised. Since the foreign key was declared as CHECK ON COMMIT, the error should not have occurred. </p>
<p>				Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR472972">472972</a></td>
<td>Calling the system procedure sa_describe_query() could have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR473062">473062</a></td>
<td>The server would have crashed if an invalid reference was made to a function: name..function() (note the two dots). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR473187">473187</a></td>
<td>The &quot;Server name &lt;name&gt; already in use&quot; message could have contained incorrect characters instead of the name. In rare cases, this could have caused the server to crash on startup if the server name was in use. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_47.htm#CR473203">473203</a></td>
<td>When using the iAnywhere Solutions 10 - Oracle ODBC driver to fetch data by calling SQLGetData(), the data could have been truncated, if the column was not a BLOB column, and the buffer size passed into SQLGetData was less than the actual data length. This problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473206">473206</a></td>
<td>On UNIX platforms, linking applications directly against the iAnywhere ODBC driver without using a driver manager is supported. When an application was linked in this way, the FileDSN connection parameter would have been ignored by the ODBC driver. This has been fixed.</p>
<p>				As a workaround, a driver manager such, as unixODBC, can be installed, or the ODBCINI environment variable can be set to point to the DSN file in question. The second work around would require the FileDSN parameter to be changed to DSN.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473431">473431</a></td>
<td>For certain types of queries, it was possible for the statement to fail with the non-fatal assertion failure 106105-&quot;Unexpected expression type dfe_PlaceHolder while compiling&quot;. If this happened, the statement was failed but the server would continue processing further requests. </p>
<p>				For example, the following statement could have exhibited this behaviour:</p>
<p>				SELECT row_num</p>
<p>				FROM rowgenerator R2</p>
<p>				WHERE</p>
<p>				( SELECT sum( 1 )</p>
<p>				FROM sys.dummy D1</p>
<p>				WHERE D1.dummy_col = R2.row_num</p>
<p>				) &gt;= 0</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473449">473449</a></td>
<td>Database file space allocated for long varchar or long binary columns was not properly reclaimed on deletion of the row in some cases. As a result, the database file could have grown unexpectedly. This has been fixed. Applying this fix will prevent further unnecessary growth but not reclaim the lost space within the database file. To reclaim space, the database file must be recreated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473461">473461</a></td>
<td>Simple DELETE and UPDATE statements that bypass the optimizer could have caused the server to crash when they were executed a second time after rstarting the database. This would have occurred if the trigger used a row limit (TOP n , FIRST,...), or the Transact SQL option rowcount was set to a non-zero value. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473528">473528</a></td>
<td>A long running Listener utility dblsn.exe may have crashed when persistent connections were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473550">473550</a></td>
<td>A query with predicates in the WHERE clause of the form &quot;column &lt; constant OR column &gt; constant&quot;, would have returned rows with column = constant. This only occurred if &quot;column &lt; constant&quot; predicate appeared before the OR and &quot;column &gt; constant&quot; predicate was after it. The predicate optimizer did not recognize that the two conditions were disjoint and replaced them with &quot;column is not null&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473559">473559</a></td>
<td>The server could have failed to recover a database, with assertion failures 200502, 201417 or 201418 likely in this situation. This was most likely to have occurred when the server was running on a Windows CE device, and the device was reset while the server was active. Databases using checksums or encryption may be more prone to seeing this problem. While this problem has been fixed, it&#39;s still possible to get these assertions where there is something wrong with the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473562">473562</a></td>
<td>It was possible, although rare, for a call to the system procedure sa_locks() to have caused the server to crash. This crash was most likely to have occurred when many users were connecting, and/or disconnecting, while sa_locks() was being called. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473621">473621</a></td>
<td>Attempting to autostart a server with no license file installed, would have failed with the error &quot;Unable to start specified database: failure code 1.&quot; The license file has the same name as the server executable, with a .lic extension. This has been fixed so that the more descriptive error &quot;Unable to start database server: missing license file&quot; is now given in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473622">473622</a></td>
<td>Re-executing the exact same &quot;FORWARD TO&quot; statement multiple times on the same connection could have failed with various errors. FORWARD TO statements were incorrectly being cached, but they must be prepared each time they are executed. This has been fixed by no longer caching FORWARD TO statements.</p>
<p>				A workaround is to disable client statement caching for the connection by setting the max_client_statements_cached temporary option to 0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473623">473623</a></td>
<td>If two or more database mirroring servers running on Windows were started at the same time, they could have failed to communicate properly. In this situation, the last message displayed in the server console would have been &quot;determining mirror role ...&quot;. The servers would not have accepted connections, and could not have been shut down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473699">473699</a></td>
<td>Queries containing derived tables, or views which were eliminated during semantic rewriting, may have incorrectly returned syntax errors such as &quot;Column &#39;...&#39; not found&quot; (SQLE_COLUMN_NOT_FOUND, -143, 52003). For this problem to have occurred, the derived tables or views must have had at least a subselect or a subquery. This has now been fixed. </p>
<p>				Example:</p>
<p>				The derived table T4 contains a subselect &quot;( select dummy_col from sys.dummy T2 where 1 = T3.row_num ) as c1&quot;. T4 is redundant in this query and it is eliminated by the outer join elimination process. The query Q1 is equivalent to &quot; SELECT DISTINCT T1.dummy_col FROM sys.dummy T1 &quot;</p>
<p>				Q1:</p>
<p>				SELECT DISTINCT T1.dummy_col</p>
<p>				FROM</p>
<p>				sys.dummy T1</p>
<p>				left outer join</p>
<p>				( select row_num c0,</p>
<p>				( select dummy_col from sys.dummy T2 where 1 = T3.row_num ) as c1</p>
<p>				from dbo.rowgenerator T3</p>
<p>				) T4</p>
<p>				on 1=1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473724">473724</a></td>
<td>When both the graphical and non-graphical Dbmlsync Integration Components (ActiveX components) were unregistered, they left the following key in the registry:</p>
<p>				HKEY_CLASSES_ROOT\TypeLib\{A385EA65-7B23-4DC3-A444-2E759FF30B14}</p>
<p>				This key is now removed when both components have been unregistered.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473827">473827</a></td>
<td>The server could have failed during database recovery with assertion failures 202101 - &quot;Invalid Bitmap Links on Page ...&quot; or 202100 &quot;Invalid bitmap page at page ... -- transaction rolled back&quot; under some circumstances where it was not warranted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473831">473831</a></td>
<td>A watch for the variable SQLCODE did not evaluate correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473833">473833</a></td>
<td>If an ODBC application bound a procedure&#39;s INOUT parameter as input-only, a communication error may have occurred. Calling SQLBindParameter( ..., SQL_PARAM_INPUT, SQL_C_WCHAR,... ) would bind an input-only parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473834">473834</a></td>
<td>If a statement contained a user-defined function that had an argument that was a subquery, and the statement contained a union view with a predicate comparing a column of the union view to the user-defined function, then the statement could have failed with an inappropriate error. For example, the following sequence would generate this inappropriate error.</p>
<p>				create view V_shubshub( x ) as</p>
<p>				select dummy_col from sys.dummy D3</p>
<p>				union all</p>
<p>				select dummy_col from sys.dummy D4</p>
<p>				go</p>
<p>				create temporary function F_tt(in a1 smallint)</p>
<p>				returns decimal(16,5)</p>
<p>				begin</p>
<p>				return 0.0</p>
<p>				end</p>
<p>				go</p>
<p>				SELECT *</p>
<p>				FROM</p>
<p>				(</p>
<p>				select F_tt( ( select dummy_col from sys.dummy D1 ) ) x</p>
<p>				from sys.dummy D2</p>
<p>				) AS T1</p>
<p>				WHERE NOT EXISTS(</p>
<p>				SELECT 1</p>
<p>				FROM V_shubshub T2</p>
<p>				WHERE T1.x=T2.x</p>
<p>				)</p>
<p>				In version 8.0, the following error was returned:</p>
<p>				-266 42W27 &quot;QOG_BUILDEXPR: could not build sub-select&quot;</p>
<p>				in version 9.0 and later, the following error was given:</p>
<p>				&quot;Run time SQL error -- *** ERROR *** Assertion failed: 102604 (...) Error building sub-select&quot;</p>
<p>				In versions prior to 8.0, it was possible for an incorrect answer to be returned without an error being returned. </p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473835">473835</a></td>
<td>The HTTP server can now disable connections using SSLv2. The database server command line option -xs now supports the SSLv2 parameter whose values can be YES or NO. SSLv2 defaults to YES, but can be set to NO to disallow HTTPS connections using SSL version 2.0. For example,</p>
<p>				dbeng10 web.db -xs HTTPS(SSLv2=N)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473860">473860</a></td>
<td>If a synchronization model was deployed with HTTPS or TLS as the stream type, the generated batch file for starting the MobiLink server could have given an &quot;Unable to convert the string &lt;string&gt; to a numeric value&quot; error, because the stream parameters were incorrectly separated by commas instead of semi colons. This has been fixed.</p>
<p>				A workaround is to edit the generated batch file to use semicolons instead of comma for the stream parameters by changing this line:</p>
<p>				set STREAM=&quot;%STREAM_TYPE%(port=%PORT%,tls_type=%TLS_TYPE%,fips=%FIPS%,certificate=%CERTIFICATE%)&quot;</p>
<p>				to the following:</p>
<p>				set STREAM=&quot;%STREAM_TYPE%(port=%PORT%;tls_type=%TLS_TYPE%;fips=%FIPS%;certificate=%CERTIFICATE%)&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR473990">473990</a></td>
<td>If a statement contained a derived table or view that specified DISTINCT and that derived table appeared on the NULL-supplying side of an outer join and further the query optimizer selected the Ordered Distinct algorithm for that derived table, then the statement could have failed with an assertion failure:</p>
<p>				Assertion failed: 106105 (...) Unexpected expression type dfe_PlaceHolder while compiling</p>
<p>				For example, the following statement could have this problem:</p>
<p>				SELECT *</p>
<p>				FROM</p>
<p>				dbo.rowgenerator T1</p>
<p>				LEFT JOIN</p>
<p>				(</p>
<p>				SELECT dummy_col c1</p>
<p>				FROM sys.dummy T2</p>
<p>				UNION ALL</p>
<p>				SELECT 12345 c1</p>
<p>				FROM ( select distinct id from sales_order_items order by id asc ) T3</p>
<p>				) T4</p>
<p>				ON 1=1</p>
<p>				WHERE T1.row_num &lt; 10</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474181">474181</a></td>
<td>If the SQL Anywhere engine/server was shutdown by means of a SIGINT, SIGHUP, SIGQUIT or SIGTERM then no reason for the shutdown would have been recorded in the server log. This has been fixed -- an appropriate message will now be output to the server log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474282">474282</a></td>
<td>When a DataGrid object was filled with columns that contained more than 32K bytes, an error could have been returned by the SQL Anywhere OLE DB provider. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474289">474289</a></td>
<td>If an application maked use of external function calls, the server may have crashed if the application disconnected while a call to an external function was being executed; or if enough connections called external functions such that the server&#39;s worker thread limit was exceeded and a deadlock condition arose. This problem has been fixed. When a deadlock condition arises, the error &quot;All threads are blocked&quot; will result for one or more connections executing an external function call. To avoid this error, the server option -gn can be used to increase the number of worker threads.</p>
<p>				When a client disconnects during execution of an external function call, the server will no longer crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474305">474305</a></td>
<td>If both the 64-bit and 32-bit SQL Anywhere client software were installed on the same system, and an application attempted to use the iAnywhere JDBC driver, it was possible that the driver would have failed with an UnsatisfiedLinkError exception. This problem could only have occurred if a 32-bit Java VM was being used and the 64-bit SQL Anywhere libraries appeared first in the path, or a 64-bit Java VM was being used and the 32-bit SQL Anywhere libraries appear first in the path, and the SQL Anywhere installation path has at least one space in it. In particular, if there was no space in the installation path, then the bitness of the VM, and the order of the libraries in the path, did not matter and should not have caused any UnsatisfiedLinkError exceptions. This particular problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474312">474312</a></td>
<td>An existing dbdata10.dll in an application&#39;s folder would still have been loaded by the .NET Common Language Runtime. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474314">474314</a></td>
<td>Using or accessing a procedure or function that had been marked as hidden could have caused the server to hang. This would only have happened if the length of the obfuscated text was near, or larger than, a database pagesize. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474324">474324</a></td>
<td>If a stored procedure contained a cursor declaration for a call to an internal stored procedure (e.g. sa_locks, sa_rowgenerator), then calling the procedure would have resulted in the error &quot;Invalid prepared statement type&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474480">474480</a></td>
<td>If a database contained a table with a table ID larger than 65535, calling the system procedure sa_locks() may have caused the server to crash. This crash would only have occurred if there was a lock held on a table with a table ID larger than 65535. The contents of SYS.SYSTABLE can be examined to determine if any such tables exist. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474496">474496</a></td>
<td>When editing a cell in the &quot;Table Mappings&quot; table, if a corresponding tab existed in the lower details pane, the appropriate tab would have be selected. For example, if a table mapping&#39;s Download Type changes, the Download Type tab would have been selected in the lower details pane. </p>
<p>				Also, if a row was selected in the &quot;Table Mappings&quot; table that had a non-empty status column, the Status tab would have been selected.</p>
<p>				These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474596">474596</a></td>
<td>The 10.0.1 Maintenance Release and subsequent EBFs did not correctly update the ADO.NET Data Provider. This has been fixed so that the provider is now updated. </p>
<p>				The following steps are a work around: </p>
<p>				- From the Control Panel launch the Add or Remove Programs application.</p>
<p>				- In the SQL Anywhere 10 item click the Change button. </p>
<p>				- In the maintenance Welcome dialog select the Modify option.</p>
<p>				- In the Select Features dialog deselect the ADO.NET Data Provider feature and proceed with installation maintenance (this will uninstall the feature).</p>
<p>				- Repeat the above, but this time select the ADO.NET Data Provider and proceed with installation maintenance (this will reinstall the correct version of the feature).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474597">474597</a></td>
<td>The result set of SYS.SYSINDEXES was modified to include primary and foreign key indexes in version 10 of SQL Anywhere. However, these indexes were not distinguished from other indexes. The view definition has been changed so that these indexes are identified by &quot;Primary Key&quot; and &quot;Foreign Key&quot;, respectively, by the indextype field.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474599">474599</a></td>
<td>If the database option Ansi_close_cursors_on_rollback was set to &#39;on&#39;, and a cursor was opened on a stored procedure containing a declared cursor, a ROLLBACK could have put the connection into a state where attempting to open additional cursors would have failed with the message: &quot;Resource governor for &#39;cursors&#39; exceeded&quot;. The ROLLBACK caused the cursors to be closed in an order that resulted in the server trying to close a cursor twice. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474606">474606</a></td>
<td>When using the OLE DB provider, a crash could have occurred when disconnecting from a datasource. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474617">474617</a></td>
<td>The certificate utilities createcert.exe and viewcert.exe as well as dbcecc10.dll were missing version info. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474631">474631</a></td>
<td>In the Windows Explorer, the files mlrsa_tls10.dll, mlrsa_tls_fips10.dll and mlecc_tls10.dll would have appeared versionless when their properties were inspected. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474633">474633</a></td>
<td>If the definition of a computed column included a reference to another table column defined as NOT NULL, and an INSERT or UPDATE statement set the NOT NULL column to NULL, then the computed column could have been evaluated to an inconsistent result.</p>
<p>				For example:</p>
<p>				create table T( x int not null, y int null compute( if x is null then 123 else x endif ) )</p>
<p>				go</p>
<p>				CREATE TRIGGER &quot;ChangeX&quot; BEFORE INSERT, UPDATE ON T</p>
<p>				REFERENCING NEW AS new_row</p>
<p>				FOR EACH ROW</p>
<p>				BEGIN</p>
<p>				message string(&#39;Trigger: &#39;,new_row.x,&#39;,&#39;,new_row.y);</p>
<p>				if new_row.x is null then</p>
<p>				SET new_row.x = 4;</p>
<p>				end if;</p>
<p>				END</p>
<p>				go</p>
<p>				insert into T(x) values( NULL )</p>
<p>				After the above insert, T contains one row (4,NULL). The result for y is inconsistent with the definition of the computed column.</p>
<p>				The following non-fatal assertion failures could be reported in this case:</p>
<p>				Assertion failure 106900 Expression value unexpectedly NULL in read</p>
<p>				or</p>
<p>				Assertion failure 106901 Expression value unexpectedly NULL in write</p>
<p>				This has been fixed. An attempt to put a NULL value into a column declared NOT NULL that is used in a computed column will result in an error message:</p>
<p>				23502 -195 &quot;Column &#39;%1&#39; in table &#39;%2&#39; cannot be NULL&quot; </p>
<p>				This checking is performed before triggers fire, and this represents an intentional change in behaviour.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474715">474715</a></td>
<td>The server only supports compressed database files up to a size of 4GB. If dbshrink</p>
<p>				or the CREATE COMPRESSED DATABASE statement tried to create a compressed db file larger</p>
<p>				than 4GB then the resulting file would have been corrupted. This has been fixed so that the server now returns the error &quot;Database creation failed&quot; if the resulting file would be larger than 4GB.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474724">474724</a></td>
<td>When attempting to process transaction logs from an older version of ASA, (such as with the Translation utility or SQL Remote), there was a chance that it would have failed prior to processing the full log, with any number of odd error messages. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474726">474726</a></td>
<td>If a query contained INTERSECT ALL or EXCEPT ALL and one of the branches of the query expression was optimized by un-nesting an EXISTS predicate, then the wrong answer could have been given. The INTERSECT ALL would have been incorrectly treated as INTERSECT, and the EXCEPT ALL as EXCEPT.</p>
<p>				For example, the following query shows this problem:</p>
<p>				select D0.type_id</p>
<p>				from sys.sysdomain D0</p>
<p>				intersect all</p>
<p>				select D1.type_id</p>
<p>				from sys.sysdomain D1</p>
<p>				where exists ( select * from sys.sysdomain D2 where D2.type_id = D1.type_id )</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474737">474737</a></td>
<td>Queries containing a predicate using a view column which was a complex expression (e.g., it contained a subselect) may have caused the server to fail an assertion. Although this would likely have been rare, it has been fixed.</p>
<p>				For example:</p>
<p>				SELECT *</p>
<p>				FROM</p>
<p>				( SELECT DISTINCT DT1c2</p>
<p>				FROM ( SELECT (select dummy_col from sys.dummy D3 ) as alias1,</p>
<p>				( select row_num from dbo.rowgenerator R4 where row_num-1 = alias1 )</p>
<p>				FROM dbo.rowgenerator R5</p>
<p>				) DT1( DT1c1, DT1c2 )</p>
<p>				) DT2</p>
<p>				WHERE EXISTS(</p>
<p>				SELECT 1</p>
<p>				FROM (</p>
<p>				SELECT 1</p>
<p>				FROM sys.dummy D0</p>
<p>				UNION ALL</p>
<p>				SELECT 2</p>
<p>				FROM sys.dummy D1</p>
<p>				) DT3( &quot;DT3c1&quot;)</p>
<p>				WHERE DT2.DT1c2 &gt;= DT3.DT3c1 &lt;&lt;&lt;&lt;&lt;------------- DT2.DT1c2 contains the subselect &quot;( select row_num from dbo.rowgenerator R4 where row_num-1 = alias1 )&quot;</p>
<p>				)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474753">474753</a></td>
<td>Queries containing a predicate referencing a subquery may, in rare circumstances, have failed with the message: &quot;Assertion failed: 106105 (...) Unexpected expression type dfe_Quantifier while compiling&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474873">474873</a></td>
<td>Synchronizing with a version 8 client, could have caused the MobiLink server to crash. This would have usually happened after a log offset mismatch. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474883">474883</a></td>
<td>Connecting to a blank padded database, using either Open Client or jConnect, and then attempting to fetch an NChar value, would likely have caused the application to hang. This problem has now been fixed. </p>
<p>				Note that this fetching nvarchar or long NVarChar data from a blank padded database using a TDS client was not affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR474904">474904</a></td>
<td>If two or more transactions concurrently attempted to lock a table t in exclusive mode with &quot;lock table t in exclusive mode&quot;, the transactions could have deadlocked. This was much more likely to occur on multi-processor systems, and is not likely to be reported by personal servers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475008">475008</a></td>
<td>When using a load balancer that tested the MobiLink server availability by probing the server network port, the server may have shutdown. This shutdown was due to the server believing that it could no longer accept new connections. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475009">475009</a></td>
<td>If a web server set the HTTP option CharsetConversion to &#39;OFF&#39; by calling the system procedure sa_set_http_option(), (eg sa_set_http_option( &#39;CharsetConversion&#39;, &#39;OFF&#39; ) from a stored procedure, the setting would have been ignored. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475010">475010</a></td>
<td>The server may have crashed while debugging a web service procedure from within Sybase Central, if the server was shutdown while paused on a break-point. This has been fixed. In addition, the canceled response will specify a Connection: close and default to non-chunk mode Transfer-Encoding.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475032">475032</a></td>
<td>Two new parameter values have been added to the system procedure sa_server_option() to aid in locating references to database options in applications: OptionWatchList and OptionWatchAction. OptionWatchList specifies a comma-separated list of database options. OptionWatchAction specifies the action the server should take when an attempt is made to set an option in the list. The possible values for OptionWatchAction are &#39;message&#39; (default) and &#39;error&#39;. If OptionWatchAction is set to &#39;message&#39; and one of the options in the watch list is set, the server will display a message in the server console window:</p>
<p>				Option &quot;&lt;option-name&gt;&quot; is on the options watch list</p>
<p>				If OptionWatchAction is set to &#39;error&#39;, an attempt to set an option in the watch list will result in an error:</p>
<p>				Cannot set database option &quot;&lt;option-name&gt;&quot; because it is on the options watch list</p>
<p>				The values of db_property(&#39;OptionWatchList&#39;) and db_property(&#39;OptionWatchAction&#39;) can be used to determine the current settings.</p>
<p>				Example:</p>
<p>				call dbo.sa_server_option(&#39;OptionWatchList&#39;,&#39;automatic_timestamp,float_as_double,tsql_hex_constant&#39;)</p>
<p>				Note that the size of the string specified for OptionWatchList is limited to 128 bytes (the maximum for the &quot;val&quot; parameter to sa_server_option).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475035">475035</a></td>
<td>Ct has two request to do about this : </p>
<p>				a.) continue developer the DBShrink in ASA 9.x, it means, fix the limitation to handle cbd file over 4 Gb. </p>
<p>				b.) Return to include this in ASA 10, in where it was removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475038">475038</a></td>
<td>Preparing the exact same statement before and after executing a SETUSER WITH OPTION statement may have caused the second statement to not respect the option change and behave incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475039">475039</a></td>
<td>If an application connected using jConnect 6.x, and attempted to query the name of a date or time column using ResultSetMetaData.getColumnTypeName(), then the server would have incorrectly returned null instead of the string &quot;date&quot; or &quot;time&quot; respectively. The server now has support for the new TDS DATE and TIME datatypes, but the jConnect metadata scripts had not been updated to reflect the new support. The script jcatalog.sql has been updated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475052">475052</a></td>
<td>Under heavy load, a mirror server could have generated a corrupt transaction log. The mirror server could have failed in several different ways, including failed assertions 100902, 100903, and 100904. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475131">475131</a></td>
<td>Under rare circumstances, applications running on Unix systems may have crashed following a disconnect. This was more likely to have occurred on a multi-processor machines. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475135">475135</a></td>
<td>In rare circumstances, a TLS connection that should have failed due to a certificate validation failure, may have actually succeeded. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475138">475138</a></td>
<td>Erroneous results could have been obtained for queries with joins containing a derived table with GROUP BY, and a WHERE clause referencing a column from the derived table. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475228">475228</a></td>
<td>If a remote table had a wchar column and an attempt was made to create a proxy table to the remote table, but with the wchar column being mapped to a varchar column, then the server would have failed with a datatype not compatible error. While this error was correct, it nevertheless was unexpected given that mapping remote wchar columns to local varchar columns worked in prior versions. Mapping remote wchar columns to local varchar columns is now allowed for backwards compatibility, but not recommended. Wchar columns should instead be mapped to nchar columns, if at all possible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475259">475259</a></td>
<td>When the variable &quot;@@rowcount&quot; was selected, the Interactive SQL utility would always have displayed the value &quot;1&quot;. This has been corrected so that the actual value is now displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475263">475263</a></td>
<td>The MobiLink Monitor could have failed with a NegativeArraySizeException. The failure was more likely when under very heavy load. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475278">475278</a></td>
<td>If a table was defined with a char(255) or varchar(255) column, and then BCP IN was used to insert a string of length 251 or greater bytes into the char(255) column, then BCP would either have failed with a protocol error, or, the value NULL would have been inserted into the column. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475293">475293</a></td>
<td>A client-side backup (ie using the Backup utility or calling the dbtools function DBBackup) that truncated the log, could have created a backed-up log file that was invalid. When this occurred the logfile would have appeared to be too short; i.e., the end offset of the backed-up log did not match the starting offset of the current log. This problem did not occur when the log was not truncated, or when calling the BACKUP DATABASE statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475297">475297</a></td>
<td>If a dbspace name contained a period, then the part of the dbspace name before the period was silently ignored by the server. Note that this did not apply if the dbspace name was quoted. This has been fixed so that the server now generates an error when the dbspace name contains a period.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475448">475448</a></td>
<td>In rare cases, the Extraction utility dbxtract could have generated a reload script with a LOAD TABLE or INPUT statement referencing columns in an order which did not match the order of the columns in the corresponding data file. This has been fixed by adding a missing ORDER BY clause.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475452">475452</a></td>
<td>If a remote server was defined with a USING string that contained single quotes, the Unload utility would have generated a CREATE SERVER statement that would have failed with a syntax error because the quotes were not doubled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475472">475472</a></td>
<td>In very rare circumstance, an application could have hung in iAnywhere.Data.SQLAnywhere. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475488">475488</a></td>
<td>Inserting short or highly compressible data into a compressed column (either through INSERT or LOAD TABLE) may have created an excess number of free pages in the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475613">475613</a></td>
<td>If a database had an alternate server name, and was running on a system that was using LDAP, then the alternate server name would not have been unregistered from LDAP if the database was shut down (but the server is not). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475618">475618</a></td>
<td>The changes made for Engineering case 468319 introduced a problem where if many concurrent connections were made to the server, and then disconnected, the server may have taken several additional seconds to shutdown after the databases were shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475624">475624</a></td>
<td>When using a multi-threaded ODBC application with distributed transactions, attempting to enlist a DTC transactions could have failed in some cases. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475650">475650</a></td>
<td>Multiple connections using keyset cursors, and executing DELETE WHERE CURRENT OF or UPDATE WHERE CURRENT OF statements on the same table at the same time, could have caused the server to fail assertion 201501. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475752">475752</a></td>
<td>If a database involved in synchronization or replication was rebuilt using the Unload utility, the truncation point values stored in the database could have been set to values that would have caused transaction logs to be deleted via the delete_old_logs option, when they ware still required. This has been fixed. A database rebuilt using &quot;dbunload -ar&quot; will now have the resulting database truncation points set to zero. These values will be set more accurately the next time dbremote, dbmlsync, or dbltm is run. If the database is rebuilt manually, the truncation points can be zeroed by running:</p>
<p>				dblog -il -ir -is dbname.db</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475760">475760</a></td>
<td>If multiple publications were being synchronized separately, and the MobiLink client (dbmlsync) was running in hover mode, but the SendTriggers extended option for the publications were not all the same, it was possible for dbmlsync to not have synchronized trigger actions when they should have been, or to have synchronized trigger actions when they should not have been. This problem has now been fixed, but introduces a behaviour change. When multiple publications are synchronized in hover mode, if the SendTriggers option changes from one synchronization to the next, a complete rescan of the transaction log is now executed to ensure that the proper SendTriggers option is used. This could result in synchronizations taking longer than before, with the benefit that the data in the synchronization is correct.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR475962">475962</a></td>
<td>Clients connecting via the -xo option were not able to saturate the number of database workers specified by the -w option. This has been corrected so that the number of -xo clients that can concurrently connect is equal to the number of database worker threads.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476067">476067</a></td>
<td>The CREATE INDEX statement was not respecting the setting of the Blocking option, and would always have failed if another transaction had the table locked (for shared or exclusive access). As of version 10.0, this is more likely to be an issue as the cleaner locks tables temporarily as it does its work. In particular, a reload could have failed with errors of the form &quot;User &#39;another user&#39; has the table ... locked&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476077">476077</a></td>
<td>The 64 bit versions of mlstop.exe and mluser.exe not included in the 10.0.1 install. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476080">476080</a></td>
<td>A primary server in a synchronous mirror configuration, running on a Unix system, could have stopped servicing TCPIP connection packets if number of client connections exceed the number of worker threads (ie. -gn value). Another symptom would have been that existing connections would have been disconnected with liveness timeout errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476095">476095</a></td>
<td>The MobiLink server could leak memory when synchronizing and using the Listener. This includes using the Notifier alone, or with QAnywhere. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476112">476112</a></td>
<td>Erroneous results could have been returned for a query with an inner join and a WHERE clause containing a subquery. This has been corrected.</p>
<p>				For example:</p>
<p>				SELECT COUNT(*) FROM kb_baseclass INNER JOIN customer ON kb_baseclass=customer</p>
<p>				WHERE customer IN (SELECT client FROM contact)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476187">476187</a></td>
<td>When opening a data reader, prepared statements were dropped and re-created again. This has been fix so that a command can now only open one data reader at any time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476194">476194</a></td>
<td>If a binary bitwise operator (i.e. AND, OR, or XOR) was performed on a (signed or unsigned) bigint or a numeric, then the operator would have incorrectly cast both arguments to 32-bit integers. This could have resulted in inappropriate errors being thrown.</p>
<p>				For example, the following script generates an overflow error:</p>
<p>				create table types_bitwise( e_ubigint unsigned bigint );</p>
<p>				select e_ubigint &amp; 12345678901234567890 from types_bitwise;</p>
<p>				This problem could also have occurred if the unary bitwise operator NOT were performed on a numeric argument. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476195">476195</a></td>
<td>Erroneous results could have been returned for a query with both START AT and TOP clauses. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476211">476211</a></td>
<td>Queries using a UNION or UNION ALL, that exist within a stored procedure, function, trigger, or event, could have caused server instability (most likely either a crash or a failed assertion). This has been fixed. A workaround is to set the MAX_PLANS_CACHED option to zero.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476347">476347</a></td>
<td>If a command resulted in an exception, calling the same command again would have caused the exception &quot;Attempted to read or write protected memory&quot;.</p>
<p>				For example:</p>
<p>				SACommand cmd = new SACommand(&quot;INSERT INTO t VALUES (1)&quot;, conn);</p>
<p>				try</p>
<p>				{</p>
<p>				cmd.ExecuteNonQuery();</p>
<p>				}</p>
<p>				catch (Exception ex)</p>
<p>				{</p>
<p>				Console.WriteLine(&quot;Insert failed. &quot; + ex.Message + &quot;\n&quot; + ex.StackTrace);</p>
<p>				} </p>
<p>				try</p>
<p>				{</p>
<p>				cmd.ExecuteNonQuery();</p>
<p>				}</p>
<p>				catch (Exception ex)</p>
<p>				{</p>
<p>				Console.WriteLine(&quot;Insert failed. &quot; + ex.Message + &quot;\n&quot; + ex.StackTrace);</p>
<p>				}</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476372">476372</a></td>
<td>Synchronizing more than one database at a time using encryption or compression, could have caused the UltaLite runtime to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476516">476516</a></td>
<td>When using the SQL Anywhere OLE DB provider, preparing a statement that called a user-defined function would have resulted in the function&#39;s result value being truncated to 0 bytes. This problem has been corrected.</p>
<p>				The following is an example:</p>
<p>				CREATE FUNCTION foo( IN arg VARCHAR(3) )</p>
<p>				RETURNS VARCHAR(10)</p>
<p>				DETERMINISTIC</p>
<p>				BEGIN</p>
<p>				DECLARE retVal VARCHAR(10);</p>
<p>				SET retVal = &#39;RETURNVALU&#39;;</p>
<p>				RETURN retVal;</p>
<p>				END</p>
<p>				Dim cmd As New ADODB.Command</p>
<p>				cmd.CommandText = &quot;foo&quot;</p>
<p>				cmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc</p>
<p>				cmd.let_ActiveConnection(con)</p>
<p>				cmd.Prepared = True</p>
<p>				cmd.Parameters.Refresh()</p>
<p>				cmd.Parameters(1).Value = &quot;abc&quot;</p>
<p>				cmd.Execute()</p>
<p>				MsgBox(cmd.Parameters(0).Value)</p>
<p>				A work-around is to not prepare the command (ie. cmd.Prepared = False).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476519">476519</a></td>
<td>The INPUT and OUTPUT statements now allow control of when the byte-order-mark (BOM) is processed. Each statement supports the new clause:</p>
<p>				BYTE ORDER MARK { ON | OFF }</p>
<p>				The semantics are identical to those used by the server&#39;s LOAD TABLE and UNLOAD TABLE statements. If omitted, &quot;ON&quot; is the assumed value. The BYTE ORDER MARK clause is relevant only when reading or writing ASCII formatted files encoded with UTF-8 or UTF-16 (and its variants). Attempts to use the BYTE ORDER MARK clause with FORMAT clauses other than ASCII, or with any other encoding, will result in an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476533">476533</a></td>
<td>The debugger state was not being updated correctly when debugging a connection currently at a breakpoint and then a running connection was chosen from the connections list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476544">476544</a></td>
<td>In rare cases, the server could have crashed executing an ALTER TABLE statement. This would have most likely occurred when removing columns from a table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476693">476693</a></td>
<td>It was not possible touse the INPUT statement to populate a GLOBAL TEMPORARY table that did not preserve rows on commit. The INPUT statement had the unintentional side-effect of committing changes. This has been fixed, INPUT no longer does a COMMIT.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476708">476708</a></td>
<td>The problem requires the schema of the UltraLite database to have a table with a unique constraint (other than the primary key) and another table referencing that unique constraint with a foreign key. When a delete is downloaded, all rows referencing the deleted row (via a foreign key to the table) should also be deleted to maintain referential integrity. This was working properly; however, a similar scenario existed if an update was downloaded and the foreign key referencing the row did so by referencing a unique constraint instead of the primary key. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476819">476819</a></td>
<td>When User Account Control (UAC) is enabled, applications cannot have been registered with the provider for Windows Mobile Device Center (WMDC), either from dbasinst or from the provider itself. The reason for this was that applications are registered in the registry under HKEY_LOCAL_MACHINE, which requires administrator privileges when UAC is enabled. Although dbasinst has been elevated, and can set these registry entries, the provider was not. This has been corrected so that applications are now registered under HKEY_CURRENT_USER instead. However, this means that applications will now only be registered with a specific user, instead of automatically being registered with all users of a particular machine. The first time dbasinst is invoked after the patch has been applied, it will automatically move all registry entries from HKEY_LOCAL_MACHINE to HKEY_CURRENT_USER.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR476938">476938</a></td>
<td>A query with surrounding brackets and a preceding common table expression, would given a syntax error when used in a procedure. This is fixed. The workaround is to remove the brackets.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477150">477150</a></td>
<td>Setting SAParameter.SADbType could have caused an IndexOutOfRangeException in multi-threading code. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477156">477156</a></td>
<td>When a large number of clients (more than 2500) had contacted the MobiLink server, with all indicating they wished to receive push notifications, the server would have consumed a large amount of CPU evaluating transmission rules. This has been fixed.</p>
<p>				NOTE (for 9.0.2 only): It is also important to run the MobiLink server with the command line option</p>
<p>				-sl java ( -Dianywhere.qa.db.upgradeDeliveryColumns=true )</p>
<p>				in order to get the most out of this performance improvement. This option causes the MobiLink server to reorganize the QAnywhere message store tables, and add further indexes to these tables, to obtain optimal performance of MobiLink with QAnywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477181">477181</a></td>
<td>The SQL Anywhere server tries to maintain column statistics so that they reflect modifications being made as a result of data change statements. The server could have incorrectly modified existing column statistics under certain circumstances when executing searched UPDATE statements. The problem was likely to only take place when the new column values were the same as existing values for a large proportion of candidate rows. This has now been corrected. A potential remedy for this incorrect behaviour is to recreate column statistics by using the CREATE STATISTICS statement. Also, the server may eventually remedy the problem itself as a result of query execution feedback.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477194">477194</a></td>
<td>Executing a REORGANIZE TABLE statement while other connections were also performing DML on the table, could have caused the database server to fail an assertion. Such assertions would have included 100701: &quot;Unable to modify indexes for row referenced in rollback log&quot;. The REORGANIZE TABLE statement could have looped infinitely if another connection attempted to drop the table. A failed REORGANIZE TABLE, due to a deadlock or perhaps some other error, could have caused the server to crash. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477195">477195</a></td>
<td>The value of a numeric variable could have been rounded incorrectly when used in a statement other than a SELECT statement. The precise conditions under which this problem would have occurred are difficult to describe, but involve the use of the variable as part of a larger expression.</p>
<p>				For example, the following batch illustrates the problem. It would have returned 2.0, rather than the correct 2.6:</p>
<p>				BEGIN</p>
<p>				DECLARE varNumeric NUMERIC;</p>
<p>				DECLARE LOCAL TEMPORARY TABLE ltBUG (Dummy NUMERIC);</p>
<p>				SET varNumeric = 1.3;</p>
<p>				INSERT INTO ltBUG (Dummy) VALUES (ISNULL(varNumeric, 0) + ISNULL(varNumeric, 0));</p>
<p>				SELECT * FROM ltBUG;</p>
<p>				END;</p>
<p>				This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477203">477203</a></td>
<td>When using the Dbmlsync Integration Component (ActiveX) and the Message event was called, the msgID value was set to 0 for some messages that should have had unique identifiers. In particular this was reported for the message &quot;Unable to find log offset ....&quot;, although other messages were likely affected as well. The msgID value for these messages would not have been filled in correctly with a unique value. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477286">477286</a></td>
<td>Garbage characters could have appeared in the request-level log on lines containing query plans. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477290">477290</a></td>
<td>If logscan polling was disabled (using the -p command line option or the DisablePolling extended option) and a progress offset mismatch occurred, then the MobiLink client would have sent a new upload using the remote progress value. If the remote progress was greater than the consolidated progress, then this could have resulted in data loss, as operations on the remote could have been lost. If the remote progress was less than the consolidated progress, this could have resulted in server side errors applying the upload, as the same operation might have been uploaded more than once. This problem is now fixed. When a progress mismatch occurs a new upload will be sent from the consolidated progress unless the -r, -ra or -rb options are used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_48.htm#CR477294">477294</a></td>
<td>There was a security issue with logging on the QAnywhere client during initialization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477367">477367</a></td>
<td>When download acknowledgement was enabled, the MobiLink client would have incorrectly failed to send a download ack for a synchronization if a previous synchronization during the same run had encountered a server side download error. As a result the server would report the following error:</p>
<p>				Error: Unable to read from the &#39;tcpip&#39; network connection. Unable to read 2 bytes.</p>
<p>				Error: [-10034] No download confirmation from remote database</p>
<p>				This problem has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477370">477370</a></td>
<td>When attempting to install an EBF on MacOS using the GUI installer, the installer would have prompted for an installation key and subsequently rejected any keys given. This has now been fixed. As a workaround, the command line installer can be used to apply EBFs on MacOS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477420">477420</a></td>
<td>The behaviour of setting indicator variables when no rows were fetched was changed in the dblib library from that of previous versions. While the behaviour in this case was considered to be undefined, the behaviour has been reverted back to the original behaviour.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477492">477492</a></td>
<td>Indexes on materialized views would not have been recreated by an internal rebuild, i.e., dbunload -ar or -an. A workaround is to do a two-stage rebuild; unload the database first to files, and then reload using the reload.sql script. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477494">477494</a></td>
<td>Stale materialized views were not used by the optimizer when the option materialized_view_optimization was set to STALE. This has been corrected. </p>
<p>				For further information on the option Materialized_view_optimization, please refer to the SQL Anywhere� Server - Database Administration 爉anual.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477505">477505</a></td>
<td>The Unload utility (dbunload) can be used to unload materialized view data when given the command line options &quot;-d -t &lt;mat_view_name(s)&gt;&quot;. The changes for Engineering case 469705 introduced a problem where data for materialized views was also being unloaded to disk during a &quot;normal&quot; unload. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477526">477526</a></td>
<td>Applications running on HP-UX and using the iAnywhere ODBC Driver Manager, may have had connection attempts fail if the connection string contained non-ASCII characters. This would have been true for the MobiLink server, Remote Data Access connections and applications using the iAnywhere JDBC driver. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477617">477617</a></td>
<td>After running the Windows CE install on a Windows Vista system, immediately choosing to deploy to a Windows CE device would have caused the deployment install to crash with the following error:</p>
<p>				An error (-5011: 0x80040706) has occurred while running the setup.</p>
<p>				Please make sure you have finished any previous setup and closed other applications.</p>
<p>				If the error still occurs, please contact your vendor: Sybase, Inc.</p>
<p>				Spawning the CE deployment installer at the end of the CE Desktop install was unstable on Windows Vista. The deployment installer is no longer automatically deployed when installing on Windows Vista, but displays a message that deployment can be done by selecting &quot;Deploy SQL Anywhere for Windows Mobile&quot; from the Start menu.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477637">477637</a></td>
<td>If the network connection to the primary server (S1) in a database mirroring system was lost, a failover to the mirror server (S2) would have occurred as expected. However, once the network connection was restored, S1 would have reported that its database files were incompatible with the current primary (S2). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477714">477714</a></td>
<td>The ALTER TRIGGER SET HIDDEN statement incorrectly removed the table owner from the</p>
<p>				create trigger statement stored in the catalog. As a result, the reload of a hidden trigger definition would have caused the SQL error: &quot;Table ... not found&quot;, if the DBA user couldnot access the trigger without table owner. This has been fixed. </p>
<p>				In order to unload an existing database with this problem, the trigger definition will need to be recreated and then hidden first.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477738">477738</a></td>
<td>On Unix systems, the certificate utilities viewcert and createcert, were only being installed with ECC components and not with RSA components. Also, libdbcecc10_r.so, the new ECC support library for viewcert and createcert, was never installed at all. This has been fixed. On platforms where the utilities are supported, the EBF installer will now install viewcert and createcert if SQL Anywhere or MobiLink RSA libaries have been previously installed. The library libdbcecc10_r.so will be installed only if SQL Anywhere or MobiLink ECC libraries have been previously installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477777">477777</a></td>
<td>When attempting to insert a value into a string column of a proxy table using a variable, there was a chance the value inserted may have been NULL. This problem only happened if the string column involved the evaluation of an expression (like concatenation). For example, the following should work fine:</p>
<p>				create variable v char(128);</p>
<p>				set v = &#39;abc&#39;;</p>
<p>				insert into proxy_t(char_col) values(v);</p>
<p>				whereas, the following had a chance of inserting a NULL, instead of the concatenated value:</p>
<p>				create variable v char(128);</p>
<p>				set v = &#39;abc&#39; || &#39;def&#39;;</p>
<p>				insert into proxy_t(char_col) values(v);</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477892">477892</a></td>
<td>If an application was using the iAnywhere JDBC driver and called ResultSet.getBlob().getBytes() on a char, varchar or binary column that had an empty value in it, then the driver would have incorrectly returned null, instead of returning a 0-length byte [] value. This problem did not occur for empty long varchar or long binary columns. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477918">477918</a></td>
<td>In a database mirroring system running in async mode, if a heavy volume of update activity occurred on the primary server for an extended period of time, the mirror server could have crashed as a result of running out of memory. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR477995">477995</a></td>
<td>Attempting to run an archive backup (ie. BACKUP DATABASE TO ... ) would have caused a server crash if the database being backed up had no transaction log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478018">478018</a></td>
<td>The certificate utilities createcert and viewcert are now available on Mac OS X. They will be added if RSA components have been previously installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478022">478022</a></td>
<td>Applying Microsoft&#39;s XML security patch KB 936181 (MSXML 4.0 dll version 4.20.9848.0) to Windows Vista systems, would have caused the UltraLite Load utility to crash. This problem does not show up on Windows XP. A work around has been implemented to prevent the crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478055">478055</a></td>
<td>The server allows users to create temporary stored procedures that exist for the duration of the connection that creates the procedures. When creating these temporary stored procedures the server disallows the specification of an owner, i.e., temporary procedures are always owned by the user creating them. If a temporary procedure was referenced by ia qualified owner name in a query, the server would have failed to find the temporary procedure. The server now correctly finds qualified temporary procedures. A work around is to refer to temporary procedure by name only. </p>
<p>				Once a user had created a temporary procedure, the server would have allowed the creation of another temporary or permanent procedure by the same, resulting in duplicate procedures. The creation of duplicate temporary or permanent procedures is now not permitted. Note that the server already prevents the creation of a duplicate temporary or permanent procedure when the already existing procedure is a permanent one.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478059">478059</a></td>
<td>The UltraLite engine would have leaked process handles at a rate of one per client process per second. The engine was regularly opening a handle to each client process to determine if they were still running, but these handles were not being closed. These handles are now closed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478062">478062</a></td>
<td>On a busy server, it was possible that a failed HTTP connection may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478064">478064</a></td>
<td>An HTTP request having multiple empty variables may not have always represented the variable as null, but sometimes as the empty string &#39;&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478072">478072</a></td>
<td>ASA portaldatabase and mobilink services still use jconn2.jar</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478076">478076</a></td>
<td>The path to jconn3.jar should be included in the setenv.bat as CLASSPATH variable</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478153">478153</a></td>
<td>When the MobiLink server was running with QAnywhere messaging enabled and a JMS connector was configured and there is a high volume of JMS traffic between QAnywhere clients and a JMS system, the Java VM running in MobiLink would have used a continuously increasing amount of heap memory and may eventually have reached an out-of-memory condition. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478160">478160</a></td>
<td>The UNLOAD SELECT statement allows the INTO clause of the SELECT statement to be specified. However, the INTO clause is not meaningful in the context of the UNLOAD statement, and was being silently ignored. The use of the INTO clause in the UNLOAD SELECT statement will now generate a syntax error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478161">478161</a></td>
<td>On UNIX systems, if the primary and mirror servers were both run on the same machine and the environment variable SATMP either pointed to the same location for both, or was unset, the mirror server may have shut down with the error &quot;The alternate server name provided is not unique&quot;. This would have occurred if the primary server was killed with the signal SIGKILL, or if it is brought down by an abnormal event, and it did not have a chance to delete temporary files. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478217">478217</a></td>
<td>Executing some simple forms of INSERT, UPDATE and DELETE statements could have caused the server to crash when used with particular host variable values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478298">478298</a></td>
<td>When running the Unload utility on a database that was the primary site for a Sybase Replication Server, the REPLICATE ON clause was not being added to the ALTER TABLE and ALTER PROCEDURE statements in the reload.sql file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478491">478491</a></td>
<td>The MobiLink server would have crashed on startup when run on AIX 5.3 TL06 systems. This has now been resolved by having the installer turn off the execute bit on all shared objects on AIX so that the libraries will not be preload into the OS library cache.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478498">478498</a></td>
<td>The optimizer relies on accurate statistics to generate efficient access plans. Statistics may be obtained from column and index statistics among other sources. Absence of good statistics can cause the optimizer to pick access plans that execute slowly causing complex queries to suffer.</p>
<p>				An improvement to the optimizer has been made so that the performance of complex queries with expensive table scans, under cetain circumstances, does not suffer even when good statistics are not available.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478500">478500</a></td>
<td>The Swedish tailoring of the UCA collation did not conform to the 2005 standards of the Swedish Academy. In that standard, V and W were changed to be considered different characters at the primary level. To support this change a new tailoring has been implemented. To avoid incompatibilities with existing Swedish databases, the new tailoring was implemented as the &quot;phonebook&quot; sorttype variant of the Swedish UCA tailoring. For example:</p>
<p>				dbinit -zn UCA(locale=swe;sorttype=phonebook)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478618">478618</a></td>
<td>A server running a database that had handled more than roughly a billion transactions or snapshot scans in total since the database was created, could have failed assertion 201502 &quot;inconsistent page modification value&quot;. A single query may start many snapshot scans, so the problem was much more likely if using snapshot isolation. The problem is now fixed.</p>
<p>				After the assertion, there was a very small chance of corruption that may be present even if the server reports a successful recovery. Therefore, validation is recommended. If problems are detected, then they should be handled with normal procedures (e.g. restore to backup, or attempt to salvage using an unload and reload with a server that has the bug fix). </p>
<p>				It is possible to check the value of the internal counter involved in the bug by starting a transaction and running the query &quot;select start_sequence_number from sa_transactions()&quot;. It is best to upgrade to a fixed server regardless of the value, but a larger value indicates a workload that is more likely to eventually trigger the counter overflow that causes the problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478654">478654</a></td>
<td>A blob column defined with the INLINE or PREFIX specification, with a size that was near the database page size, could have caused the server to crash. This problem would have only occurred if the INLINE or PREFIX specifier was within approximately 50 bytes of the database page size, and string data longer than that amount was inserted into the table. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478704">478704</a></td>
<td>When connecting to a MobiLink server via HTTP or HTTPS, the Monitor sent more HTTP or HTTPS requests than necessary. Excessive flushing caused most requests to be shorter than they should have been. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478752">478752</a></td>
<td>Cancelling a database validation could have caused the server to crash. The validation could have been issued from dbvalid, the Sybase Central plugin, or from the VALIDATE DATABASE statement. A crash from this problem would have been relatively rare, as it could only have happened during a relatively small window of opportunity within a validation, but would have been more likely in databases with many indexes per table. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478909">478909</a></td>
<td>After having established a keep-alive connection from a browser request, a shutdown may have caused the server to crash. This is a timing issue that has only been seen when using Firefox. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478915">478915</a></td>
<td>The server may have crashed, or failed assertion 101518, if an UPDATE statement contained multiple tables in the table-list, and columns from all the tables were set to the same expression. </p>
<p>				For example, in the following update the columns T1.b and T2.c are set to the same expression @val</p>
<p>				update T1, T2</p>
<p>				set T1.b = @val, T2.c = @val</p>
<p>				where T1.a = T2.a</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR478925">478925</a></td>
<td>When using the UltraLite Unload utility to unload an UltraLite database to SQL Statements, the owner would have been included in the CREATE PUBLICATION statement. The statement would not habe been valid syntax for UltraLite. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479032">479032</a></td>
<td>When the UltraLite Synchronization utility&#39;s (ulsync) output was redirected to a file, and sync progress messages were requested with -v, those messages would not have been written on some patch levels of Windows Vista. Writes to standard output for the progress messages were being discarded when standard output of the owning executable (ulsync.exe) was not connected to a console. This has been fixed by using a callback function to report messages, rather than writing messages directly to stdout.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479053">479053</a></td>
<td>For some CPU bound queries, execution times could have been longer with Unix servers than execution times compared to an equivalent Windows server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479061">479061</a></td>
<td>Executing a DROP DATABASE statement could have caused a server crash or failed assertion if the database being dropped needed recovery. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479086">479086</a></td>
<td>When importing data into an existing table, the &quot;Preview&quot; table in the Import Wizard would have shown values in BINARY columns as &quot;[B@&quot; followed by up to 8 numbers and letters. The value from the file is now correctly displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479090">479090</a></td>
<td>When the MobiLink listener (dblsn) used both non-persistent connections (i.e. using -pc- switch explicitly) and confirmation, the notifier may have missed doing some fallback pushes when the listener was in the middle of confirming a previous notification. The problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479098">479098</a></td>
<td>When the HTTP server was under heavy load for a long period of time it was possible that it could have transitioned into a state where many contiguous requests were incorrectly rejected with a 503 error; &#39;Service Temporarily Unavailable&#39;. This has been fixed, HTTP requests are now only rejected in this way when resources such as memory or licensing are unavailable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479191">479191</a></td>
<td>When SQL Remote was scanning the active transaction to determine which operations to send, it was possible for the process to have crashed when it had reached the end of the active transaction log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479203">479203</a></td>
<td>The server could have crashed during recovery of a database that had gone down dirty while it was heavily-loaded. This has been fixed. The database file itself was not damaged and using an server with this fix will allow recovery to proceed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479204">479204</a></td>
<td>When request logging of plans was enabled, and a procedure that was being used in a query was dropped immediately before the cursor was closed, the server rare circumstances could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479237">479237</a></td>
<td>The MobiLink server could have exhausted cache memory when multiple version 8.0 or 9.0 MobiLink clients were concurrently synchronizing large numbers of tables. The server could have crashed, or shut down with the message &quot;Unable to allocate memory.&quot;. THis has now been fixed.</p>
<p>				Increasing the amount of cache memory using the -cm server option is a work around for this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479320">479320</a></td>
<td>On databases with multi-byte character sets, or when using multi-byte values (such as NCHAR), the string trim functions, trim(), ltrim() and rtrim() may have left blanks or extraneous bytes in the portion of the string that was intended to be trimmed. For this to have occurred, multi-byte characters must have appeared within the string data. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479327">479327</a></td>
<td>If an UPDATE statement on a view has more than one table expression in the update clause after view flattening, and the table expression that would have been updated is in the update clause preceded by a non-updatable table expression, then the UPDATE did not change any rows. </p>
<p>				Here are two examples:</p>
<p>				1) This UPDATE statement has in its update clause first a non-updatable table expression V1 and then the updatable table T1. It does not update column &quot;b&quot; of table T1.</p>
<p>				update ( select sum(T2.c) as xxx from DBA.T2 ) as V1( xxx) ,T1 </p>
<p>				set T1.b = isnull(V1.xxx,0) </p>
<p>				where V1.xxx = T1.a and V1.xxx is not null and T1.a is not null</p>
<p>				2) This UPDATE has two table expressions V1 and T1 in the update clause after view replacement of V11. If the order of the table expressions in the update clause is like in the example above, the UPDATE does not change any rows.</p>
<p>				create view V11 as select T1.b, isnull( V1.xxx, 0 ) as v2_2</p>
<p>				from ( select sum(T2.d) as xxx</p>
<p>				from T2 ) V1 right outer join T1 on V1.xxx = T1</p>
<p>				update V11 set b = v2_2</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479467">479467</a></td>
<td>Getting the query plan for a statement, using the SQL functions PLAN, EXPLANATION or GRAPHICAL_PLAN, could have caused the server to crashed if the plan for the statement had been cached. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479560">479560</a></td>
<td>On RedHat Enterprise 5 systems with kernel versions prior to 2.6.21, if a SQL Anywhere executable crashed, the crash handler would have written a crash log, but it would have failed to write out a minicore dump. This issue has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479694">479694</a></td>
<td>The problems described in Engineering cases 468864 and 478161 (inability to reuse an alternate server name if a server using it terminated abruptly) may still have occurred on Unix operating systems. On Linux systems these problems could still have occurred when the file systems used were other than ext2 and ext3. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479812">479812</a></td>
<td>If a manifest was installed in a JAR file, and then that JAR file was installed into a database, calling class.getPackage() would always have returned null, even though the package was properly defined in the manifest file. The class loader was reading the manifest file and defining packages via the parent class loader, but was incorrectly assuming that the parent class loader would keep track of the packages and handle the getPackage() call. The SA class loader now keeps track of all defined packages and handles the getPackage() call itself.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479816">479816</a></td>
<td>Executing a REORGANIZE TABLE could have caused the server to fail assertion 100701 - &quot;Unable to modify indexes for a row referenced in rollback log -- transaction rolled back&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479825">479825</a></td>
<td>A number of problems with the UltraLite Database Initialization utility have been fixed.</p>
<p>				Default values were being wrapped in parentheses (), for example DEFAULT (0), which lead to sytax errors. Default valuess that start (after skipping white space) with open parentheses &quot;(&quot; and end with close parentheses &quot;)&quot;, are now recognized and are automatically stripped.</p>
<p>				Specifying the clause DEFAULT getdate(*) also lead to a syntax error. All occurrences of &quot;(*)&quot; in DEFAULT strings are now replaced with &quot;()&quot;. Previously, only DEFAULT NEWID(*) was being recognized, this change handles all such functions.</p>
<p>				Ulinit was failing to quote table names with leading underscore characters &quot;--&quot;.</p>
<p>				The now(), current_timestamp(), and getdate() functions in DEFAULT strings are now replaced with the string &quot;current timestamp&quot;. This is equivalent in operation and the only syntax that UltraLite supports.</p>
<p>				Added quoting to all uses of table names. Specifically the CREATE INDEX and ALTER TABLE ... ADD FOREIGN KEY statements were problematic.</p>
<p>				Ulinit was making use of NVARCHAR data types. nut UltraLite does not support this data type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479829">479829</a></td>
<td>Errors (like sticky I/O errors) reported while closing the connection would have had incomplete error messages (i.e. I/O failed for &#39;-n/a-&#39;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479953">479953</a></td>
<td>A call to SADataReader.Read() could have caused an exception after calling SADataReader.NextResult(), if the resultset was empty. The SADataReader.Read() method was failing to check the resultset before fetching data. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479959">479959</a></td>
<td>The SORTKEY &amp; COMPARE system functions did not support legacy ASA collations correctly. The following problems have been fixed.</p>
<p>				When the collation specification argument to the SORTKEY or COMPARE functions referred to a valid SQLAnywhere legacy collation, the server would silently use the UCA instead. For example, SORTKEY( &#39;a&#39;, &#39;1252LATIN1&#39; ) would generate the same result as SORTKEY( &#39;a&#39;, &#39;UCA&#39; ).</p>
<p>				A small amount of memory would be leaked any time a connection was disconnected, provided that the connection had used SORTKEY or COMPARE at least once with a collation specification that was non-numeric and was not one of the built-in ASE compatibility labels.</p>
<p>				When an invalid collation specification was passed to the COMPARE function, the error message that was generated (INVALID_PARAMETER_W_PARM, error -1090) did not correctly substitute the collation specification.</p>
<p>				For example, COMPARE( &#39;str1&#39;, &#39;str2&#39;, &#39;invalidcollationlabel&#39; ) would generate the message &quot;Function &#39;compare&#39; has invalid parameter &#39;3&#39; (&#39;str2&#39;)&quot;. It now generates the message &quot;Function &#39;compare&#39; has invalid parameter &#39;3&#39; (&#39;invalidcollationlabel&#39;)&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR479966">479966</a></td>
<td>The row limitation FIRST or TOP n may have been ignored, and more rows returned, if the select statement had an ORDER BY clause and all rows returned were equal with regard to the ORDER BY clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480055">480055</a></td>
<td>In some circumstances, backups could have taken longer to complete than expected. This problem would have been noticed only if the total size of the database files was greater than 2GB, and was more likely to be noticed when backing up a very small fraction of that database size (e.g., such as when doing a TRANSACTION LOG ONLY backup with a small transaction log). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480072">480072</a></td>
<td>If a database was using a non-UCA collation (such as UTF8BIN) for NCHAR, the server could have produced unexpected results such as different orderings, or result sets, for the same data or corrupt indexes on NCHAR columns containing long strings. In some cases the server may have crashed if the query ran a sorting strategy. This has been fixed, but existing databases must be unloaded and reloaded. A new capability bit has been added so that databases created with the fixed engine cannot be started by servers without the fix.</p>
<p>				Applications can determine if a database has the fix by querying the new db_property( &#39;HasNCHARLegacyCollationFix&#39; ). For servers released prior to this fix, this function will return NULL. For 10.x databases running on a server with this fix, this function will return &#39;On&#39; if the database was created by an engine with the fix AND uses a legacy NCHAR collation. Otherwise, it returns &#39;Off&#39;. For databases created after version 10, this function will return &#39;On&#39;. This approach allows newly-created 10.x databases that use a UCA NCHAR collation to be started with older software.</p>
<p>				When the server starts a database that was created by a server released prior to this fix and the database uses a non-UCA NCHAR collation and has at least one table defined to use an NCHAR column, the following warning message will be displayed in the server&#39;s message window (the text &amp; url are yet to be finalized):</p>
<p>				Warning: database \&quot;%1\&quot; is using an NCHAR collation which for which a fix has been made available. See http://ianywhere.com/developer/product_manuals/sqlanywhere/notes/en/nchar_collation_warning.html</p>
<p>				Note that a database created by a server prior to this release could still have problems sorting NCHAR data if NCHAR uses a legacy collation but the warning is only displayed if NCHAR columns exist.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480085">480085</a></td>
<td>If transaction log files for multiple databases were stored in a single directory, the MobiLink client dbmlsync might not have been able to synchronize any of these databases, even if there were no offline transaction log files for any of these databases. To resolve this, a new command line option has been added to dbmlsync:</p>
<p>				-do disable offline logscan (cannot use with -x)</p>
<p>				When this new option is used, dbmlsync will not attempt to scan any offline transaction logs. Therefore, dbmlsync with -do should be able to synchronize a database that is stored with all the other databases in a single directory, as long as this database does not have any offline transaction log files. However, if actual offline transaction log files are requested (for instance, if the minimum progress offset is located</p>
<p>				in an offline transaction log or if an uncommitted transaction starts from an offline transaction log), dbmlsync with -do will raise an error and refuse to run the synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480103">480103</a></td>
<td>The server may have failed assertion 101412, as well as oither assertion errors, if the query contained a GROUP BY clause with a grouping expression of type char or varchar. For this probel to have occurred, the query must also have used an Indexed Group By, or the indexed grouping for a Hash Group By, as a low memory strategy; and during the grouping the group rows had to be updated (e.g. due to the LIST function). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480108">480108</a></td>
<td>Tested and reproduced with:</p>
<p>				ASA ADO.NET provider that comes with ASIQ 12.7 SDK</p>
<p>				ASA ADO.NET provider that comes with ASA 9.0.1, 9.0.2 and 9.0.3 - all providers produce same behavior</p>
<p>				Sybase IQ 12.6 ESD9 on Windows and Sun Solaris.</p>
<p>				Microsoft Visual Studio 2005</p>
<p>				When running stored procedure from within VB application by using ASA ADO.NET Provider, an error &quot;-180 - AsaError:Cursor not open&quot; will happen. In Java ISQL, same procedure works fine.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480125">480125</a></td>
<td>A database with a corrupt checkpoint log could have grown large during database recovery instead of failing with an assertion error. In some cases the database could have grown so large that a fatal error: disk full could have been caused. This type of corruption in the checkpoint log is now detected and assertion 201864 is raised in such an instance. This type of corruption is likely to be caused by a disk problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480204">480204</a></td>
<td>If an application called the methods ResultSet.getTime(), ResultSet.getDate() or ResultSet.getTimestamp() using a java.util.Calendar object, then the iAnywhere JDBC driver would have returned the wrong result. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480208">480208</a></td>
<td>If a proxy table to a table on a Microsoft SQL Server remote server had a long character column, attempting to insert a string longer than 254 characters into that column would very likely have caused SQL Server to have returned a &quot;partial update/insert&quot; warning. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480211">480211</a></td>
<td>When one connection was blocking on a WAITFOR statement, all other connections were also blocked until it finishes. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480217">480217</a></td>
<td>When using UltraLite database for M-Business Anywhere, MIMEList POD may be used to display data from the database in tabular format. The new feature is only intended to use with the MIMEList POD. Please note that it is not supporting the full AGDBSet attributes and methods. The following code snippets show the two ways to bind to the AGDBSet object:</p>
<p>				Example 1: Binding UltraLite table to AGDBSet</p>
<p>				connection = databaseManager.openConnection( openParms );</p>
<p>				agdbSet = connection.getTableAGDBSet( &quot;ULProduct&quot; );</p>
<p>				Example 2: Binding UltraLite result set to AGDBSet</p>
<p>				statement = connection.prepareStatement( &quot;select prod_id, prod_name, price from ULProduct order by price&quot; );</p>
<p>				resultSet = statement.executeQuery();</p>
<p>				agdbSet = resultSet.getAGDBSet();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480317">480317</a></td>
<td>The Server Licensing dblic may have crashed when it was asked to license the server executable instead of the corresponding license file. With the introduction of license files in 10.0.1, dblic now operates on the license file instead of the server executable file, but tries to automatically determine the name of the license file from the executable file name. In this case however the utility crashed while doing this. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480423">480423</a></td>
<td>A query that involved more than one Remote Procedure Call in the FROM clause could have caused the server to crash. </p>
<p>				An example of such a query is:</p>
<p>				SELECT col1</p>
<p>				from remote_procedure_1()</p>
<p>				where col2 = (select c1 from remote_procedure 2())</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480434">480434</a></td>
<td>The iAS ODBC driver for Oracle could have returned numeric data with a comma &quot;,&quot; as the decimal point on some international installations if the Oracle database used commas as the decimal point. However, the MobiLink server is able to handle numeric data that uses commas as a decimal point for download, which would have caused it to abort the synchronization. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480450">480450</a></td>
<td>The server may have crashed calling an external function using the old-style API, if that function attempted to return an unsupported data type. This has been fixed so that this situation will return the error &quot;Expression has unsupported data type&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480532">480532</a></td>
<td>The QAnywhere server&#39;s logging mechanism was allocating a large amount of additional memory for each new client. This could have caused the Moblink server to run out of memory when working with a large number of clients. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480547">480547</a></td>
<td>If a scheduled event was created with a start time that included milliseconds, the event may have fired once, but then not have fired again. This has been fixed. As a workaround, the schedule&#39;s start time can be altered to exclude the milliseconds component.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480659">480659</a></td>
<td>The Interactive SQL utility could have become unresponsive immediately after loading a .SQL file. This problem would have been very rare and timing-dependent, and would more likely have occurred on systems with fast processors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480738">480738</a></td>
<td>Starting with version 10.0, the number of potential plans the optimizer can choose from has increased dramatically due to parallel access plan enumeration, and usage of materialized views. With very complex queries (joins of more than 20 tables), for which the optimizer enumerates parallel plans as well as non-parallel plans, the valid best plan may not have been found before pruning took place. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480759">480759</a></td>
<td>When making a call to a QAManager with the DBF and AutoStart connection parameters, the database server would not have been autostarted. Instead, a -101 error &quot;not</p>
<p>				connected&quot; would have been logged by the QAManager, but was not reported back to the application. It should be noted that a QAManager will autostart the database server when the Open method is called. The issue was that when the database server was shut down after Open had been called, then subsequent QAManager operations would have failed because the database connection had been terminated, but the error codes returned to the application do not indicate that the connection to the database was bad, thus not allowing the application to Close and Open the QAManager to recover from the error. This has been fixed. If the ErrorCode of a QAException is greater than or equal to 2000, then the error means the same as ErrorCode - 1000, and also that a database connection failure has occurred (ie. SQL Anywhere native code -101). When a database connection error is detected, it is possible to re-Open a QAManager without recreating it and setting its properties and message listeners again. This is done by calling Close() then Open() again. Note that the properties of the QAManager cannot be changed after the first Open() and subsequent Open() calls, and must supply the same acknowledgement mode.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480776">480776</a></td>
<td>Queries with access plans that did scans of unique indexes, may have returned incorrect results when using snapshot isolation. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480878">480878</a></td>
<td>Synchronization of a recreated database could have fail if the remote id was still the same. By default a new database will have a randomly generated UUID for a remote id. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480895">480895</a></td>
<td>When registering the performance monitor counters DLL (dbctrs9.dll or dbctrs10.dll) manually from a non-elevated process on Windows Vista (eg, regsvr32 dbctrs10.dll), the performance counters may not have actually been registered correctly, even though regsvr32 reported that the dll was successfully registered. This problem has now been fixed. </p>
<p>				Note that the SQLAnywhere installation is performed from an elevated process and will not be affected by this bug.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR480937">480937</a></td>
<td>If an application using the iAnywhere JDBC Driver fetched an unsigned tinyint value in the range of 128 to 255, then the JDBC driver would have incorrectly thrown an overflow exception. This problem has been fixed by having the JDBC driver promote unsigned tinyint values to smallint.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481000">481000</a></td>
<td>Borland Delphi converts an empty string parameter to a VARIANT type wide string with a NULL data pointer. When Borland Delphi was used with the SQL Anywhere OLE DB provider, this would have resulted in the application crashing. The following code fragment illustrates the situation.</p>
<p>				ADOQuery1.SQL[0] := &#39;select * from Customers where GivenName = :fname&#39;;</p>
<p>				ADOQuery1.Parameters.ParamByName(&#39;fname&#39;).Value := &#39;&#39;; </p>
<p>				ADOQuery1.ExecSQL;</p>
<p>				This problem has been fixed. A null pointer passed to the provider for a parameter will now be treated as an empty string when passed to the database server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481017">481017</a></td>
<td>When run on Linux systems, the server may have displayed unpredictable behaviour involving scheduled events, mirroring, the request_timeout option, and possibly other functionality in the server that relied on timers at start-up. There was a greater probability of this occurring on multi-processor machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481022">481022</a></td>
<td>A Java mobile webservices application compiled with JDK 1.5 could have failed with an error at the server saying &quot;&#39;SOAP-ENV&#39; is an undeclared namespace.&quot; This has been fixed.</p>
<p>				Note that because the mobile webservices runtime (iawsrt.jar) is built with JDK 1.5, Java mobile webservices applications must be compiled with JDK 1.5 and up as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481036">481036</a></td>
<td>If a view&#39;s select-statement contained a key join and the same table was referenced multiple times, then attempting to query the view would have failed with a permissions error for users that only had select permission on the view.</p>
<p>				For example: A select on the following view may have failed with a permissions error for table T1:</p>
<p>				create view V1 as select * from T1 join T2, T1 join T3</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481099">481099</a></td>
<td>If a server already had a database running, and that database was not the utility database, then attempting to connect to the utility database would have failed for a TDS based connection. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481103">481103</a></td>
<td>Two new connection options have been added to allow connections to execute requests at different priority levels.</p>
<p>				The first option is Priority. This option sets the priority level at which requests from a connection are executed. This option can take one of the following values:</p>
<p>				CRITICAL</p>
<p>				HIGH</p>
<p>				ABOVE NORMAL</p>
<p>				NORMAL</p>
<p>				BELOW NORMAL</p>
<p>				LOW</p>
<p>				BACKGROUND</p>
<p>				By default, all connections will get a Priority value of NORMAL. Any user can set the Priority option without DBA permission.</p>
<p>				The second option is Max_Priority. This option controls the maximum priority level a connection can have. The default value for this option is NORMAL. Connections would needs DBA authority in order to change the Max_Priority option. A connection can always lower its priority level, but cannot raise it higher than the value of Max_Priority. An attempt to do so would raise a permission denied error. The scheduling semantic of the different priority levels allow all requests to get some CPU time despite the priority level of the request. Higher priority request will get more time slices than lower priority ones.</p>
<p>				Note, The Background_Priority option is deprecated as of this release. It will still be recognized but will be removed in future releases. Currently, if a users sets the Background_priority option to ON, it will cause requests to execute at the BACKGROUND priority level. When the option is turned back to FALSE, requests will execute at whatever value the option Priority is set to.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481114">481114</a></td>
<td>The server could have failed to report an I/O error, such as a full disk, when using asynchronous I/O on Linux kernels 2.6.12 and higher. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481125">481125</a></td>
<td>If an application was trying to fetch data from a char/varchar column through SQLGetData, and if the buffer size passed to SQLGetData was less than the length of the data that was to be fetched, the iAS ODBC driver for Oracle could have returned the total length of the data minus the length of a NULL terminator to the client in the last call to the SQLGetData function. This may have caused the application to report data truncation errors. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481139">481139</a></td>
<td>Renaming a table or view could have caused unpredictable behaviour if other parsed objects, such stored procedures, user-defined functions, or views, refered to the renamed object and parsed forms of these referencing procedures or views were already in server memory. The potential unpredictable behaviour would have included incorrect results, server faults, or server assertions. The server was failing to invalidate in-memory copies of parsed objects on a table or view rename. Now, parsed object definitions are unloaded and reloaded after the RENAME.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481235">481235</a></td>
<td>The iAnywhere JDBC driver could have incorrectly given conversion errors when fetching numeric data. For the problem to have occurred, the numeric column had to follow a long char or varchar, or a long binary or long varbinary column in the result set. This problem was not likely to have occurred using the SQL Anywhere ODBC driver or the DataDirect ODBC drivers, but could have occurred using the iAywhere Oracle ODBC driver. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481236">481236</a></td>
<td>Verification of the MobiLink System Setup would have failed for varchar column length differences on a UTF8 Oracle database when the MobiLink System Setup was installed with nls_length_semantics=&#39;CHAR&#39;. This has now been fixed by having the MobiLink System Setup set nls_length_semantics=&#39;BYTE&#39; in the current session. Note that existing MobiLink System Tables that were installed with char length semantics will still not pass the check and upgrading will not fix the existing varchar columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481254">481254</a></td>
<td>An UPDATE statement would have updated only one row, even if more rows satisfied the WHERE conditions, if the column in the WHERE clause was indexed.</p>
<p>				For example, consider a table with the following schema:</p>
<p>				CREATE TABLE Tab1( pk int not null primary key, value varchar(1) not null )</p>
<p>				CREATE INDEX val_index ON Tab1( value )</p>
<p>				The following statement could possibly update more than one row: </p>
<p>				UPDATE Tab1 SET value = 憍� WHERE value = 憏�</p>
<p>				However, since there is an index on value, this update would have only updated at most one row. This has been fixed and it will now update all qualifying rows.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481289">481289</a></td>
<td>Data retrieved into DT_NSTRING embedded SQL host variables were not blank padded for blank padded databases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481415">481415</a></td>
<td>Attempting to use the &quot;-install&quot; option in the Unix install would have resulted in the failure:</p>
<p>				Files missing or regkey invalid.</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481427">481427</a></td>
<td>Calling the byte_length() function with a NULL for the parameter would have returned a random value instead of NULL. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481432">481432</a></td>
<td>The changes to the UltraLite runtime for Engineering case 480878, caused it to not send the upload progress in the first synchronization, which is what the MobiLink server expects. However, this change also caused the runtime to stopped sending the last download timestamp on the first synchronization as well. This resulted in the MobiLink server using a default timestamp of 0000-01-00 00:00:00.000000, which could be rejected by the consolidated database as an invalid timestamp. This has been fixed so that the runtime now sends the last download timestamp on the first synchronization, but not the upload progress.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_49.htm#CR481450">481450</a></td>
<td>On Unix systems, if a client application left TCPip connections open when dblib, or the ODBC driver, was unloaded (for instance, at application shutdown time), the application may have crashed. There was a higher chance of seeing this on multi-processor machines. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481467">481467</a></td>
<td>Calling the byte_length() function with an integer value for the parameter, would have returned a value inconsistent with SQL Anywhere server. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481493">481493</a></td>
<td>In rare timing dependent cases a Unix application could have hung if prefetch was enabled and only part of a result set was fetched. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481521">481521</a></td>
<td>When synchronizing with HTTP or HTTPS, the MobiLink server could have caused too many HTTP request/response cycles. The extra exchanges and extra bytes on the wire would have made synchronizations take longer. This problem was timing-dependent, and its likelyhood was inversely proportional to the round-trip time between the client and server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481607">481607</a></td>
<td>The database file size may have continued to grow, even when it was not expected to. This problem could have occurred any time, but would likely be more noticeable when constantly inserting and deleting the same set of rows (given the conditions outlined below), running without a redo log, or when checkpointing frequently. The main symptom of this problem was that the number of pages allocated to a table&#39;s extension arena continues to increase during inserts, deletes or updates when the amount of data in the table remained constant. There were two main ways this problem would have been more readily noticed. First, by running without a transaction log or when checkpointing frequently. In this case, the number of pages in the ISYSTAB extension arena grows. Second, when doing repeated updates, or paired inserts and deletes to a particular set of rows, when the number of overall rows did not increase. For the problem to occur in this case, the rows must have contained any type of CHAR or BINARY value (i.e., VARCHAR, LONG VARCHAR , etc.), and must have values longer than the column&#39;s INLINE amount. If the table was truncated or dropped, the extra pages allocated to the extension arena would have been freed up and made available for other uses. This has now been fixed.</p>
<p>				Note, when this problem is noticed, rebuilding the affected database with the fix will eliminate the extra pages from the extension arena.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481644">481644</a></td>
<td>Same machine connections were using communication compression if the COMPRESS connection parameter or -pc server option was specified. This has been fixed so that only remote connections will be compressed.</p>
<p>				The sa_conn_compression_info procedure could have reported incorrect compression rates or packet compression rates if more than about two million bytes had been transferred since the server started. This has been fixed as wll. In order to get the fixed sa_conn_compression_info procedure, the ALTER DATABASE UPGRADE PROCEDURE ON statement must be executed (this will also upgrade the database to the current version, if necessary).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481645">481645</a></td>
<td>After loading a Java class, it is initialized. The class initialization is performed by the connections&#39;s Java VM when the class is used for the first time. If two VM&#39;s attempt to initialize the same class concurrently, one needs to wait for the other to complete. If the waiting VM was cancelled, then the class was marked as erroneous, with a status of NoClassDefFoundError, and it did not get initialized. Later during this connection the VM may have returned a NoClassDefFoundError exception or, if the connection attempted to access the class, a server crash would have occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481649">481649</a></td>
<td>It was possible, although very rare and timing related, for backups to have hung. The backup could hava been been initiated from either the dbbackup utility, or the BACKUP DATABASE statement. When this problem occurred, other requests would have proceeded as normal; however, since a backup prevents checkpoints, any connection that issued a checkpoint would have been blocked. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481716">481716</a></td>
<td>When deploying a sSnchronization Model to an Adaptive Server Enterprise consolidated database, table references in the generated SQL were not prefixed by the database and owner, so deployment would have failed for tables with a different database or owner than those for the connected user. A workaround is to manually edit the SQL file for the consolidated database. This has been fixed so that table references are now prefixed by database and owner for Adaptive Server Enterprise consolidated databases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481738">481738</a></td>
<td>If the Interactive SQL utility dbisql used the -onerror command line option when connected to an authenticated server , the connection would not have been authenticated. This would have caused some statements to have failed with authentication errors after the grace period had expired. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481824">481824</a></td>
<td>An XML parameter can now be passed to an external function.</p>
<p>				CREATE PROCEDURE mystring( IN instr XML )</p>
<p>				EXTERNAL NAME &#39;xmlfunc@xmltools.dll&#39;;</p>
<p>				XML parameters are passed in the same manner as LONG VARCHAR parameters. XML parameters are available when using the &quot;new&quot; external function call API.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481834">481834</a></td>
<td>Applying a transaction log to a database using the server command line option -a, could have failed assertion 100902: &quot;Unable to find table definition for table referenced in transaction log -- transaction rolled back&quot;. This would have occurred if one log (B) contained all of the operations of the preceding log (A), plus additional operations, and a sequence of modifications to a table T by one connection, which begin in log A and continued into log B, were active when the backup that created log A was performed. This has been fixed. The fix affects the contents of the transaction log at the time a backup is performed; thus, a fixed server does not permit log backups created prior to the fix to be applied. </p>
<p>				Note that the problem does not affect backups where a log rename is performed after each backup, since in that case the logs will not contain overlapping sections. The problem can be avoided in version 10 by applying all of the logs at one time using the -ar or -ad options, which will cause the server to skip logs that are included by subsequent logs.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481845">481845</a></td>
<td>The following fixes have been made to the Listener utility</p>
<p>				1) IP tracking was sometimes not firing BEST_IP_CHANGE event when the Listener was run on Windows CE. </p>
<p>				2) Engineering case 466446 introduced a problem in the Listener where options following the options -ga or -gi may have been misinterpreted. </p>
<p>				3) Asynchronous IP tracking (-ga) was not working on Windows CE devices.</p>
<p>				Note, the Listener command line option -ga has been deprecated and asynchronous IP tracking is now implicit. The default of -gi has been changed from 10 seconds to 60 seconds. The polling mechanism now serves only as a backup. Users should not need to use -gi except for trouble shooting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481891">481891</a></td>
<td>When similar requests are executed concurrently, there would have be large variations in their response times. This problem would have shown up more on single processor machines. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481893">481893</a></td>
<td>Referencing a stored procedure in the FROM clause of a query could have incorrectly returned a &quot;permission denied&quot; error. This would have occurred when the following conditions were true:</p>
<p>				- the procedure was owned by a user with DBA authority</p>
<p>				- the procedure contained a single SELECT statement and no other statements</p>
<p>				- permission to execute the procedure was granted to a non-DBA user</p>
<p>				- the procedure&#39;s SELECT referenced a table for which the procedure owner had not been granted permissions</p>
<p>				This has been fixed. A workaround is to add a statement such as &quot;if 1 = 0 then return end if;&quot; to the start of the procedure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481894">481894</a></td>
<td>In rare cases, calling a secure web procedure could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481898">481898</a></td>
<td>If a Mobilink server with QAnywhere was running on a non-ASA consolidated database and tried to process a message received from a JMS server, a SQL statement could have failed resulting in the message not being properly received by QAnywhere. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481904">481904</a></td>
<td>Attempting to call a non-existent procedure using the EXECUTE IMMEDIATE statement and the &#39;WITH RESULT SET OFF&#39; clause (ie. EXECUTE IMMEDIATE WITH RESULT SET OFF &#39;call sp_nonexist();&#39;), would have caused the connection to hang. This has been corrected so that an error indicating that the procedure does not exist is now reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481905">481905</a></td>
<td>When the MobiLink client dbmlsync was run against a database created using Turkish settings, it would fail shortly after startup with the message:</p>
<p>				SQL statement failed: (-141) Table &#39;sysarticlecol&#39; not found.</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481922">481922</a></td>
<td>Backslashes in SQL remote options, such as in:</p>
<p>				SET REMOTE &quot;FILE&quot; OPTION &quot;PUBLIC&quot;.&quot;Directory&quot; = &#39;\\\\MACHINE\\Folder\\Subfolder&#39;;</p>
<p>				were not being preserved when the database was unloaded. Given the above option setting, the reload.sql file would have contained:</p>
<p>				SET REMOTE &quot;FILE&quot; OPTION &quot;PUBLIC&quot;.&quot;Directory&quot; = &#39;\\MACHINE\Folder\Subfolder&#39;;</p>
<p>				which, on reload, would be incorrectly interpreted as &quot;\MACHINE\Folder\Subfolder&quot;, causing SQL Remote to fail. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481964">481964</a></td>
<td>The procedure dbo.sa_disk_free_space contained a redundant permissions check, and has been removed. The procedure can now be called if any of the following conditions hold:</p>
<p>				- the caller has DBA authority </p>
<p>				- the procedure is called from another procedure owned by a user having DBA authority</p>
<p>				- execute permission has been granted</p>
<p>				To correct the problem in existing databases without rebuilding or upgrading, the call to dbo.sp_checkperms in dbo.sa_disk_free_space can be removed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481965">481965</a></td>
<td>When using the following SQLAnywhere options with the reference database:</p>
<p>				default_timestamp_increment = 10000</p>
<p>				truncate_timestamp_values = &#39;On&#39;</p>
<p>				the UltraLite database produced when running the UltraLite Initialization utility ulinit on this database would have caused problems when synchronizing. MobiLink would have complained about timestamp precision mismatches. Ulinit was not setting the timestamp_increment from the SA default_timestamp_increment value.</p>
<p>				The workaround is to set the timestamp_increment setting on the ulinit command line, using</p>
<p>				the -o keyword=value option, as follows:</p>
<p>				ULINIT &lt;existing options&gt; -o timestamp_increment=1000</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481970">481970</a></td>
<td>The setting of the ASTMP_UMASK environment variable would have been ignored on HP-UX systems. Also, the umask setting was ignored in the creation of the lrm_socket on HP-UX and AIX. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481976">481976</a></td>
<td>When creating a new synchronization model for an existing remote database, the column order may not have been correct for upload_fetch or upload_fetch_column_conflict events. This has now been fixed. To fix existing synchronization models (after installing this fix), each synchronizing table must be set to &#39;Not Synchronized&#39;, the model saved, and then set back to their previous synchronization settings.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR481994">481994</a></td>
<td>When using the MobiLink Java DirectRow api, setting or getting data of types Date, Time or Timestamp could have worked incorrectly. When using a ResultSet, the returned value could have been null, When using a PreparedStatement, the value could have been set as null. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482093">482093</a></td>
<td>If prior to a database going down dirty, a materialized view was refreshed by a connection with the option isolation_level=&#39;snapshot&#39; set, or with SNAPSHOT isolation specified for a REFRESH statement, and the no checkpoint occurred between the REFRESH statement execution and the database going down, the database would have failed to recover. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482124">482124</a></td>
<td>The UltraLite and MobiLink security DLLs/shared objects had entry points that were inconsistent with those used by the SQL Anywhere database server. This has been corrected. The DLLs/shared objects and the binaries that load them, must be at the noted build number or later, or else the DLL/shared object will fail to load and an error (indicating missing/invalid DLL/shared object) will be issued.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482137">482137</a></td>
<td>The Deployment Wizard did not deploy the utility dbelevate10.exe, that is required for running on Windows Vista. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482138">482138</a></td>
<td>The Deployment Wizard would have created an install that did not register the Dbmlsync Integration Component. This has been corrected by having dbmlsynccom.dll and dbmlsynccomg.dll self register when installed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482373">482373</a></td>
<td>Any MobiLink utility with a GUI could have crashed when it attempted to display a large message (ie. greater than 28,000 bytes), when the application was running in minimized mode. This problem affects only Windows systems, and was more likely to have occurred if the application was running with the full verbosity enabled (-dl command line option). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482379">482379</a></td>
<td>After applying an EBF for SQL Anywhere Windows systems with Visual Studio 2005 installed, there could have been some garbled characters left at the beginning of the machine.config file for .NET Framework 2.0. This would have caused the SQL Anywhere Explorer for Visual Studio 2005 to not work properly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482493">482493</a></td>
<td>The INTERSECT and EXCEPT set operators were using too much stack during optimization process which may have resulted in very complex queries failing with a stack overflow. The stack usage for these operations has now been significantly reduced.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482520">482520</a></td>
<td>An upload that contained invalid or corrupt table data could have crashed the MobiLink server. The MobiLink server will now correctly fail the synchronization when it encounters invalid data..</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482591">482591</a></td>
<td>If an application using the iAnywhere JDBC driver had multiple threads trying to create connections, or create statements/prepared statements/callable statements at the same time, then there was a chance the JDBC driver could have crashed. The crashes were actually in the Java VM, and work arounds have now been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482593">482593</a></td>
<td>If a query contained a subquery that used a hash filter predicate, such as hash(T.x) in hashmap(R.y), then it was possible for the hash filter to inappropriately reject rows that ought to be accepted resulting in an invalid result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482612">482612</a></td>
<td>Executing a very complex query could have caused the server to crash due to a stack overflow. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482615">482615</a></td>
<td>An unexpected SQL error may have been received when creating views over columns with character length semantics. This could have occurred with NVARCHAR or CHAR length VARCHAR colums when using a database with a multi-byte character set.</p>
<p>				For example:</p>
<p>				CREATE TABLE test(col NVARCHAR(8191));</p>
<p>				CREATE VIEW test_view AS SELECT col from test;</p>
<p>				or, the following, when issued on a UTF-8 database:</p>
<p>				CREATE TABLE test(col VARCHAR(8191 CHAR));</p>
<p>				CREATE VIEW test_view AS SELECT col from test;</p>
<p>				would have failed with SQL error CHAR_FIELD_SIZE_EXCEEDED (-1093): &quot;The size of the character column, variable, or value data type exceeds 32767&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482640">482640</a></td>
<td>The Interactive SQL utility dbisql may not have displayed multiple result sets when connected with the iAnywhere JDBC driver (which is the default). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482703">482703</a></td>
<td>The installed version of the MobiLink system setup could not have been found by the Sybase Central MobiLink Plug-in for Microsoft SQL Server when the default_schema was different than the connected user. This has been fixed so that when checking schema with a Microsoft SQL Server consolidated database, the default_schema is now used.</p>
<p>				Note, a work around is to make the current user the owner of the MobiLink system setup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482717">482717</a></td>
<td>If the database option tsql_variables was set to ON (as it would be for OpenClient connections), executing a CREATE DOMAIN statement containing identifiers beginning with @ would have created the domain incorrectly. This would have resulted in the error &quot;not enough values for host variables&quot; on a subsequent operation on a table containing a column defined using the domain. Also, executing a CREATE TRIGGER statement with an identifier beginning with @ prior to the body of the trigger would result in a syntax error. Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482741">482741</a></td>
<td>If a QAnywhere Server Management Request was used to cancel messages in a Server Store, messages were cancelled even after they had already been downloaded to the message recipient. This could cause consistency problems in the server store and possibly disable message transmissions on the receipient device. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482742">482742</a></td>
<td>QAnywhere documentation lists IAS_TEXT_CONTENT and IAS_BINARY_CONTENT as constants a that can be used to refer to the two different message content types in selector, transmission, and delete rules. However, the QAnywhere server was recognizing the constants IAS_TEXTCONTENT and IAS_BINARYCONTENT instead. This would have caused rules using the documented constants to not work as desired. This has been fixed so that both constant formats are now recognized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482773">482773</a></td>
<td>The ODBC driver could have caused a segmentation fault when used on Unix systems with some ODBC Driver Managers (for example, unixODBC) if the DSN existed but the connection failed (for example, it failed to autostart a server). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482822">482822</a></td>
<td>An INPUT statement could have failed if it referenced a table owned by the current user and there was also a table with the same name which was owned by a different user, and the owner was not given in the INPUT statement. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482832">482832</a></td>
<td>When the visual form of the Dbmlsync Integration Component was used on Japanese Windows 2000, the font selected for the log window did not support Japanese characters and so these were not rendered correctly. This problem did not occur on Windows XP. This problem has been fixed on Japanese Windows 2000 only, as it does not occur in any other environment.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482833">482833</a></td>
<td>The return code was not set correctly following an EXIT statement if it was executed from a .SQL file, its argument was not a literal exception, and the &quot;Show multiple result sets&quot; option was ON. That is,</p>
<p>				SET TEMPORARY OPTION isql_show_multiple_result_sets=&#39;on&#39;;</p>
<p>				EXIT 123;</p>
<p>				worked, but</p>
<p>				SET TEMPORARY OPTION isql_show_multiple_result_sets=&#39;on&#39;;</p>
<p>				CREATE VARIABLE retcode INT;</p>
<p>				SET retcode = 123;</p>
<p>				EXIT retcode;</p>
<p>				did not, the return code was always zero. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482839">482839</a></td>
<td>When Microsoft&#39;s Business Intelligence Development Studio attempted to insert string values into a row using the OLEDB InsertRow() method, it passed in a pointer to the data to be inserted. For string values (DBTYPE_STR), it sometimes did not pass in a length, which caused the SQL Anywhere provider to insert a string of length zero into the corresponding column. This behavior has been changed. Now, for types DBTYPE_STR and DBTYPE_WSTR, the provider will attempt to determine the string&#39;s true length when no length is passed in, with the assumption being that the string is null-terminated.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482841">482841</a></td>
<td>Execution of a LOAD TABLE statement may have performed poorly if it was used on a table containing a column with DEFAULT AUTOINCREMENT. The server was unnecessarily doing a full reverse index scan to determine the new maximum value for the autoincrement column after the LOAD TABLE. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482851">482851</a></td>
<td>The provider now supports using named parameters. If all the parameter names are specified, the provider will map them to the parameter values when the command is executed. The order of parameters does not have to be the same as the order of host variables when using named parameters.</p>
<p>				For example, using named parameters when calling a procedure:</p>
<p>				SACommand cmd = new SACommand( &quot;MyProc&quot;, conn );</p>
<p>				cmd.CommandType = CommandType.StoredProcedure;</p>
<p>				SAParameter p4 = new SAParameter( &quot;p4&quot;, SADbType.Integer );</p>
<p>				p4.Direction = ParameterDirection.Output;</p>
<p>				cmd.Parameters.Add( p4 );</p>
<p>				SAParameter p3 = new SAParameter( &quot;p3&quot;, SADbType.NChar, 30 );</p>
<p>				p3.Direction = ParameterDirection.Output;</p>
<p>				cmd.Parameters.Add( p3 );</p>
<p>				SAParameter p2 = new SAParameter( &quot;p2&quot;, SADbType.Char, 20 );</p>
<p>				p2.Direction = ParameterDirection.InputOutput;</p>
<p>				p2.Value = &quot;222&quot;;</p>
<p>				cmd.Parameters.Add( p2 );</p>
<p>				SAParameter p1 = new SAParameter( &quot;p1&quot;, SADbType.Integer );</p>
<p>				p1.Direction = ParameterDirection.Input;</p>
<p>				cmd.Parameters.Add( p1 );</p>
<p>				cmd.ExecuteNonQuery();</p>
<p>				given following procedure definition;</p>
<p>				CREATE PROCEDURE MyProc( in p1 int, inout p2 char(20), out p3 nchar(30), out p4 int )</p>
<p>				BEGIN</p>
<p>				SET p2 = p2 + &#39;abc&#39;;</p>
<p>				SET p3 = &#39;333xyz&#39;;</p>
<p>				SET p4 = p1 * 4;</p>
<p>				END</p>
<p>				Using named parameters in a query:</p>
<p>				SACommand cmd = new SACommand( &quot;UPDATE MyTable SET name = :name WHERE id = :id&quot;, conn );</p>
<p>				SAParameter p1 = new SAParameter( &quot;id&quot;, SADbType.Integer );</p>
<p>				p1.Direction = ParameterDirection.Input;</p>
<p>				p1.Value = 1;</p>
<p>				cmd.Parameters.Add( p1 );</p>
<p>				SAParameter p2 = new SAParameter( &quot;name&quot;, SADbType.Char, 40 );</p>
<p>				p2.Direction = ParameterDirection.Input;</p>
<p>				p2.Value = &quot;asdasd&quot;;</p>
<p>				cmd.Parameters.Add( p2 );</p>
<p>				cmd.ExecuteNonQuery();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482931">482931</a></td>
<td>If corresponding items in two select lists of a INTERSECT or EXCEPT set operator had different data types, the server would have chosen a data type for the corresponding column in the result and automatically converted the columns in each select list appropriately. If the conversion failed, and the server was low on cache memory, then it may returned the assertion 102501 instead of the correct conversion error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482952">482952</a></td>
<td>The server may have crashed when doing extensive console logging (e.g. when -zr all was used). This was more likely to have occurred on multi-processor machines, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482958">482958</a></td>
<td>It was possible, although rare, for the optimizer to select less than optimal access plan for complex queries. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR482977">482977</a></td>
<td>If a global variable had the same name as a procedure&#39;s parameter, statements within the procedure could have executed using the wrong variable. For this to have occurred, no other variable references could occur between the last reference to the global variable and the execution of the statement referencing the local variable in the procedure. This has been fixed. One workaround is to use a different name for the global variable.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483065">483065</a></td>
<td>The connection property &#39;CommLink&#39; was not returning &#39;local&#39; for local TCP/IP connections on some patched Solaris 10 systems. These systems had to have at least two active network interfaces for the problem to occur. This has now been fixed.</p>
<p>				A work around is to use the MyIP connection option on the client, and the MyIP TCP/IP option on the server and to make sure that they match.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483072">483072</a></td>
<td>The SQL Anywhere Deployment wizard would not have deployed the file mlnotif.jar when MobiLink server was selected. This file was missing from the list of files to deploy and has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483129">483129</a></td>
<td>Engineering Case 454858 introduced a problem where attempting to execute concurrent LOAD TABLE statements which used the same global temporary table, would have caused one of the statements to have been blocked. This has been fixed so that the loads now run concurrently once again.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483213">483213</a></td>
<td>The ODBC driver was describing NCHAR and NVARCHAR columns as SQL_WCHAR or SQL_WVARCHAR, with the SQL_DESC_OCTET_LENGTH specified as too small, if the column contained surrogate pairs. Depending on the application, this could have resulted in fetched NCHAR data being truncated. This has been fixed so that NCHAR columns now have a SQL_DESC_OCTET_LENGTH which allows for surrogate pairs.</p>
<p>				Note, this problem also affected the iAnywhere JDBC driver, which is used by the Interactive SQL utility dbisql.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483223">483223</a></td>
<td>The server could have crashed when executing the sa_transactions system procedure. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483226">483226</a></td>
<td>The ON EXISTING UPDATE clause of the INSERT statement allows existing rows to be updated based on a primary key look-up. The INSERT statement with this clause uses each input row to either insert the row or update the contents of an existing row. The server fired all applicable INSERT and UPDATE triggers except the statement level UPDATE triggers during the execution of this statement. This has been fixed so that the server will now fire statement level UPDATE triggers as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483227">483227</a></td>
<td>As well as the fixes to correct multi-threaded applications in Engineering case 485568, changes have also been made to thread synchronization to prevent hangs when running on multi-processor machines.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483230">483230</a></td>
<td>Ping synchronizations from a MobiLink client would have failed if the MobiLink Server had been connected to a consolidated database where the authenticate_parameters event existed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483261">483261</a></td>
<td>The methods ClearAllPools and ClearPool could have caused an exception if any of the connections in a pool were not opened. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483314">483314</a></td>
<td>Interactive SQL could have crashed if the menu item for a recently opened file (at the bottom of the &quot;File&quot; menu) was clicked while a statement was currently being executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483316">483316</a></td>
<td>The .NET provider could have gone into an endless loop, with very high CPU usage, on termination of the application. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483335">483335</a></td>
<td>When entering a multi-line rule condition, it would have been saved in a way that caused the line to appear to have been run together when the line was next edited. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483356">483356</a></td>
<td>The server could have become deadlocked when a connection attempted to block while updating row. This is more likely to happen when the server is under heavy load. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483427">483427</a></td>
<td>An attempt to stop a MobiLink service using the Service utility dbsvc would have failed with a message like &quot;dbmlstop: No such file or directory&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483441">483441</a></td>
<td>In a database mirroring system, if the mirror or arbiter connection strings contained any of the DoBroadcast, TDS, BroadcastListener, LocalOnly, ClientPort, VerifyServerName, LDAP, or DLL TCPIP parameters, that server could have crashed, or failed to connect to the partner or arbiter servers. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483452">483452</a></td>
<td>The IAS Oracle driver requires Oracle&#39;s OCI client libraries. If these libraries are not installed properly, the IAS driver would have silently failed to load. The driver will now load,, but will fail when first used by an application. The application can query the failure and will receive an error which indicates the OCI library is missing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483518">483518</a></td>
<td>In some cases, requesting a graphical plan for a query could have caused the server to fail with a fatal error: &#39;A read failed with error code: (38), Reached the end of the file. Fatal error: Unknown device error.&#39; This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483533">483533</a></td>
<td>If the LOGFILE connection parameter was specified, when connecting to either a personal or network server without specifying a server name, the line &quot;Connected to the default personal server&quot; was logged. This was inaccurate, and possibly confusing. The text of this message has now been changed to &quot;Connected to the default SharedMemory server.&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483558">483558</a></td>
<td>The value of connection_property(&#39;TransactionStartTime&#39;) would have been an empty string if the only statement executed since the last COMMIT/ROLLBACK was an INSERT ... SELECT. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483559">483559</a></td>
<td>The server could have gone into an endless loop, with very high CPU usage, instead of reporting an error when it ran out of free pages in the cache. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483578">483578</a></td>
<td>When creating a download using the MobiLink Java direct row API, some actions could haver destabilized the MobiLink server. Setting parameters with incompatible data, or setting columns multiple times with null values that were not nullable, could have caused the MobiLink server to send an invalid row to the synchronization client, or crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483635">483635</a></td>
<td>If a trigger was created using the Interactive SQL utility with the syntax:</p>
<p>				CREATE TRIGGER owner.name ...</p>
<p>				then Sybase Central would have displayed the trigger SQL with the trigger&#39;s owner replaced by the trigger&#39;s name, such as:</p>
<p>				ALTER TRIGGER name.name ...</p>
<p>				This has been fixed. Now the SQL is displayed correctly as:</p>
<p>				ALTER TRIGGER name ...</p>
<p>				That is, the owner (which is syntactically valid, but is ignored by the</p>
<p>				engine)</p>
<p>				is removed from the source.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483636">483636</a></td>
<td>When modifying a procedure, if one or more comments were typed before, or anywhere within, the ALTER PROCEDURE &lt;owner&gt;.&lt;name&gt; portion of the statement, then these comments would have been lost when the statement was saved to the database. However, the editor would have given no indication that this was the case until the procedure was refreshed, for example, by pressing F5. This has been fixed so that the comments are now automatically relocated to the point immediately following the above portion of the statementL, so that they are preserved with the procedure source. In addition, the SQL editor is automatically updated and a message that the statement has been adjusted is displayed. The above also applies to functions, views, materialized views, triggers and</p>
<p>				event handlers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483655">483655</a></td>
<td>If an application connected using a TDS based client, and attempted to use a procedure in the FROM clause of a SELECT statement, then the application would have failed with a TDS protocol error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483815">483815</a></td>
<td>If a procedure that referenced proxy tables was used in the FROM clause of a SELECT statement, and the first statement in the procedure is not a SELECT statement, it was very likely that the server would have crashed. The problem may also happen if such a SELECT was used as the subselect in a DML statement. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483845">483845</a></td>
<td>Statements referencing some specific forms of the LIKE predicate could have caused a server crash when the statement was prepared. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483913">483913</a></td>
<td>If a procedure, trigger, or view was created using EXECUTE IMMEDIATE, or via Sybase Central, a trailing semi-colon included at the end of the definition may not have been stripped out of the preserved source for the object, resulting in problems when the database was unloaded and reloaded. This has been fixed. Re-creating the object without specifying a trailing semi-colon will correct the problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483960">483960</a></td>
<td>In very rare circumstances, the server may have crashed if a fatal assertion was encountered during a backup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR483967">483967</a></td>
<td>An OUTPUT...FORMAT FIXED statment, that did not include explicit column widths, could have created files that the INPUT statement could not have subsequently read correctly without also including explicit column widths. This would have occurred if the destination table contained a numeric data type (INT, DECIMAL, etc) in any column other than the last one. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484003">484003</a></td>
<td>If a proxy table to a table on a Microsoft SQL Server remote server had a a UUID column, attempting to insert a value generated by newid() into that column would have failed with a syntax error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484046">484046</a></td>
<td>Specific forms of the IN predicate could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484054">484054</a></td>
<td>If a statement used the LOCATE() function on a long string, it could have lead to a reduction in concurrent execution of other statements. Further, it could have caused the statement to take a long time to respond to a cancel operation. Similarly, some queries that used a sequential scan with predicates that reject most of the rows in the table, might have taken a long time to respond to a cancel operation. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484072">484072</a></td>
<td>Some UPDATE and DELETE statements with aggregate expressions were incorrectly failing with the error &quot;Invalid use of an aggregate function&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484074">484074</a></td>
<td>A LIKE condition of the form: &quot;column LIKE constant&quot;, could have produced incorrect results when the column was not of type CHAR and occurred as the first column of an index. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484145">484145</a></td>
<td>Using a host variable of type nchar, nvarchar or long nvarchar in a query that references proxy tables would likely have caused the server to report a syntax error, rather than execute the query. The server was not handling nchar based host variables correctly. It would at times assume the data was in the database charset instead of utf8 .This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484160">484160</a></td>
<td>Attempts to revoke connect permission from a user that still had an externlogin mapped, would have failed with a strange foreign key error, after which, logging in as the user that was being dropped would have resulted in the user permissions being messed up. The server now properly gives an error indicating the externlogins are still mapped for the user and leaves the user permissions unchanged.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484178">484178</a></td>
<td>Reloading histograms into a database using a 64-bit server may have failed if the database has been run previously with a 32-bit server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484194">484194</a></td>
<td>When the server was run on HP-UX 11.00, HTTP connections may not have shut down cleanly, and the server may have hung on shutdown. The cause was a bug in the operating system.</p>
<p>				While there is no fix to ASA software, customers are advised to apply the HP-UX 11.00 patch PHNE_27886 or later (and all dependencies).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484196">484196</a></td>
<td>On Unix systems, transfers of large blobs to the server over TCP/IP may have been slower than expected. This would have been especially noticeable on 1 Gbps networks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484256">484256</a></td>
<td>Attempting to execute a query with an invalid dotted reference involving proxy tables, would very likely have caused a server crash.</p>
<p>				For example:</p>
<p>				select prod_id.sum(sales) from sales group by prod_id order by prod_id</p>
<p>				This query was intended to be &quot;select prod_id, sum(sales) ...&quot; but a typo replaced a comma with a period. If the table prod_id was a remote table, then the above mistyped query would have crashed the server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484262">484262</a></td>
<td>In very rare circumstances, the server may have issued a fatal checksum assertion for database page 0 while in the process of doing a backup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484266">484266</a></td>
<td>The QAnywhere Agent and MobiLink Listener could have crashed when started with the &quot;@file&quot; command line option, if &quot;file&quot; did not exist. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484269">484269</a></td>
<td>When run on Unix systems, the server could have exhibited poor disk I/O performance on mult-spindle disk systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484272">484272</a></td>
<td>The QATransactionalManager class would have failed to re-receive a message with large content (exceeding MAX_IN_MEMORY_MESSAGE_SIZE in size) after it was received once and a rollback was done. This problem applied to the C#, Java and C++ QATransactionalManager classes. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484274">484274</a></td>
<td>Attempting to execute a query using a window function with a PARTITION BY clause, that consisted of nothing but constants or variables, could have crashed the server. </p>
<p>				For example:</p>
<p>				create variable v int;</p>
<p>				select sum(x) over ( partition by v ) from t</p>
<p>				This has beenfixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484281">484281</a></td>
<td>When sending an attachment over SMTP using xp_sendmail(), there would have been an extraneous zero length file with the same name sent along with the real file attachment. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484293">484293</a></td>
<td>When using the QAnywhere Client SQL API to receive messages, they would not have been synchronized back to the originator. This caused the messages to remain in the &quot;Pending&quot; state indefinitally on the originating client, and on the server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_50.htm#CR484295">484295</a></td>
<td>If a synchronization model was used to create timestamp-based downloads with an Oracle consolidated database, and the MobiLink server used a different timezone than the consolidated database, then some data might not have been downloaded. The problem was that the trigger generated to maintain the last-modified time used CURRENT_TIMESTAMP, which uses the client&#39;s timezone. This has been fixed so that the generated triggers now use SYSTIMESTAMP (which uses the consolidated database&#39;s time zone.) A workaround is to manually change the trigger, either in a generated SQL file or deployed in an Oracle consolidated database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484359">484359</a></td>
<td>If a user was using the QAnywhere SQL API to receive messages asynchronously with the ml_qa_listen_queue procedure, and another user using the same message store sent a message to this queue (ie. local messaging), the message would not have been received.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484368">484368</a></td>
<td>When attempting to unload and then reload a database created with an older build, using a more recent build, if the database had Remote Data Access servers defined, then there was a chance the reload could have failed with the error: &quot;Server capability name &#39;encrypt&#39; could not be found in the SYS.SYSCAPABILITYNAME table&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484452">484452</a></td>
<td>It was possible for UltraLite to allow duplicate entries into unique key indexes, or it could have incorrectly reported a duplicate entry in a unique key. For this to have occurred, a table would need to have been left open while many hundreds of updates were happening to the same row, as well as many other inserts and deletes needed to occur to other tables concurrently. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484456">484456</a></td>
<td>When running on VMWare, the SQL Anywhere server may have crashed on start-up. There isn&#39;t a risk of database corruption. This was due to the server determining that the number of CPUs available was 0. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484461">484461</a></td>
<td>If both servers involved in a mirroring system have registered themselves with an LDAP server, the mirror server may not have successfully taken ownership of the database if the primary server failed. The transfer of ownership will succeed though, if the primary server is properly shut down; the problem only occurs if the primary server fails and does not shut down successfully. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484487">484487</a></td>
<td>On Solaris 10 systems, calling the system procedure xp_cmdshell() may have failed if the server&#39;s cache was large. This has been fixed. This problem still affects Solaris systems running version 8 and 9; as the problem arises from the implementation of the fork system call and cannot be worked around safely on Solaris versions 8 and 9. A more complete expalanation can be found at: http://developers.sun.com/solaris/articles/subprocess/subprocess.html.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484542">484542</a></td>
<td>If a connection made DML requests against a JDBC class (ASAJDBC or ASEJDBC) remote server, and the disconnect performed an implicit rollback, then a small amount of the server&#39;s cache was not freed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484543">484543</a></td>
<td>If a connection used a ASAJDBC or ASEJDBC remote server, and only performed CREATE TABLE AT statements against this remote server, then a small amount of the server&#39;s cache would not have been freed during the disconnect for this connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484605">484605</a></td>
<td>Under heavy load, and while another connection was executing DDL statements, calls to a user-defined function could have resulted in a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484679">484679</a></td>
<td>The server could have crashed, or failed an assertion, when reloading a procedure. This could only have happened if another connection was unloading the procedure almost simultaneously. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484698">484698</a></td>
<td>The index density calculation could have been incorrect in certain cases. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484704">484704</a></td>
<td>On Linux IA64 systems, &quot;unaligned access&quot; messages may have appeared in the system log while the server was running. The problem that caused these messages has been fixed. The message itself can be considered harmless in this instance, and server operation was not affected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484798">484798</a></td>
<td>A query using a window function with a RANGE on a date column could have returned a conversion error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484881">484881</a></td>
<td>When syncronizing a timestamp value in an UL database running on the desktop against an ASE server via Mobilink, the syncronization fails with an Error showed in the ML log:</p>
<p>				Error: Invalid datetime format.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484889">484889</a></td>
<td>Attempting to unload an UltraLite database while selecting a long list of tables to unload, would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484960">484960</a></td>
<td>When any of the components in SQL Anywhere were converting a string from one character set to another, it was possible for the translated string to have been truncated in rare situations. For the problem to have occured, a multibyte character set other than UTF-8 was typically involved. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484964">484964</a></td>
<td>The command line option that represents a memory value, used by all the database tools including dbmlsync, dbremote, dbltm and the MobiLink Server, was not recognizing &quot;g&quot; and &quot;G&quot; as valid characters for a gigabyte of memory. This code is not used by the database server. This has been fixed, so that &quot;1G&quot; or &quot;1g&quot; can now be specify as a valid memory value. As a workaround, &quot;1024M&quot; can be used to represent a gigabyte of memory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484966">484966</a></td>
<td>After connecting to a database containing a unique foreign key, selecting the Indexes folder in the tree would have displayed the error &quot;The values &lt;xxx&gt; cannot fit into a byte&quot; where &lt;xxx&gt; = 129 or 130. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484980">484980</a></td>
<td>The number of rows returned by a partial index scan of an unique index should be at most one row, if all the columns of the index are used in an equijoin predicate. This number was not being set correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484981">484981</a></td>
<td>If REORGANIZE TABLE was executed in one connection, while simultaneously dropping the primary key or clustered index on the same table in another connection, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR484984">484984</a></td>
<td>If an application connected using an older version of either Open Client or jConnect, and then called the system procedure sa_conn_info, there was a chance the client would have crashed. Column names longer than 30 characters are a problem for older TDS clients. The problem has been fixed by properly aliasing the column names in the sa_conn_info select statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485004">485004</a></td>
<td>A constant at the start of an aggregate selection could have caused erroneous results. An example would be:</p>
<p>				SELECT 999, count(*) FROM TABLE</p>
<p>				where the incorrect result was a row for each row in the table, instead of a single row. Constants were not being marked as aggregates when they occurred in aggregate selections. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485054">485054</a></td>
<td>The optimizer attempts to use an existing index for queries involving the MIN or MAX aggregate function. The cost of this optimization was incorrectly overestimated for subqueries which could have been evaluated as derived tables, so it was possible that the</p>
<p>				subquery&#39;s best plan did not have the RowLimit operator, which may have resulted in the choice of a poor performing plan. This has been fixed.</p>
<p>				For example, the query:</p>
<p>				select * from R where R.X = (select max(R.X) from R )</p>
<p>				would have had the cost of the plan &quot;R&lt;idx_x&gt;:[ RL [ R&lt;idx_x&gt; ]]&quot; overestimated by the optimizer. Hence, it was more likely to use &quot;R&lt;seq&gt; JH [GrH [ R&lt;seq&gt;]]&quot; as the best plan, which computed the subquery as a derived table. This plan may have been inefficient for queries where the table R was very large. </p>
<p>				Q:</p>
<p>				select * from R where R.X = (select max(R.X) from R )</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485073">485073</a></td>
<td>Attempting to createg a proxy table may have caused the server to hang. Restarting the server and running the create again would likely not reproduce the hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485160">485160</a></td>
<td>If a connection had snapshot isolation enabled, and a non-snapshot transaction was in progress, when a second connection with a snapshot or non-snapshot transaction commited or rolled back without any outstanding snapshot transactions having been started before the transaction in the first connection, then there was a chance of assertion failure 201501 &quot;Page for requested record not a table page or record not present on page&quot; on subsequent snapshot queries. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485191">485191</a></td>
<td>When Snapshot isolation was enabled, pages in the temp file could have been leaked if long running snapshot transactions were used. This is has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485200">485200</a></td>
<td>When connecting to ASE or Microsoft SQL Server, the Remote Data Access layer was setting the quoted_identifier option to ON at connect time and then always quoting identifiers when querying data from ASE or SQL Server. Unfortunately, due to a restriction in the ASE server, always using quoted identifiers resulted in problems if the column name was 29 or 30 characters in length. Now, when connecting to ASE or SQL Server remote servers, the quoted_identifier option on the remote is set to match the local setting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485235">485235</a></td>
<td>If a user-defined event executed a statement that referenced a proxy table while the database was being shutdown, the server may have failed an assertion. This has been fixed so that these statements now return an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485242">485242</a></td>
<td>When using the Dbmlsync Integration Component, an exception could have occurred, or corrupt data could have been retrieved, if the UploadRow event or the DownloadRow event was enabled. For this to have occurred, the handler for the above event must have called the ColumnValue method on the IRowTransfer object more than once with the same index, and the index used must have corresponded to a column containing a string or BLOB value. This problem has now been fixed. </p>
<p>				A work around for this problem would be to ensure that the ColumnValue method is not called more than once for a single index by storing the value retrieved by the first call in a variable and working with that value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485252">485252</a></td>
<td>In some situations, the server could have crashed when executing a query access plan that was built with parallel scans. This has been fixed.</p>
<p>				A workaround for this problem is to set the option Max_query_tasks=1 to avoid all parallel access plans. That change will degrade performance for some queries, but will avoid the crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485254">485254</a></td>
<td>When using the SQL Anywhere debugger to step through a procedure or function, if the current statement was an INSERT, UPDATE or DELETE, it was possible to step into the trigger that would have been fired when the statement executed, but if more than one trigger would have fired, it was not possible to step through to the next trigger if it existed. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485262">485262</a></td>
<td>If the server crashed during application profiling and was then restarted, Sybase Central would have crashed on an attempt to connect to the restarted database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485271">485271</a></td>
<td>For strongly encrypted databases, the statement ATTACH TRACING TO LOCAL DATABASE fails correctly with the SQL error &quot;ATTACH TRACING TO LOCAL DATABASE cannot be used with a strongly encrypted database&quot;, but subsequent ATTACH TRACING statements incorrect returned the SQL error &quot;A tracing connection is already active&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485275">485275</a></td>
<td>The changes for Engineering case 482379 had the potential to truncate the .NET 2.0 machine.config file. This could have happened if the 9.0.2 EBFs for builds 3575, 3576 or 3581 were applied. Without this file, problems running .NET applications, or using Visual Studio 2005 may occur. The problem has now been corrected, and the Setup will try to determine if the machine.config file has been corrupted, and display an error dialog if corruption is found. If the new Setup reports that the file may be corrupt, action must be taken to restore the file to a working state.</p>
<p>				The file machine.config is an XML-formatted file, and is usually found in c:\Windows\Microsoft.NET\Framework\v2.0.50727\config. Data providers are listed in the &lt;DbProviderFactories&gt; sub-section of the &lt;system.data&gt; section of the file. A subset of the file is shown below:</p>
<p>				&lt;configuration&gt;</p>
<p>				(configuration for other providers)</p>
<p>				&lt;system.data&gt;</p>
<p>				&lt;DbProviderFactories&gt;</p>
<p>				&lt;add name=&quot;Odbc Data Provider&quot; invariant=&quot;System.Data.Odbc&quot; description=&quot;.Net Framework Data Provider for Odbc&quot; type=&quot;System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot;/&gt;</p>
<p>				(configuration for other providers)</p>
<p>				&lt;add name=&quot;SQL Anywhere Data Provider&quot; invariant=&quot;iAnywhere.Data.AsaClient&quot; description=&quot;.Net Framework Data Provider for SQL Anywhere&quot; type=&quot;iAnywhere.Data.AsaClient.AsaFactory, iAnywhere.Data.AsaClient, Version=9.0.2.3585, Culture=neutral, PublicKeyToken=f222fc4333e0d400&quot; /&gt;</p>
<p>				&lt;/DbProviderFactories&gt;</p>
<p>				&lt;/system.data&gt;</p>
<p>				(configuration for other providers)</p>
<p>				&lt;/configuration&gt;</p>
<p>				The bug was that the install truncated the file at the point where the &quot;SQL Anywhere Data Provider&quot; entry should have been added. This left the XML file in an inconsistent state, due to the &lt;DbProviderFactories&gt;, &lt;system.data&gt; and &lt;configuration&gt; sections not being closed. As well, entries that occurred after the &lt;DbProviderFactories&gt; section were missing entirely. Any data providers from other database vendors that were listed in the file after the SQL Anywhere provider would also have been deleted.</p>
<p>				To fix the problem, the file needs to be restored manually. Ideally, if there is a backup of this file, it can be restored from the backup. </p>
<p>				If that is not the case, the file will need to be manually edited to add the provider line above and close the &lt;DbProviderFactories&gt;, &lt;system.data&gt; and &lt;configuration&gt; sections. There is a file called machine.config.default in the same directory as the machine.config. This file contains the default settings for the machine.config, and can be used to restore the missing sections. Any installs for other products that modified the machine.config the file will also need to be rerun.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485276">485276</a></td>
<td>When a consolidated database was running on a DB2 or DB2 mainframe server, the MobiLink server, using the native IBM DB2 ODBC driver, may not have retried uploads when deadlocks occurred. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485285">485285</a></td>
<td>Some memory could have been leaked by the MobiLink server when using non-persistent HTTP or HTTPS (persistent=0 at the client). The size of the leak was proportional to the number of HTTP GET requests, so large downloads would have caused greater leaks. A small leak could have occurred as well if a communication error occurred. The impact of the leaked memory could have included failed synchronizations and/or MobiLink server crashes. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485293">485293</a></td>
<td>If diagnostic tracing was started using the Tracing Wizard in Sybase Central, and the connection string specified contained the tracing database&#39;s file name, the tracing database would not have been started, and the ATTACH TRACING statement would have failed. This has been fixed so that if the database file name is specified, the database will be started on the current server. The location of the database should be given relative to the database server location.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485338">485338</a></td>
<td>When running the server with the command line option -m &quot;truncate transaction log after checkpoint&quot;, or when running the Backup utility dbbackup with its command line options that restart the log -r, -x or -xo, the current transaction log was renamed and then, depending on the option used, deleted. If the rename of the transaction log failed, assertion failure 100910 was raised. This message for this assertion has been changed to hopefully give more information about the cause. The message was changed from:</p>
<p>				&quot;Error deleting transaction log file&quot;</p>
<p>				to </p>
<p>				&quot;Error renaming transaction log file before deleting it. Error code: %d/%d&quot;</p>
<p>				The first number of the Error code means the error type (0 - POSIX error number, 1 - OS error number). On Unix and Netware, both error types mean POSIX error numbers. The second number is the actual error code. On Windows the POSIX error numbers can be found in the header errno.h.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485349">485349</a></td>
<td>Predicates of the form &quot;column IS NULL&quot; are eliminated if the column is declared NOT NULL earlier now in the optimization process. This increases the oportunity for rewrite optimizations to be performed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485377">485377</a></td>
<td>When you create a synchronization model, if the generated event scripts have errors you are now warned right after the event scripts are generated at the end of the Create Synchronization Model wizard. If you try deploy a model that has event errors, you now get an error before the Deploy Synchronization Model wizard opens. In earlier versions you would not get an error until the end of the Deploy Synchronization Model wizard, in which case you would lose the choices you made in the wizard.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485378">485378</a></td>
<td>In a mirroring system, if the transaction log files on the primary and mirror were incompatible, the mirror server may not have properly detected this condition and shut down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485380">485380</a></td>
<td>In the Create Synchronization Model wizard, if &#39;Download Subset by User or Remote ID&#39; used a column in the same table, it would only have been enabled for tables where the column was also synchronized, and was a string type. This has been fixed. Now the column must only exist in the consolidated table.</p>
<p>				Note that the chosen column&#39;s type should be able to be implicitly compared with a string, or errors may occur when downloading with the generated download script.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485425">485425</a></td>
<td>When executing a query containing proxy tables that would normally have been handled in &#39;full passthru&#39; mode, but cannot be handled by the server because it is too complex, would have crashed the server. This has been fixed so that the server now properly returns the error &quot;-890: Statement size or complexity exceeds server limits&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485478">485478</a></td>
<td>Support has now been added to deploy native amd64/x64 ESQL and C++ applications to 64 bit Windows platforms (64 bit XP and later). The engine is supported, as well as static and dynamic versions of the in-process runtime library. Encryption is also supported, although FIPS is not.</p>
<p>				The following new files are included in the install:</p>
<p>				ultralite\x64</p>
<p>				ultralite\x64\uleng10.exe</p>
<p>				ultralite\x64\ulstop.exe</p>
<p>				ultralite\x64\mlczlib10.dll</p>
<p>				ultralite\x64\mlcrsa10.dll</p>
<p>				ultralite\x64\mlcecc10.dll</p>
<p>				ultralite\x64\lib</p>
<p>				ultralite\x64\lib\vs8</p>
<p>				ultralite\x64\lib\vs8\ulrt.lib</p>
<p>				ultralite\x64\lib\vs8\ulimp.lib</p>
<p>				ultralite\x64\lib\vs8\ulrt10.dll</p>
<p>				ultralite\x64\lib\vs8\ulbase.lib</p>
<p>				ultralite\x64\lib\vs8\ulrsa.lib</p>
<p>				ultralite\x64\lib\vs8\ulecc.lib</p>
<p>				ultralite\x64\lib\vs8\ulrtc.lib</p>
<p>				ultralite\x64\lib\vs8\ulimpc.lib</p>
<p>				ultralite\x64\lib\vs8\ulrtc10.dll</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485483">485483</a></td>
<td>If an application used the iAnywhere ODBC driver for Oracle to fetch result set from a packaged procedure, the driver would have reported the following error:</p>
<p>				[Sybase][iAnywhere Solutions - Oracle][Oracle]ORA-06553: PLS-306: wrong number or types of arguments in call to {procedure name}</p>
<p>				This problem could have caused the MobiLink server to fail the download, when a download_cursor or download_delete_cursor event was written as:</p>
<p>				{ call package_name.procedure_name ( ?, ?, ...) } or</p>
<p>				{ call schema_name.package_name.procedure_name( ?, ?, ... ) }</p>
<p>				This problem has been fixed. Now this event can be written as:</p>
<p>				{ call [schema_name.][package_name.]procedure_name( ?, ?, ... ) }</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485488">485488</a></td>
<td>The server could have crashed when requested to create a tracing database when using the Sybase Central Database Tracing wizard. This would have happened when the name of the DBA user for the tracing database was the same as a name of a DBA user in the existing database. The crash has been fixed.</p>
<p>				The workaround, and required behaviour with the fix, is to specify a DBA user name for the tracing database that does not currently exist in the target database. The wizard has been modified to alert the user to this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485498">485498</a></td>
<td>The REBUILD clause of the ALTER INDEX statement can be used to recreate the physical data structures underlying the index. If the ALTER INDEX REBUILD statement was interrupted by the user, or failed for any reason, the server could have left the physical structure in an undefined state. The most likely state for the index after a failure was to contain no entries. This situation could have caused subsequent queries using the faulty index to behave erroneously. To rectify this situation, a failed ALTER INDEX REBUILD could be executed again to completion. This has been fixed so that the server will now restore the physical data structures to the same state as the one that existed prior to execution of the failed statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485499">485499</a></td>
<td>The server shares physical indexes between compatible primay keys, foreign keys, unique constrains and secondary indexes. Two indexes are considered compatible if the keys for the indexes contain exactly the same columns in the same order and with the same sequencing of values (ascending or descending). When creating a new foreign key index the server could have shared the physical index with an existing index erroneously even when the order of columns did not match. Note that the foreign key constraint was still correctly enforced, but the index was created with an unintended column order which may be problematic for queries that required the specified order for the index to be useful. This has now been fixed. </p>
<p>				A workaround is to create the other index after the foreign key index has been created, or to declare an additional index with the correct column order.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485568">485568</a></td>
<td>Multi-threading applications could have failed with a number of symptoms. These symptoms include &#39;Resource governor for prepared statements limit exceeded&#39; and &#39;Communication error&#39; errors, as well as client application crashes. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485574">485574</a></td>
<td>The server could have crashed when attempted to get an exclusive schema lock on a table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485576">485576</a></td>
<td>If the encrypt() or decrypt() functions were called a combined total of about 4 billion times, they would fail with the error &#39;Unable to load encryption dll &quot;&quot;&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485584">485584</a></td>
<td>The Interactive SQL utility did not parse the &quot;DESCRIBE objectName&quot; statement correctly unless it was executed on its own, and not part of a sequence of statements. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485588">485588</a></td>
<td>The QAnywhere Agent could have used an excessive amount of memory during message transmission when a large number of messages were queued. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485593">485593</a></td>
<td>The server could have become deadlocked while running concurrent REORGANIZE TABLE statements on the same table. There can now only be one REORGANIZE TABLE statement executing on a table at a time. Attempts to execute a second REORGANIZE TABLE on the same table will now result in the error SQLSTATE_REORG_ALREADY_IN_PROGRESS.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485597">485597</a></td>
<td>The changes for Engineering case 480208 introduced a problem where attempting to insert a long varchar or binary value into a proxy table on 64-bit platforms could have crashed the server. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485629">485629</a></td>
<td>Application Profiling did not provide trigger profiling information. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485689">485689</a></td>
<td>When attempting to insert a long binary column into a proxy table where the value being inserted was fetched from a local table, there was a chance the server could have hung with up to 100% CPU usage. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485700">485700</a></td>
<td>ALTER INDEX or DROP INDEX statements done while a transaction snapshot was active would always have failed with error -1062 &quot;statement not allowed during snapshot&quot;. This has been fixed so that it does so now only if active snapshots remain after the commit that occurs at the beginning of these statements. Normally, this will only happen if there is a cursor opened &quot;WITH HOLD&quot; that is using a snapshot (either statement or transaction).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485702">485702</a></td>
<td>The server may have crash while attempting to execute a trigger that had a syntax error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485725">485725</a></td>
<td>If a plug-in was registered using a JPR file that specified a directory in a different case than another registered plug-in that shares the same classloader, a warning was issued about the JAR file being different. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485799">485799</a></td>
<td>When undoing a failed ALTER TABLE or LOAD TABLE statement, the server could have become deadlocked. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485802">485802</a></td>
<td>The query definitions of materialized views in SQL Anywhere are restricted from using certain SQL constructs. As an example, materialized views are prohibited from making references to user defined functions. The server was erroneously rejecting the creation of materialized views that make references to a table with computed columns when the definitions of the computed columns made use of a SQL construct that was not allowed within materialized view definitions. This has been corrected so that the creation of materialized views under these circumstances will no longer result in an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485811">485811</a></td>
<td>When the Interactive SQL utility dbisql was run as a console application with bad command line options, its return code was always zero. This has been corrected so that now it is 255, as documented:</p>
<p>				SQL Anywhere� Server - Programming &gt; Exit codes </p>
<p>				Software component exit codes</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485815">485815</a></td>
<td>The DATEADD() function did not detect overflow situations. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485816">485816</a></td>
<td>When using the version 10.0 provider to connect to an older database, if the application did not specify that the parameter.SADbType=SADbType.varchar (or .char), it would have defaulted to NVarChar. This would have resulted in the error &#39;not enough values for host variables&#39; being returned to the application. This has been corrected so that the provider now maps NChar to Char, NVarChar to VarChar, LongNVarchar to longVarchar and NText to Text, if the server version is 9.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485818">485818</a></td>
<td>The server could have become deadlocked when deleting rows from a table following the execution on an ALTER TABLE statement for a table that had foreign keys referencing that table. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485821">485821</a></td>
<td>In very rare circumstances, and only on Unix platforms, queries on a given table could have become very long running. The total query cost as reported by a graphical or long text plan of such slow queries, would have been reported as a negative number. This has been fixed.</p>
<p>				A workaround is to drop and recreate statistics on the table in question.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485874">485874</a></td>
<td>Calling the system procedure sa_send_udp() have could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485875">485875</a></td>
<td>On some combinations of consolidated database and platform, any UUID values retrieved using the MobiLink Java direct row API could have had bytes swapped to the local machine byte ordering. This has been fixed. UUID values retrieved using the getBytes() function are now 16 byte values with the correct byte ordering. UUID values retrieved using the function getString() are strings in the correct UUID format (eg. &quot;12345678-1234-5678-9012-123456789012&quot;).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485878">485878</a></td>
<td>If a remote database synchronized an NCHAR column that was included in multiple publications, or if a database initialized with a multi-byte character set synchronized a CHAR column that was included in multiple publications, then dbmlsync would have incorrectly reported that a column subset mismatch existed on the column in question. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485939">485939</a></td>
<td>Backups of encrypted databases created by executing the BACKUP DATABASE statement with the &quot;WITH CHECKPOINT LOG RECOVER&quot; clause, may have contained pages that did not decrypt properly. This has been fixed.</p>
<p>				Note, any backups of encrypted databases using this clause should be considered invalid and recreated with an updated server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR485979">485979</a></td>
<td>A procedure that was used in the FROM clause of a SELECT statement, may have returned the error &quot;Derived table &#39;&lt;procname&gt;&#39; has no name for column 2&quot;. This would have happened if the SELECT statement in the procedure referenced a table without qualifying it with the owner, and only the procedure&#39;s owner could select from the table without a qualifying owner (i.e. not the user who executed the CREATE/ALTER PROCEDURE statement). This has</p>
<p>				been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486050">486050</a></td>
<td>Logs created during the nonblocking_download_ack synchronization event were being logged with the logger source name of &quot;ianywhere.unknown.category&quot;, instead of the remote id name of the client being synchronized as expected. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486053">486053</a></td>
<td>The server may have crashed if Java VMs from multiple connections attempted to call the same Java interface method for the first time. Due to the very small window where this could have occurred, it would have been exceptionally rare. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486059">486059</a></td>
<td>Using AES_FIPS encryption for an extended period of time (eg. calling the encrypt/decrypt functions hundreds of thousands of times) could have caused the server to report an &quot;out of memory&quot; condition and shut down. This could also have ocurred when running an AES_FIPS-encrypted database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486086">486086</a></td>
<td>Long exception message generated by the provider could have been truncated. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486223">486223</a></td>
<td>Some HTTP intermediaries can convert non-chunked HTTP or HTTPS requests into chunked requests. The MobiLink server currently cannot accept chunked requests, and would have crashed when it received them. This has been fixed so it will now fail the synchronization with the error &quot;unknown transfer encoding&quot; if it receives chunked requests.</p>
<p>				Note that this change only applies to the -x option, and not to the -xo option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486224">486224</a></td>
<td>Some HTTP intermediaries can inject a redundant User-Agent HTTP header, resulting in synchronizations failing. This is been fixed so that as long as the first User-Agent is the one the MobiLink server expects, it will allow the redundant header.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486288">486288</a></td>
<td>The best plan for a query block with a DISTINCT clause, and one or more joins, may be to use semijoins instead of inner joins based on the expressions used in the select list. Inner joins can be executed as semijoins for tables, derived tables, or views whose expressions are not used in the select list. The server will now make a cost-based decision to use inner joins or semijoins during the optimization phase</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486393">486393</a></td>
<td>A query with an outer join could have caused the server to hang with 100% CPU usage. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486422">486422</a></td>
<td>The MobiLink server for Windows x64 now supports both RSA and ECC stream encryption. Note that the MobiLink server does not support FIPS-compliant RSA on Windows x64.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486440">486440</a></td>
<td>The server could have crashed when attempting to recover a database with a corrupted transaction log file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486446">486446</a></td>
<td>When running on a slow network, the MobiLink client dbmlsync could have reported &#39;Internal Error (1003)&#39;. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486462">486462</a></td>
<td>Database corruption could have occurred when execution of a LOAD TABLE statement into a table with existing data failed and rows were subsequently inserted or updated before a database restart. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486465">486465</a></td>
<td>The installer for the SQL Anywhere Explorer SetupVSPackage.exe was failing to check if Visual Studio was installed before installing the integration package, leading to an exception. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486469">486469</a></td>
<td>The Data adapter wizard would have shown errors when generating commands. The errors were cause by exceptions when executing a command which still had an open data reader. Fixed by using new commands.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486476">486476</a></td>
<td>Due to a memory leak, calling the the system procedure xp_sendmail() many times, could have caused the server to crash. The memory leak has been fixed, and xp_sendmail will now fail with the error &quot;Insufficient memory&quot; (return code 15), if memory does become exhusted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486531">486531</a></td>
<td>The SQL Anywhere Explorer now supports Visual Studio 2008. Registry settings for Visual Studio 2008 are now created, and the integration dll has been modified to support Visual Studio 2008. Note that assemblies built with Visual Studio 2005 can be used in Visual Studio 2008 as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486539">486539</a></td>
<td>A synchronization could have failed with the error:</p>
<p>				- Could not find subscription id for subscription of &lt;ML user&gt; to &lt;publication&gt;.</p>
<p>				or</p>
<p>				- SQL statement failed: (-101) Not connected to a database</p>
<p>				if all the following were true:</p>
<p>				1) the synchronization was scheduled and the time before the next scheduled sync was more than a 2 minutes</p>
<p>				2) for some row in the syssync table, &quot;log_sent&quot; was greater than &quot;progress&quot;. (This occurs when dbmlsync sends an upload to the MobiLink server, but does not receive an ack/nack to indicate that the upload was applied to the consolidated database or not)</p>
<p>				3) hovering was enabled</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486546">486546</a></td>
<td>The Certificate Creation utility createcert allowed users to create certificates using ECC curves that were not supported by MobiLink or SQL Anywhere servers or clients. This has been fixed. The list of supported curves has been reduced to the following seven curves: sect163k1, sect233k1, sect283k1, sect283r1, secp192r1, secp224r1 and secp256r1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486554">486554</a></td>
<td>The changes for Engineering case 485200 resulted in a bug where attempting fetch data from Micrsoft SQL Server or ASE could have failed with an &quot;invalid object name&quot; error. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486556">486556</a></td>
<td>When running on a slow network an UltraLite application could have failes with the error message &#39;Internal Error (1003)&#39;. This problem has now been fixed. This change is similar to the fix for the MiobiLink client, Engineering case 486446.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486561">486561</a></td>
<td>In some situations, if a keyset-driven cursor was used for a query that contained an IF or CASE expression in the select list, then the IF or CASE expression could have returned an incorrect answer. The answer would have been the expression evaluated for another row of the result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486574">486574</a></td>
<td>When deploying a synchronization model, statements to create triggers did not specify the owner (or schema) for the trigger, so permission problems and invalid triggers could have resulted when deploying as a different user than the table owner. This has been fixed so that the owner, or schema, is now specified in the generated SQL for creating and dropping triggers for Oracle, Microsoft SQL Server, ASE and DB2 consolidated databases. In SQL Anywhere databases, a trigger is always owned by the same owner as the table, so the problem did not occur.</p>
<p>				A workaround is to deploy to a SQL file and manually edit the SQL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486579">486579</a></td>
<td>A MobiLink client, synchronizing via HTTP, that set the connection timeout to less than the default 240 seconds, could have been disconnected by the MobiLink server with a connection timeout error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486656">486656</a></td>
<td>The execution of a LOAD TABLE statement would have caused the server to erroneously fire INSERT triggers declared on the table being loaded. This has been corrected, the server will no longer fire triggers when executing a LOAD TABLE statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486744">486744</a></td>
<td>The server may have crashed or returned an unexpected error when attempting to execute an UPDATE statement on a table without the WAIT_FOR_COMMIT=ON clause, and that had a BEFORE UPDATE row level trigger, as well as an AFTER UPDATE row level trigger that used the OLD value of the columns. For this problem to have occurred the BEFORE UPDATE trigger must have changed the NEW value of a column that was not part of the updated columns in the UPDATE&#39;s SET clause, and the update operation must update some rows that violate referencial integrity. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486775">486775</a></td>
<td>Executing a remote query that must be handled in no-passthrough mode, and that involved many tables, then there was a chance the query would have caused a server crash. Such crashes would have been more likely with databases that had a smaller page size. This problem has been fixed and the server will now properly give an error when a no-passthrough mode query with too many table nodes is executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486777">486777</a></td>
<td>In rare cases, opening a cursor on a procedure call or batch statement could have caused a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_51.htm#CR486788">486788</a></td>
<td>The changes for Engineering case 485499 introduced a bug which could have caused the server, under certain circumstances, to crash when creating a foreign key constraint. The problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR486864">486864</a></td>
<td>A server running with the -b command line option (run in bulk operations mode) would have accepted more than one connection. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR486877">486877</a></td>
<td>When generating the download stream, in very rare circumstances, it was possible for MobiLink to have incorrectly translated a string if the remote database used a multi-byte character set. It was likely that the ending byte(s) of one string would end up at the start of the next string in the same row. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR486889">486889</a></td>
<td>In rare cases, an error encountered while executing a trigger could have resulted in a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR486896">486896</a></td>
<td>The Deployment wizard did not deploy the utility dbspawn.exe when either the Personal or Network servers were selected. This has been corrected by adding dbspawn.exe to the &quot;server core&quot; list of files to be deployed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487001">487001</a></td>
<td>The server could have hung in very rare timing dependent cases if it was using the -z or -zr command line options for diagnostic messages and request level logging. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487008">487008</a></td>
<td>The changes made for Engineering case 484553 incorrectly had the PWD value replaced with all asterisks &quot;*&quot; in the OutConnectionString parameter of the SQLDriverConnect() function. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487014">487014</a></td>
<td>Diagnostic tracing with </p>
<p>				Scope: origin</p>
<p>				Origin: external</p>
<p>				Tracing type: statements_with_variables</p>
<p>				Condition: none</p>
<p>				would not have recorded any statements with an external origin. An incorrect string comparison was being used to determine whether a statement needed to be logged. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487141">487141</a></td>
<td>If an HTTP connection was refused because of licensing restrictions, in rare cases, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487142">487142</a></td>
<td>In some specific situations, an UPDATE statement could have failed to complete. It would continue to execute until cancelled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487164">487164</a></td>
<td>The Index Consultant may have caused the server to crash when a complex query was analyzed. For example, a query with a subselect in the select list. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487166">487166</a></td>
<td>If a deadlock occurred in a database that had tracing with high levels of detail attached, and the tracing data was saved and viewed from Profiling mode in Sybase Central,</p>
<p>				the primary keys for rows that had caused the deadlock would not have been reported in the Deadlocks tab. This has been fixed.</p>
<p>				This behaviour is only considered invalid if tracing data is saved in the database that is being profiled. If tracing data is saved in an external tracing database, primary key values for rows in the original database cannot be reported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487169">487169</a></td>
<td>The Listener may have displayed an error dialog shortly after startup when handling notifications. This problem was timing sensitive, subsequent errors would have gone into the log file and to the console only. This has been fixed so that errors in handling notification will no longer cause an error dialog to be displayed. A workaround is to add the -oq switch to the dblsn command line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487178">487178</a></td>
<td>The server will no longer fail assertion 102300 - &quot;File associated with given page id is invalid or not open&quot;, when executing DROP DBSPACE if the dbspace had beed deleted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487247">487247</a></td>
<td>The server keeps track of dependencies of views on other views and tables. In databases with an extremely large number of objects, the dependency information could have become inaccurate. In order for the problem to have manifest itself, some of the dependent or referenced objects must have had object ids that were greater than 4G (2^32). This has been fixed. For existing databases, problematic views must be recompiled with an updated version of the software. If the actual number of current objects is much smaller than 4G, then the problem can be resolved by unloading and reloading the database without the need for a server software update. The reload should result in a compacting of the used object id space.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487269">487269</a></td>
<td>The CE 5.0 client libraries, qaagent, dbmlsync and dblsn could crash when shutting down. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487335">487335</a></td>
<td>It was possible for an HTTP request to an SA DISH service to hang the server while consecutively altering services. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487339">487339</a></td>
<td>If an older client (version 8.0 or 9.0) synchronized against the MobiLink server in a way that a second synchronization was attempted before the first finished (the client was terminated before the server was finished), the server would have allowed the second synchronization to proceed. This has been corrected so that subsequent synchronizations will fail until the first has competed. This problem does not apply to version 10.0 clients, as their new protocol detects and handles this situation in a different manner.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487364">487364</a></td>
<td>When converting a string from one character set to another, it was possible for the translated string to have been truncated in very rare situations. For the problem to have occurred, a conversion using ICU was required, which typically meant that a multibyte charset other than UTF-8 was involved, which is similar to Engineering case 484960. This problem has been fixed.</p>
<p>				Note, this problem does not affect the database server, but does affect other components in SQL Anywhere.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487411">487411</a></td>
<td>A keyset cursor is used when there is a possibility that a row could otherwise be updated multiple times. For example, a keyset cursor is needed if there are triggers, or if an UPDATE modifies columns in an index used by the UPDATE&#39;s plan. In some situations, an UPDATE statement could have used a keyset cursor in cases where it was not necessary, thus leading to slower performance. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487443">487443</a></td>
<td>It was possible for the database administration utilities, or other applications which made use of the DBTools interface, to have crashed when attempting to access a file that was in use. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487496">487496</a></td>
<td>The selectivity estimates used by the optimizer could have had reduced quality in some cases. In particular, if a database was used on two platforms with different endianness, the selectivity estimates could have been wrong immediately after starting on the other platform. The selectivity estimates would have gradually improved with use on the new platform, or until a CREATE STATISTICS command was used to recreate the estimates. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487505">487505</a></td>
<td>On Windows CE, starting a second server while one is already running should display the existing server, unless the existing server is in quiet mode (started with the command line option -qi or -qw). After pressing the Hide button on a server, starting a second server did not display the existing server. This has been fixed so that the first server is now displayed when a second server is started, even if the Hide button is pressed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487507">487507</a></td>
<td>If a 32-bit server was used on a system that had more than 4GB of memory available, then dynamic cache sizing could have selected cache sizes that were inappropriately small. Inappropriately small cache selected in this way would have affected query performance such that they could be very slow, worse even then if that cache size had been set at startup time. This problem has been fixed.</p>
<p>				Note, this problem can be avoided by using the -ca 0 engine switch to disable dynamic cache sizing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487516">487516</a></td>
<td>If a database had been initialized with the -b option (blank padding of strings for comparisons), then the log scanning would not have read the delete_old_logs database option properly. The log scanning code would always have used the default value of &#39;Off&#39;, regardless of the value set in the database. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487520">487520</a></td>
<td>When the server was run on Windows CE devices with the -qw or -qi command line options, a menu bar containing the menu &quot;Menu&quot; would have been displayed, but no server window. This has been fixed so that no part of the server is now visible if the -qw or -qi options are used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487581">487581</a></td>
<td>Initializing a scheduled transmission rule containing an &quot;EVERY&quot; clause and a &quot;START DATE&quot; clause set to a date that had already passed, in the QAnywhere server or </p>
<p>				in the QAnywhere Ultralight Agent, would have caused the rule to be immediately and repeatedly executed many times on startup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487673">487673</a></td>
<td>The changes for Engineering case 471948 introduced a problem such that when the server was very close to the connection limit, either the limit set by licensing or the hard-coded limit in the Personal Server, new HTTP connections may have been rejected incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487686">487686</a></td>
<td>If the MobiLink client dbmlsync did not receive an ack/nack from the MobiLink server after sending an upload, it has no way of knowing whether the upload was successfully applied. The best way to resolve this situation is to perform an &#39;extra exchange&#39; with the server before the next synchronization to request the status of the upload. Previously, this extra exchange was performed on the first synchronization after dbmlsync started up. This has been changed so that it will now perform the exchange any time there has been an un-acknowledged upload.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487687">487687</a></td>
<td>If the MobiLink client dbmlsync failed during the brief time between when an upload was completed and when state information in the database was updated, then the server would not have been queried at the start of the next sync to determine if the upload was successfully applied to the consolidated database. This problem would have occurred extremely rarely, and in most cases would have been harmless. The result was simply that the next synchronization took a little longer because an upload was built and uploaded, then rejected by the server, and a new correct upload was built and uploaded. However if the failure occurred on a subscription&#39;s first synchronization, it could have resulted in operations being uploaded to the server twice, which would usually have caused the synchronization to fail with server side errors. This has been fixed so that the syssync table is updated prior to the end of the upload. As a result an extra exchange may occur when the end of the upload was not sent, but the client should never fail to do an extra exchange when it is required.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487688">487688</a></td>
<td>It was possible for the MobiLink client dbmlsync to upload operations for a subscription that did not belong to that subscription, when all of the following were true:</p>
<p>				1) A subscription, S1, was created to some publication P1, and a second subscription, S2, was also created for P1 (either by dropping S1 and recreating it or by creating a new subscription to P1 with a different MobiLink User.)</p>
<p>				2) During the first synchronization of S2, dbmlsync successfully sent an upload but did not receive an ack/nack from the MobiLink server.</p>
<p>				3) The upload was not successfully applied to the consolidated database by the server.</p>
<p>				When all these conditions were TRUE it was possible for operations that occurred before subscription S2 was created to be uploaded when subscription S2 was synchronized. This behavior has been corrected. Now, only operations that occurred after subscription S2 was created will now be uploaded when subscription S2 is synchronized.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487689">487689</a></td>
<td>If the MobiLink client dbmlsync did not receive an ack/nack from the server after sending an upload it has no way of knowing whether the upload was successfully applied to the server. The best way to resolve this situation is to perform an &#39;extra exchange&#39; with the server before the next synchronization to request the status of the upload, but dbmlsync did not perform this extra exchange after an unacknowledged upload that occurred during the first synchronization of a subscription. This would not have resulted in any data loss, but might have increased the time required for the next synchronization as it might cause two uploads to be built and sent to the MobiLink server. This has been corrected so that an extra exchange is now performed in this case to eliminate the possibility of sending two uploads.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487690">487690</a></td>
<td>Normally, the MobiLink client dbmlsync ignores the server side state on the first synchronization of a subscription, although there was a problem where dbmlsync might have respected the server side state on a first synchronization, if an exchange was performed with the server to confirm the progress offsets of other subscriptions that had previously synchronized. As a result of this, data could have been lost and synchronizations could have failed with the error &quot;Progress offset mismatch, resending upload from consolidated database&#39;s progress offset&quot; being reported twice. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487721">487721</a></td>
<td>When IMAP, POP3 or LDAP authentication was enabled for a synchronization model, the generated authenticate_user event would have used the incorrect case for the class name, and the generated MobiLink server command line would not have enabled Java scripts with mlsupport.jar in the class path. Both problems have been fixed. The workaround is to manually fix the script and command line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487783">487783</a></td>
<td>If a database mirroring system was using a mode other than &quot;synchronous&quot;, loss of quorum did not force the primary server to restart and wait for one of the other two servers to become available. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487847">487847</a></td>
<td>In very rare cases, execution of a DROP EVENT statement to drop a scheduled event could have crashed the server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487869">487869</a></td>
<td>When using Text Completion, the list would not have contained any database objects if opened immediately after an owner name which was followed by a period, for example:</p>
<p>				SELECT * FROM myUser.</p>
<p>				Now, database objects are listed correctly. This problem only affected those owners which did not own any stored procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487950">487950</a></td>
<td>The changes for Engineering case 484160 introduced a problem such that running databases without the SYSEXTERNLOGINS system table (version 5.5.05 or earlier) could have lead to a server crash when dropping users. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR487972">487972</a></td>
<td>When running the Extraction utility (dbxtract) on a large database, an equally large database would have been created, even though the amount of extracted data may have been significantly less. In cases such as this, the majority of pages in the new database would have been free pages. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488094">488094</a></td>
<td>A failing DROP TABLE statement could have caused table pages to be leaked. This could only have happened if pages had been allocated to the table&#39;s arenas between the last checkpoint and the failed DROP TABLE. Database validation would not have detected these leaked pages. This has been fixed.</p>
<p>				A workaround for this problem is to always issue a checkpoint before attempting a DROP TABLE that has a chance of failing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488097">488097</a></td>
<td>The changes for Engineering case 485200, that forced the server to use the local setting of the Quoted_identifier option when connecting to an ASE remote server, was incomplete. Attemptiong to create a proxy table to an ASE remote server would have failed if the location string included the catalog name. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488115">488115</a></td>
<td>If a Java class was loaded and initialized by the forName() method and an exception was thrown during the class initialization, then the caller would have seen the incorrect exception java.lang.NoClassDefFoundError for class java/lang/VMAlreadyThrown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488116">488116</a></td>
<td>In very rare circumstances, the server may have crashed, or returned unexpected JVM exceptions like &quot;IllegalAccessException&quot;, if multiple connection JVMs attempted to load the same class simultaneously. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488129">488129</a></td>
<td>A numeric value longer than 80 digits may have been silently truncated to 80 characters when implicitly converted to a string value. One instance where this could have occurred was from within a column DEFAULT specification, e.g.:</p>
<p>				create table test (col1 numeric(108,38) default 1111111111222222222233333333334444444444555555555566666666667777777777.12345678901234567890123456789012345678)</p>
<p>				The value stored in the catalog (the SYSTABCOL &quot;default&quot; column) would have been truncated to: 1111111111222222222233333333334444444444555555555566666666667777777777.12345678</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488218">488218</a></td>
<td>The Deployment Wizard was failing to create the following two registry entries:</p>
<p>				HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\SQLANY 10.0</p>
<p>				HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\SQLANY 10.0 Admin</p>
<p>				This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488265">488265</a></td>
<td>SQL Anywhere does not permit direct manipulation of catalog tables. Any attempt to do so should result in a permission denied error. Under certain circumstances though, an attempt to perform one of these prohibited operations could have caused the server to behave erratically or crash. The server will now correctly report a permission denied error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488271">488271</a></td>
<td>When the MobiLink server displayed warnings about the amount of memory that was swapped to disk, the number reported for &quot;concurrent pages&quot; was the maximum number of concurrent pages for current instance of the server. This created the impression that the page usage always increased. This has been corrected so that this number is now the number of concurrent pages in use at the time of the warning.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488272">488272</a></td>
<td>When the MobiLink server can not store all the data needed for all the synchronizations in the cache memory (-cm flag), it must swap some to a temporary file. This data could have been written to the file more often than needed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488274">488274</a></td>
<td>Applications attempting to make a TLS connection may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488275">488275</a></td>
<td>It was possible for downloaded rows that contained long varchar or long binary columns to have been corrupted. Symptoms ranged from garbage characters read from a row to crashing the database. The problems were caused by an uninitialized variable, so the operations that can trigger the bug were varied. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488324">488324</a></td>
<td>When deployed to a Windows Mobile 6 device with the language set to Japanese, it was not possible to shut down the server once it was started. The menu was not there to shut down, or get version info. This would have happened on both Standard and Professional devices, and in the emulators for both types of device. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488350">488350</a></td>
<td>When using the SET OPTION statement to change value of a database option, the absence of any value signifies a request to delete the option setting altogether. On the other hand, specifying the empty string (&#39;&#39;) is considered a request to set the option value to be the empty string. However, the empty string was being treated the same way as the absence of the option value. Note that the problem is seen only when the SET OPTION statement is executed through dbisqlc, or another Embedded SQL application that makes use of the corresponding DBLIB API call. Sending the SET OPTION statement directly to the server for execution does not exhibit the erroneous behaviour. This has been fixed so that the server will no longer treat the empty string as a request to delete the option setting.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488404">488404</a></td>
<td>The value returned for the Connection and Database property QueryCachePages would have been incorrect. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488406">488406</a></td>
<td>In a very rare situation, attempting to execute a CREATE DATABASE statement could have resulted in a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488410">488410</a></td>
<td>A server running with AWE enabled may have performed poorly, or failed an out of memory assertion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488514">488514</a></td>
<td>When running on Windows Server 2008 (which has not yet been released by Microsoft), the server could have crashed while performing an integrated login when the INTEGRATED_SERVER_NAME was blank. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488520">488520</a></td>
<td>On Unix systems, 64-bit ODBC applications required LONG_IS_64BITS to be defined at compilation time. Failure to do this would most likely have resulted in a crash in the application. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488666">488666</a></td>
<td>In very rare, timing-related circumstances, the server could have appeared to hang while executing a backup. The backup could have been a server-side backup or a client-side backup. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488676">488676</a></td>
<td>The HTTP option &#39;buffer_size&#39; was limited to 64000 (64KB). On slow networks and/or large uploads or downloads, the overhead due to HTTP could have been significant. The &#39;buffer_size&#39; option is now limited to 1000000000 (1GB). When using slow networks to perform HTTP or HTTPS synchronizations, tests could be done with larger values for &#39;buffer_size&#39; to see if synchronization times improve.</p>
<p>				For versions 11.0.1 and up, this change only applies to the -xo option of the MobiLink server. The -x option already allows larger values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488680">488680</a></td>
<td>The server could have crashed if it was run with TCP/IP disabled, and diagnostic tracing was attempted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488685">488685</a></td>
<td>Database recovery could have failed if the transaction log being recovered contained statements which caused checkpoints and recovery needed to be restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488699">488699</a></td>
<td>Table expressions with brackets may have caused syntax errors. For example,</p>
<p>				Select * from (table1) left join table2</p>
<p>				This was corrected by adjusting the syntax to handle more general bracketing.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488754">488754</a></td>
<td>If a variable of type nchar, nvarchar or long nvarchar was declared, and then used in a query involving a remote table, then it was likely that the server would have failed with the error &quot;not enough host variables&quot;. A simple example of a query that would have given this error is:</p>
<p>				SELECT * FROM remote_t WHERE c1 = @nvar</p>
<p>				In this example, if the table remote_t was a proxy table, and the variable @nvar was of type nchar, nvarchar or long nvarchar, then the server would have failed to execute the query with the &quot;not enough host variables&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488765">488765</a></td>
<td>Starting the utility database could have caused the server to fail assertion 200500. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488844">488844</a></td>
<td>Unique indexes could have unexpectedly grown in size over time. As well, the server could have crashed while performing index maintenance. The server keeps deleted unique index entries until commit or rollback, in order to avoid having to do key range locking. In some cases the deleted entries were not being reclaimed properly. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488857">488857</a></td>
<td>If an UPDATE statement contained a SET clause that assigned a value to a variable, then the variable could have been assigned a value that had a length or precision/scale that exceeded the declared domain of the variable. This would have caused subsequent operations with the variable to use this longer value. This problem only affected variables of type NUMERIC/DECIMAL or string types. This problem has now been fixed.</p>
<p>				For example:</p>
<p>				create variable @text varchar(3);</p>
<p>				update T set @text = &#39;long long string&#39;, salary = salary</p>
<p>				Previously, the update statement would pass and the value of @text was set to &#39;long long string&#39;. Now, the statement fails with an error (provided the string_rtruncation option has its default value):</p>
<p>				Right truncation of string data [-638] [&#39;22001&#39;]</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488859">488859</a></td>
<td>The Interactive SQL utility&#39;s Index Consultant could have failed to recommend indexes on a query containing the word &quot;GO&quot; in an identifier (For example, SELECT * FROM CATEGORY), complaining that it could only analyze one query at a time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488862">488862</a></td>
<td>The MobiLink client could have reported internal error 1003 during , and would have most likely occurred when the increment size was quite large, or if the server was slow to apply the upload. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488941">488941</a></td>
<td>The OPEN operation for a cursor that used a query that referenced proxy tables may have caused the server to crash. This would only have happened if the final cursour type was KEYSET. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488967">488967</a></td>
<td>An existing stored procedure or user-defined function can now be recompiled using</p>
<p>				ALTER PROCEDURE owner.procname RECOMPILE</p>
<p>				or</p>
<p>				ALTER FUNCTION owner.funcname RECOMPILE</p>
<p>				The process of recompiling causes the procedure or function definition stored in the catalog to be re-parsed and verified that it is syntactically correct. For procedures that generate a result set but do not provide a RESULT clause, the server will also attempt to determine the result set characteristics for the procedure and store that information in the catalog. This can be useful if a table referenced by the procedure has been altered to add, remove or rename columns since the procedure was created. The preserved source for a procedure or function is not changed by recompiling. Procedures and functions whose definition are hidden via</p>
<p>				ALTER PROCEDURE owner.procname SET HIDDEN</p>
<p>				can be recompiled, and their definitions will remain hidden.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR488993">488993</a></td>
<td>A very specific form of database corruption could in rare instances have been undetected by the database validation tools. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489072">489072</a></td>
<td>The server may have crashed while executing an image backup if all the files of the database were no longer accessible. The most likely scenerio for this problem to occur when the database was started in read-only mode on a network share, and the network connection was lost. This has been fixed and the BACKUP statement will now fail with an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489098">489098</a></td>
<td>If the Log Translation utility (dbtran) detected an error during execution, the SQL file it had generated up to that point was normally deleteed to ensure that a partial file was not used by accident. The -k command line option has now been added to prevent the SQL file from being erased if an error is detected. This may be useful when attempting to salvage transactions from a damaged log.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489100">489100</a></td>
<td>The MobiLink server must hold all table data needed for currently active synchronizations. When the total concurrent amount of table data exceeded the server&#39;s cache memory (-cm option) by more than 4200MB the server could have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489152">489152</a></td>
<td>If in error, the operating system date was set to a date in the far future, some servers and tools that collected feature logging information in sadiags.xml may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489167">489167</a></td>
<td>If an application used version 9 or earlier client software, and connected to a version 10.0.1 server, the server could have crashed or an incorrect character set could have been used. Also, if the application used the CHARSET connection parameter, the connection would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489179">489179</a></td>
<td>Load table could have failed when loading data into a table that contained a self-referencing foreign key. As of Engineering Case 395054 the wait_for_commit option was set to &#39;off&#39; for LOAD TABLE so that errors could be detected immediately. Now wait_for_commit for LOAD TABLE is set to &#39;on&#39; if the table has a self-referencing foreign key, otherwise it is sett &#39;off&#39; as before.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489236">489236</a></td>
<td>If a database is auto-started by executing DBVALID, the database will now be started in read-only mode. This was done to avoid making changes to the database in case it was intended to be used as part of a backup/recovery plan. Once a backup copy of a database has been started in read-write mode, transaction logs from the original database cannot be applied to it. If DBVALID connects to a database that is already running and the database was not started in read-only mode, DBVALID will now display a warning: &quot;WARNING: database being validated was not started read-only&quot; If a database requires recovery, it will fail to start in read-only mode. Note that most databases created by DBBACKUP will be marked as needing recovery. If a database to be validated requires recovery, and the user wishes to force it to be started read-write, specifying a valid value for the DBS connection parameter will allow the database to be started and recovery performed. </p>
<p>				For example:</p>
<p>				dbvalid -c &quot;UID=DBA;PWD=sql;DBF=mycopy.db;DBS=-n mycopy&quot;</p>
<p>				dbvalid -c &quot;UID=DBA;PWD=sql;DBF=mycopy.db;DBS=-dh&quot;</p>
<p>				would both allow dbvalid to execute if mycopy.db required recovery. The database could also be pre-started before running DBVALID.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489238">489238</a></td>
<td>When the Data Source utility dbdsn was used to create an ODBC data source for the iAnywhere Solutions Oracle ODBC Driver (using the -or switch) on UNIX, the driver name in the data source would have been incorrect (libdboraodbc10.so rather than libdboraodbc10_r.so). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489239">489239</a></td>
<td>The Apache redirector did not support the Mobilink client&#39;s HTTP persistent connection. Clients that attempted to use persistaent connections would have been switched to non-persistent HTTP after the first request. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489245">489245</a></td>
<td>The Secure Stream Server Certificate page in the Deploy Synchronization Model Wizard mentions that the generated batch file will prompt for the password, but the generated batch file does not do this. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489258">489258</a></td>
<td>The HTTP synchronization parameter buffer_size was not always respected, particularly when using zlib compression, which could have caused upload performancto degrade for large uploads. This has been fixed. Also the default values for buffer_size have been increased as follows:</p>
<p>				Palm - 4K</p>
<p>				CE - 16K</p>
<p>				all other platforms - 64K</p>
<p>				and the maximum value for buffer_size has been increased from 64K to 1G.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489266">489266</a></td>
<td>The MobiLink server could have silently failed a ping request from a 9.0.2 or earlier MobiLink client if the client&#39;s command line contained any options of upload_only and/or download_only. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489337">489337</a></td>
<td>A connection attempting to execute an UNLOAD TABLE statement on more than one table concurrently could have lead to a server deadlock. This could also have happened when executing the Unload Database utility (dbunload). This has beed fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489427">489427</a></td>
<td>When deploying to an existing remote database, the generated batch file needs to provide a password, but it did not prompt for one. The work around is to edit the generated batch file. This has been fixed so that it will now prompt for a password when using an existing remote database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489435">489435</a></td>
<td>Attempting to execute a &quot;MESSAGE ... TO CLIENT&quot; statement using the Interactive SQL utility (dbisql) on Unix platforms, would very likely have caused it to hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489436">489436</a></td>
<td>If a statement contained a large number of query expressions (UNION, INTERSECT, EXCEPT), or other complex features such as subqueries, and, further, the statement had a large number of scalar expressions, then the statement could have taken longer to process than earlier releases. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489443">489443</a></td>
<td>When using Java in the database and attempting to have the server execute a non-static Java method, a strange NullPointerException method would have been returned. A proper IllegalAccessException method, indicating that the method being executed is not static, will now be returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489444">489444</a></td>
<td>If an application that used Java in the database attempted to call a static Java method in a class that had constructors, but no constructor with 0 arguments, then the call would have failed with an InstantiationException. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489538">489538</a></td>
<td>When examining the properties of a foreign key that was created as CHECK ON COMMIT, the properties would always have been reported that CHECK ON COMMIT was off. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489542">489542</a></td>
<td>In very rare situations, the server could have hung while trying to drop a Remote Data Access connection. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489597">489597</a></td>
<td>The MobiLink server would have reported an incorrect error if the server was running in blocking ack mode, but an event for non blocking ack (-nba+) mode has been defined. The error reported was: &quot;There is no download data script defined for table:.. &quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489598">489598</a></td>
<td>&#39;Assertion 100904: Failed to redo a database operation&#39; is generated when the server fails to recover the database based on information stored in the transaction log. This assertion never included the actual reason for the recovery failure. The actual error message is now included in the assertion message. In many cases the cause of the recovery failure was failure to find a data file that was used in a LOAD TABLE statement. In cases where the data file had been deleted recovery could not continue. The fact that the file is missing is now incorporated into the assertion message.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489600">489600</a></td>
<td>In rare circumstances, after a backed-up copy of a database was started, or after a database had undergone recovery, the Validation utility (dbvalid) could have caused the server to fail assert 101412 - &quot;Page number on page does not match page requested&quot;. Even though the server failed the assertion, the database file was not corrupt, and the database should have continued to operate normally. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489605">489605</a></td>
<td>In case-sensitive databases, dbspace names were also case-sensitive. DDL statements referring to the dbspace names were required to specify the dbspace names exactly as they appeared in the catalog. This has been fixed.</p>
<p>				Note, it is possible that a database could contain two dbspaces with the same name in different cases. This change would prevent these dbspaces from being differentiated. This would be a problem when migrating to versions 10 or later as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489694">489694</a></td>
<td>Support has now been added for Windows Mobile 5 SmartPhone Edition and Windows Mobile 6 Standard edition. All SQL Anywhere Windows CE functionality is supported on the SmartPhone, except for the following:</p>
<p>				- the SharedMemory communication protocol is not supported. The TCP/IP communication protocol is used even if no protocol is specified, and a server name must always be specified when making a connection, or the connection will fail.</p>
<p>				- the preferences dialog on the database server and MobiLink client is not supported. The preferences dialog normally appears if no command line options are used.</p>
<p>				- the ODBC and OLEDB connection prompt dialog is not supported. This dialog normally may appear depending on the DriverCompletion parameter to SQLDriverConnect, or the DBPROP_INIT_PROMPT OLEDB property.</p>
<p>				- the Unload / Reload support is not available. This includes dbunload.exe, dbrunsql.exe and the unload support server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489741">489741</a></td>
<td>If an application using the iAS Oracle driver issued a &quot;call procedure_name&quot; statement (without open and close parentheses) through the ODBC functions SQLPrepare or SQLExecDirect, and the procedure &quot;procedure_name&quot; returned a result set, the driver could have crashed when the &quot;Procedure returns results&quot; check-box was checked on Windows, or the &quot;ProcResults&quot; entry was set to &#39;yes&#39; on UNIX. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489744">489744</a></td>
<td>VALIDATE TABLE did not correctly handle tables with more than 256 rows on a table page. The problem has been fixed.</p>
<p>				VALIDATE TABLE has also been enhanced to allow validation to proceed on very large tables or, more precisely, on tables whose last page number was very large. Prior to this change, error 08W13 (-86) &quot;Not enough memory to start&quot; could have been reported. </p>
<p>				Note that if the table is actually very large relative to the cache, validation may take a very long time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489871">489871</a></td>
<td>There were several problems possible when the -m server command line option was used to truncate database transaction log files at checkpoint. Some of these problems were, but were not limited to, assertions indicating that the log could not be deleted or restarted while a virus scanner or disk defragmenter was accessing the log file; and occasionally having zero byte transaction log file remaining after a system failure. These problems should no longer occur as the transaction log file is no longer deleted and recreated at checkpoint time when the -m option is being used. Instead the file gets truncated to one page in size and then continues to be used. A side effect of this change is that there will be a one page log file remaining after a successful shutdown of a database, instead of no log file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489889">489889</a></td>
<td>When executing an UPDATE on a remote table with a cursor range, the cursor range would have been ignored, and all rows would have instead been updated.</p>
<p>				For example, executing the following:</p>
<p>				UPDATE TOP 2 proxy_t</p>
<p>				SET proxy_t.data = &#39;Hello&#39; </p>
<p>				ORDER BY proxy_t.pkey ASC;</p>
<p>				would have updated all rows in the table. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_52.htm#CR489903">489903</a></td>
<td>Some HTTP intermediaries add more information to the HTTP User-Agent header. This was causing failed synchronizations, and has now been fixed.</p>
<p>				Note that any intermediary that removes the information put into the User-Agent by the MobiLink client will cause synchronizations to fail.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR489917">489917</a></td>
<td>Certain specific forms of statements could have caused the server to crash, or to report assertion failures 101504, 101514, or 101515. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490036">490036</a></td>
<td>When making continuous ODBC connections and disconnections using SQLConnect and SQLDisconnect, a memory leak would have occurred in the application. The process heap would have continued to grow as the application looped. To reproduce the memory leak, the application must have allocated and freed environment and connection handles around the SQLConnect and SQLDisconnect calls, to ensure that the SQL Anywhere ODBC driver was loaded and unloaded from memory. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490092">490092</a></td>
<td>In rare cases, attempting to create a procedure or event containing the BACKUP DATABASE statement would have caused a server crash. The crash was due to an unparsing error, which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490180">490180</a></td>
<td>If a query used certain types of expressions that used strings, and a parallel execution strategy was selected by the query optimizer, then the server could have crashed under certain conditions. This has been fixed.</p>
<p>				The problematic expressions include the following:</p>
<p>				COMPRESS CONNECTION_EXTENDED_PROPERTY CSCONVERT DATEFORMAT DB_EXTENDED_PROPERTY DB_ID DECOMPRESS DECRYPT ENCRYPT EVENT_CONDITION EVENT_PARAMETER EXTENDED_PROPERTY GET_IDENTITY HASH HEXTOINT HTTP_HEADER HTTP_VARIABLE ISDATE ISNUMERIC LIKE LOCATE NEXT_HTTP_HEADER NEXT_HTTP_VARIABLE NEXT_SOAP_HEADER PROPERTY_NAME PROPERTY_NUMBER REPLACE REVERSE SOAP_HEADER SORTKEY TO_CHAR TO_NCHAR UNICODE USER_ID VAREXISTS WRITE_CLIENT_FILE</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490192">490192</a></td>
<td>The embedded SQL OPEN statement did not allow any of the snapshot isolation levels to be specified in the ISOLATION LEVEL clause. This has been corrected. The workaround is to use the isolation_level option.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490209">490209</a></td>
<td>An error would have been reported when some valid options were entered in the dbmlsync option dialog on CE. The options affected included -q -Q -qc -o -ot -os and -wc. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490210">490210</a></td>
<td>When viewing the properties of a table in the UltraLite plug-in for Sybase Central, it was possible to change the table抯 synchronization type of Normal, Always or Never. Doing this would have created a new table with a different suffix (either empty, _nosync or _allsync), however the original table would not have been dropped. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490227">490227</a></td>
<td>The SQL Preprocessor (sqlpp) could have generated incorrect code for SET OPTION statements. Correct code was generated for single SET OPTION statements, but incorrect code was generated if the SET OPTION was contained within a batch, procedure definition, etc. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490229">490229</a></td>
<td>An application using the iAS ODBC driver for Oracle may have crashed if a SQL statement caused an error on the Oracle database server or the OCI library, and if the error message returned from the Oracle server or the OCI library was greater than 466 bytes in length. This problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490303">490303</a></td>
<td>The server allows for objects, such as views, to be disabled. When a view is disabled, its definition is maintained in the database in an uncompiled state, and the view is not available to be referenced by queries. Once disabled, a view needs to be explicitly enabled before it becomes usable again. The server now allows users to grant permissions on disabled objects. Any granted permissions are retained in the database and become effective once the object is enabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490312">490312</a></td>
<td>Attempting to unload a database using the Sybase Central Unload wizard, that was not currently connected to, into an XML or SQL file would have failed with a null pointer exception. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490412">490412</a></td>
<td>In very rare, timing-related circumstances, the server could have become extremely slow when processing Java requests in the database, or disconnects from connections with attached Java VMs. This may have happened if a large number of connections were executing Java functions or if connections with attached Java VMs received a cancel. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490471">490471</a></td>
<td>When connected to two UltraLite databases and attempting to unload the first into the second, when the Finish was clicked on the page that asked for the destination database, the wizard would not have noticed the change in the selected destination database on that page and then tried to load into the default destination database, which in this case was the same database as the source database. This has been fixed so that the wizard now correctly records the selection, and/or correctly pops up a dialog letting the user know that the source database is the same as the destination database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490481">490481</a></td>
<td>When attempting to shut down a MobiLink server using mlstop, as well as pressing &#39;q&#39; on UNIX or clicking on the &#39;Shut down&#39; button on Windows simultaneously, then the MobiLink server could have crashed. This problem was due to a race condition, which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490504">490504</a></td>
<td>If a Hash Group By algorithm did not have enough memory to operate, and it was converted to a low-memory execution strategy, it was possible for grouped rows to be returned even though they did not match the HAVING clause specified in the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490564">490564</a></td>
<td>A recordset update may have failed when one of more column values were null. The OLEDB provider failed to correctly identify the primary key columns in a table, and this resulted in an UPDATE statement containing a WHERE clause that was overly complex. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490590">490590</a></td>
<td>Synchronizations using TLS, HTTP, or compression could have failed. Also, mlfiletransfer, dblsn, and all components connecting to the MobiLink server could have failed. The failure manifestation was highly data-dependent, but the most likely error was a protocol error. Synchronizations from older (ie. versions 8 &amp; 9) clients were not affected by this problem. In the extremely unlikely event that the lost bytes go unnoticed by the other end of the network connection, or internally in MobiLink server, then there might be lost data. For example, in a row operation, a sequence of bytes in the middle of a VARCHAR column value may have been removed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490594">490594</a></td>
<td>In a low memory situation, the Hash Broup By algorithm could have failed to compute the value of composite aggregates (eg AVG )for some groups. The value of the composite aggregate was incorrectly set to NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490798">490798</a></td>
<td>In a TOP n START AT m clause, the values of n and m were previously restricted to being constants or variables. They are now allowed to be host variable references. For example:</p>
<p>				select top ? table_name</p>
<p>				from SYS.SYSTAB</p>
<p>				order by table_id</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490862">490862</a></td>
<td>A QAnywhere .NET application could have crashed with a memory access vio;ation when terminating. This was due to a race condition, which has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490909">490909</a></td>
<td>If a cursor for a statement containing ORDER BY was opened with the option Ansi_update_constraints set to a value other than &#39;off&#39;, then the statement could have incorrectly been opened as READ ONLY, even if cursor flags requesting an updatable cursor were specified. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR490930">490930</a></td>
<td>Under very rare circumstance, and likely with heavy concurrency, the server could have crashed. A race condition in the row locking code has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491010">491010</a></td>
<td>The database option database_authentication defined in saopts.sql, or authenticate.sql, could have silently failed to have been set during a create or upgrade of a database. Statement in the scripts used during a create or update of a database were ignored if either the &#39;go&#39; terminator was not lowercase, or an end of file was reached with no &#39;go&#39; following the statement. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491015">491015</a></td>
<td>A server with AWE enabled (ie -cw) could have crashed when running a database containing encrypted tables. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491104">491104</a></td>
<td>Any modifications to the client message store properties, after the clients first synchronization, would not have been propagated to the server message store as expected.</p>
<p>				This had been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491108">491108</a></td>
<td>The ALTER and DROP TABLE statements can cause checkpoints to happen under certain circumstance. If these statements were executed on tables, where the table data had not changed since the last checkpoint, the server did a checkpoint anyway. These checkpoints caused the server to do unnecessary serialized work, and could have caused inefficiencies. The problem was most likely to be observed when large amounts of schema changes were being carried out, e.g., during a database schema reload. This has been changed so that the server will no longer cause an unnecessary checkpoint to occur.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491111">491111</a></td>
<td>Scrolling the horizontal scrollbar to the right and then refreshing the list did not update the column headers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491121">491121</a></td>
<td>When run on Windows systems, the server&#39;s &quot;about&quot; box would not have opened when selecting &quot;About SQL Anywhere...&quot; after right clicking on the system tray icon. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491180">491180</a></td>
<td>On Windows CE devices, in rare cases it was possible for a database stored on a flash storage memory to not recover after the device shutdown abnormally. Flash storage memory includes flash memory cards and the standard storage memory on Windows Mobile 5 and 6 devices. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491267">491267</a></td>
<td>The server could have crashed when there were many short transactions on a busy server. This was more likely to have occurred when running on Unix system and multiprocessor machines. It was not likely to have occurred when runnig on a single processor Windows machine. A race condition has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491315">491315</a></td>
<td>Version 10.0.0 of SQL Anywhere added support for the OPTION clause in the SELECT statement. The OPTION clause has now been extended to the INSERT, UPDATE, DELETE, SELECT, UNION, EXCEPT, and INTERSECT statements. The clause allows users to override the settings for the following connection level options at the statement level:</p>
<p>				- isolation_level option [compatibility] </p>
<p>				- max_query_tasks option [database] </p>
<p>				- optimization_goal option [database] </p>
<p>				- optimization_level option [database] </p>
<p>				- optimization_workload option [database] </p>
<p>				The server will now raise an &quot;invalid option setting&quot; error in a predictable fashion if one of the unsupported options is used in the clause. There was a possibility of the server leaking a small amount of memory that has also been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491380">491380</a></td>
<td>If a statement, other than SELECT, INSERT, UPDATE, or DELETE, used a subselect expression that returned a NUMERIC or DECIMAL data type, then the subsequent operations using the subselect value could have inappropriately truncated the numeric result. This has been fixed.</p>
<p>				For example, the following sequence could have incorrectly return 104.0 instead of 104.6.</p>
<p>				create variable @vnum numeric(20,4)</p>
<p>				set @vnum = ( select max(103.5) ) + 1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491388">491388</a></td>
<td>Updating or deleting from a large table could have caused index corruption. For this problem to have occurred, a large number of rows (consecutive in index order) needed to be updated or deleted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491399">491399</a></td>
<td>When the 10.0 version of dbunload was used to unload a pre-10.0 database, the &quot;unload support engine&quot; (dbunlspt.exe) was spawned with a cache size equal to 40% of physical memory. For most databases, this is unnecessarily large. This has been changed so that </p>
<p>				dbunlspt.exe will now start with the same default cache size as the server, and grow no larger than 40% of physical memory.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491400">491400</a></td>
<td>The marquee in the overview panel would have flashed excessively when connected to a MobiLink server. This has been fixed. A workaround is to drag out the marquee to a new region, or to pause the auto scrolling.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491414">491414</a></td>
<td>The Index Consultant wizard was not working correctly with the ENTER key. The Default button was not properly set, and focus was not properly set on some pages of the wizard.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491787">491787</a></td>
<td>If a server was running in a high availability mirroring system and a client connection was cancelled or dropped, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491885">491885</a></td>
<td>If a value-sensitive cursor was opened with the &#39;WITH HOLD&#39; clause, and it referenced a table that was affected by a TRUNCATE statement, then the server could have reported assertion failures when the cursor was used after the truncate. This problem also occurred if the cursor referenced a temporary table declared with the &#39;ON COMMIT DELETE ROWS&#39; clause and if the cursor was used after a commit. Assertions that could be reported in this situation include the following, although this list is not exhaustive:</p>
<p>				201417 &quot;Invalid count or free space offset detected on a table page&quot;</p>
<p>				101412 &quot;Page number on page does not match page requested&quot;</p>
<p>				Note that a value-sensitive cursor can be selected either explicitly, by cursor flags (ODBC keyset-driven, ESQL/SP scroll), or implicitly if the cursor type is changed by the query optimizer (for example, if a sort is used for an updatable cursor). This problem has been fixed. In engines with the fix for this problem, the affected cursor will return an error if it is used after the TRUNCATE or COMMIT. The error returned is: CURSOR_INVALID_STATE 24000 -853 &quot;Cursor not in a valid state&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491909">491909</a></td>
<td>The database option Scale was being used for the default scale for a specification such as NUMERIC(10). This has been corrected so that the scale used to supply the value is now 0. Additionally, supplying a numeric scale larger than the precision was not diagnosed. This has been corrected as well</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR491910">491910</a></td>
<td>In rare cases, concurrent execution of DML and DDL statements could have crashed the server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492018">492018</a></td>
<td>If a service that could not interact with the desktop failed to start, the error message describing the cause of the failure would not have been logged to the Event Log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492031">492031</a></td>
<td>In order to drop a table from the database, it must first be removed from all publications. Failing to remove the table from any publications prior to attempting to drop it would have resulted in an error. However, the UltaLite database would have been left in a corrupt state after the error was returned, as the operation was not fully rolled back. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492148">492148</a></td>
<td>If the Connection.synchronize() function failed with an exception, the message in the exception did not contain any relevant details. For example, the text for a SQLE_PRIMARY_KEY_NOT_UNIQUE( -193) error did not include the table name (&quot;Primary key for table &#39;-n/a-&#39; is not unique.&quot;). This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492188">492188</a></td>
<td>In rare circumstances, the server could have crash when attempting the execute an external Java procedure. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492197">492197</a></td>
<td>A client which sent malformed communications protocol to the MobiLink server, could have casused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492227">492227</a></td>
<td>The server may have crashed if an ALTER TABLE statement attempted to rename a column, and there already existed a foreign key with referential action for this table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492302">492302</a></td>
<td>A query that involved more than one &quot;Remote Procedure Call&quot; in the FROM clause, could have caused the server to crash. </p>
<p>				An example of such a query is:</p>
<p>				SELECT col1</p>
<p>				from remote_procedure_1() </p>
<p>				where col2 = (select c1 from remote_procedure 2())</p>
<p>				This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492332">492332</a></td>
<td>Materialized view maintenance could result in assertions and server crashes if there were other active connections (including internal connections). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492344">492344</a></td>
<td>An erroneous conversion error could have been detected when an IF expression involved an aggregate. For example: &quot;IF count(n) &gt; 50 THEN &#39;good&#39; ELSE &#39;bad&#39; ENDIF&quot; This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492346">492346</a></td>
<td>When using Java in the database, a method that called System.out.println with a very long string would very likely have cause the client application to hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492347">492347</a></td>
<td>In certain conditions, executing statements with the ARGN() fuction could have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492348">492348</a></td>
<td>If an application had more than one CallableStatement open on the same connection, then there was a chance that closing the CallableStatements would have caused a hang in the application. It should be noted that the problem does not exist with Statement and PreparedStatement objects. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492353">492353</a></td>
<td>In rare cases, the server could have crashed on shutdown if the cache priming page collection was enabled. Page collection is enabled by default, or if -cc or -cc+ were provided on the command line. This has now been fixed. The workaround is to use -cc- to disable cache priming page collection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492356">492356</a></td>
<td>If the procedure debugger was used to set a breakpoint in a stored procedure and then many connections called that procedure and hit the breakpoint, the server could have hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492387">492387</a></td>
<td>The install would have failed on Unix systems which contained a version of coreutils 6.9 or newer (such as Ubuntu Linux 8.04). The failures would likely have occurred while checking that the target system meets the minimum requirements for SQL Anywhere, or while verifying the amount of free disk space available. The &quot;setup&quot; install script can be modified to work around this issue as follows:</p>
<p>				1. Find all lines containing the &quot;cut&quot; command that uses the &quot;-f&quot; argument</p>
<p>				2. For all such lines if a comma immediately follows the &quot;-f&quot;, remove this comma</p>
<p>				For example, the line:</p>
<p>				OS_REL_1=`echo $OS_REL | cut -d. -f,1`</p>
<p>				should become:</p>
<p>				OS_REL_1=`echo $OS_REL | cut -d. -f1`</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492433">492433</a></td>
<td>Errors logged to the Windows error log sometimes may have had &quot;MobiLink Client&quot; incorrectly spelled as &quot;MobiLin Client&quot;. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492533">492533</a></td>
<td>In very rare, timing-related circumstances, calling a Java procedure, or making a request than references a remote JDBC clase server, may have failed with the error &quot;No suitable driver&quot;, if a cancel had been received. When this happened, all JVM&#39;s, or the database, would have had to have been restarted to resolve the problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492540">492540</a></td>
<td>If the last transaction log page received by a server acting as database mirror was completely filled, and the primary server was then shut down, the mirror could have failed to start. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492667">492667</a></td>
<td>If a Windows application called the function SQLColAttribute() with SQL_DESC_OCTET_LENGTH when using the iAS ODBC driver for Oracle, it could have been returned the transfer octet length in characters, rather than in bytes. Due to this problem, the application could have incorrectly truncated data. This problem has now been fixed.</p>
<p>				Note, this problem should not happen if the application is the MobiLink server. The MobiLink server does not call the ODBC function SQLColAttribute().</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492675">492675</a></td>
<td>Incorrect results could have been returned for for some DISTINCT ORDER BY combinations. This would have occurred when a DISTINCT clause was used and there were no unique indexes that could be used to guarantee distinctness, there was an ORDER BY clause and no indexes exist to effect that ordering and not all of the the ORDER BY constituents were found in the SELECT list.</p>
<p>				For example:</p>
<p>				SELECT DISTINCT last_name FROM people ORDER BY birth_date</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492780">492780</a></td>
<td>When an ODBC datasource was modified on Windows, the permission settings on the registry key were modified. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492783">492783</a></td>
<td>If an application using the iAnywhere JDBC driver called ResultSet.getDouble() to fetch a numeric value, then there was a chance the JDBC driver would have thrown an &quot;invalid numeric string&quot; exception. This problem would only have happened if the application was using the Java print service and the default locale was a European one. Note that calling ResultSet.getBigDecimal() did not have the same problem, hence calling ResultSet.getBigDecimal().doubleValue() is a workaround for this problem. The original problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492788">492788</a></td>
<td>Trying to use the named parameter ODBC_State with the report_odbc_error script would have resulted in an error, with ODBC_State being reported as an invalid system parameter. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492814">492814</a></td>
<td>A user without administrator permission was unable to start, stop or delete SQL Anywhere services on a Windows 2003 machine, even if that user had been granted permission by an administrator to control those services. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR492960">492960</a></td>
<td>Server-initiated synchronization requires the SendDownloadAck extended option to be enabled, but this would not be enabled for a SQL Anywhere remote database that had been setup for SIS through deployment from a synchronization model. This has been fixed. The workaround for this is to enable SendDownloadAck on the remote advanced options page when deploying.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493049">493049</a></td>
<td>If the very first request to a remote server was executed by an user event at the time the server was shutting down, or during a server startup that fails, then the server may have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493071">493071</a></td>
<td>The server could have crashed if a connection was attempted at the same time as a connection was in the process of disconnecting. The likelihood of this occurring would have been extremely rare due to the very small timing window. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493096">493096</a></td>
<td>When a server has more than 200 concurrent connections, the liveness timeout should be automatically increased by the server to avoid possible dropped connections. This was not being done until the server had at least 1000 concurrent connections. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493210">493210</a></td>
<td>The Deployment wizard would have failed when deploying a synchronization model with a table with a LOB column on an Oracle consolidated database with timestamp download, or using shadow tables to record deletions. The Deployment wizard was attempting to create a trigger specifying LOB columns, however, Oracle does not support creating triggers with LOB columns specified. This has been fixed by creating the triggers on the table, rather than the columns.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493217">493217</a></td>
<td>In certain rare situations calls to the MOD() function with NUMERIC or DECIMAL arguments, could have caused the server to crash, or to report an unexpected error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493219">493219</a></td>
<td>When using non-persistent HTTP, the length of the end_synchronization phase in the Monitor could have been shown as taking a long time (at least equal to the connection timeout interval), even though the sync successfully completed much earlier. The strange display made it hard to interpret what was going on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493330">493330</a></td>
<td>When running Visual FoxPro the behaviour of the ODBC driver was different between version 9.0 and version 10.0. Version 10.0 reported different error messages when closing connections. This has been fixed so the behaviour is now consistant between versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493337">493337</a></td>
<td>MobiLink clients could have failed to parse Set-Cookie HTTP headers sent by web servers and would have returned the error STREAM_ERROR_HTTP_HEADER_PARSE_ERROR. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493442">493442</a></td>
<td>Very large or very small numbers could have been displayed in exponential notation. This was different from previous versions of the software where numbers were displayed in plain decimal notation. Now, very large and very small numbers are displayed in decimal notation again. Also, the numbers that are written by the OUTPUT statement are now also similarly formatted using normal decimal notation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493478">493478</a></td>
<td>Incorrect results could have been returned for for some queries with row limitation (using FIRST, TOP, and/or START AT clauses), when a query was not read-only and when a temporary table was required to execute the query.</p>
<p>				For example:</p>
<p>				SELECT TOP 14 * FROM table ORDER BY table.column</p>
<p>				when there was no index that could be used to order the data. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493578">493578</a></td>
<td>Attempting to add a row to a table which contained a UNIQUEIDENTIFIER column using the table in the &quot;Results&quot; panel could have caused Sybase Central to crash. This problem affected the Interactive SQL utility dbisql as well. It has now been fixed.</p>
<p>				Note that the problem was restricted to UNIQUEIDENTIFIER columns which could not be null and which did not have default values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493708">493708</a></td>
<td>Older MobiLink clients (version 8 and 9) may have failed to synchronize with an &quot;Out of memory&quot; error. This error should have been reported as &quot;unknown character set&quot;. This has been corrected. The character translation mechanism can no longer translate characters from DECKanji or Turkish8 (possibly others). There is no workaround for this issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493715">493715</a></td>
<td>If a database requires recovery, executing &quot;START DATABASE {database name} FOR READ ONLY&quot; would fail with the error &quot;Unable to start specified database: unable to start database {database name}&quot;. This has been fixed; the error message will now read &quot;Unable to start specified database: not expecting any operations in transaction log&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493729">493729</a></td>
<td>A problem introduced by changes for Engineering case 489871 made it possible for database recovery to fail with databases using the -m switch to truncate the transaction log at each checkpoint. This was not an issue if -m was not being used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493730">493730</a></td>
<td>In rare, timing dependent cases, the server could have hung on multi-processor systems with one processor at 100% usage when iterating through connection handles (for example by using sa_conn_list or sa_conn_info). This was extremely unlikely on single processor systems, or on a server that had a low rate of connects and disconnects. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493738">493738</a></td>
<td>Performing an ALTER TABLE statement on a table with blob columns may have caused corruption in the database. The most likely symptom of this would have been a crash when selecting from a table that has been altered. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493741">493741</a></td>
<td>An attempt to alter a column to DEFAULT NULL would have been ignored. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493744">493744</a></td>
<td>In the following situation:</p>
<p>				1) A procedure call in the FROM clause consists of a single SELECT statement and nothing else</p>
<p>				2) The FROM clause inside the procedure from 1) also consists of a single SELECT and nothing else</p>
<p>				then the procedure from 2) may be looked up in the context of the current connection rather than the owner of the procedure in 1). This is fixed.</p>
<p>				Note that this is not a security hole since the incorrect lookup is done in the context of the current connection.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493757">493757</a></td>
<td>The server could have crashed when inserting a row into a wide clustered index (one on many columns, or on long strings). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493762">493762</a></td>
<td>Incorrect results could be obtained for for some queries that used indexes in which there was more than one nullable column. This was corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR493882">493882</a></td>
<td>SQL Anywhere allows the user to control how the affects of the LOAD TABLE statement are logged for recovery purposes. Some new forms of recovery logging, namely CONTENT LOGGING and ROW LOGGING, are supported in version 11 of the server. These forms of logging require that the database be upgraded or created with the new server. Further, CONTENT LOGGING is the default used by SQL Anywhere when the data source for the LOAD TABLE statement is an expression or a client file. The LOAD TABLE statement would have failed with an error if the database was being run without a transaction log and the logging type in effect is not FILENAME LOGGING, the old logging type. This has been corrected so that the server now accepts all logging types as valid when the database is running without a transaction log because there is nothing to be logged in this scenario, thereby allowing LOAD TABLE to execute without error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494020">494020</a></td>
<td>In very rare cases, the server may have crashed on recovery, or failed to recover with other errors, most likely related to database page access. This problem was only possible if the server crashed in the midst of a checkpoint. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494029">494029</a></td>
<td>The -uc option (Start server in console mode) was not support by the server when run on MacOS systems. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494052">494052</a></td>
<td>When exiting an unchanged synchronization model, the MobiLink plug-in could have prompted to save it if a table mapping was selected and then the Events tab was switched to. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494151">494151</a></td>
<td>Text index operations on a database created without the default &quot;DBA&quot; user would have failed with an error. This has been fixed. A work-around is to create the database with the default &quot;DBA&quot; user. Note that it is not enough to add the user after the database is created. The work-around will only be sufficient if the following query returns &quot;1&quot;:</p>
<p>				select user_id from sysuser where user_name=&#39;DBA&#39;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494155">494155</a></td>
<td>UltraLite requires that each table have a primary index. Using SQL statements, it was possible to remove or rename this primary key, which would eventually have lead to a crash of the UltraLite application. Attempting to remove or rename a table&#39;s primary key will now result in an error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494182">494182</a></td>
<td>If a version 10.x database was updated using the version 11 beta, then the upgraded database would have been missing some system foreign key mappings. The problem was most evident when the customer tried to unload the upgraded database. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494184">494184</a></td>
<td>The SACommandBuilder class did not implement the QuoteIdentifier method. The QuoteIdentifier method has now been added.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494259">494259</a></td>
<td>A column could have been altered to have a different datatype, even when column was in a foreign key or constraint. This is now disallowed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494266">494266</a></td>
<td>The Create Trigger wizard would have generated a trigger with an invalid REFERENCING clause. The clause was created as a comment, so while the statement would have compiled, attempting to uncomment the REFERENCING clause and saving the trigger would have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494272">494272</a></td>
<td>Running a generated SQL file for a new remote database, for a DB2 consolidated, with a table with Graphic columns could have given a syntax error. The DB2 consolidated Graphic types would have been mapped to long binary types in the SA remote database, however a length for the column would have been specified resulting in a syntax error. A workaround would be to manually edit the generated SQL file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494280">494280</a></td>
<td>After installing an application from a Microsoft Windows Installer package that was created using the Deployment Wizard, if the application was created with Visual Studio 2005 C# and used System.Data.OleDb, updating the database would have generated an error for which there was no text. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494283">494283</a></td>
<td>If an INSERT statement contained a VALUES clause (Syntax 1), it should not contain WITH AUTO NAME. For example, consider the following statement:</p>
<p>				insert into tauto with auto name values(1,2,&#39;&#39;,4)</p>
<p>				WITH AUTO NAME was being accepted, but ignored, for these types of INSERT statements. This has been changed so that the statement will now give a syntax error.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494295">494295</a></td>
<td>Attempting to execute a query that used the CONTAINS clause on a table owned by another user would have failed with a &quot;table not found&quot; or &quot;Permission denied&quot; error. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_53.htm#CR494297">494297</a></td>
<td>When the Unload utility dbunload is used with a 10.0 or later database, the version of dbunload used must match the version of the server used to access the database. If an older dbunload is used with a newer server, or vica versa, an error is now reported. This is most likely to occur if dbunload connects to an already-running server. The same restriction applies to the Extraction utility dbxtract.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494310">494310</a></td>
<td>If a materialized view was dropped as the result of dropping a user, and this was done concurrently with other database requests, the server could crashed, or failed assertions. Database corruption was also possible. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494319">494319</a></td>
<td>If the Unload utility was used to perform an internal unload (-ii or -ix command line option) from a Windows client while connected to a Unix server, unloaded data files would have been created with a backslash character in the file name instead of being placed in a sub-directory of the server&#39;s current working directory. Furthermore, the generated reload.sql script referenced these data files using forward slashes, making it unusable without modification. A work around is to append a forward slash to the end of the directory name passed to the dbunload utility.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494356">494356</a></td>
<td>A QAnywhere .NET application could have hung if a QAManager API method was interrupted by an exception in one thread and another thread subsequently called a method on the QAManager that was interrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494364">494364</a></td>
<td>End-to-end encryption could have failed, or hang, the synchronization, although the probability of failure was quite low. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494414">494414</a></td>
<td>An application could have crashed if an invalid protocol option was used in the connection string (for example links=tcpip(invalid=value) ). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494431">494431</a></td>
<td>An error could have incorrectly been given when converting a string such as &#39;+123&#39; to one of the following types: INT, UNSIGNED INT, BIGINT, UNSIGNED BIGINT. A redundant &#39;+&#39; is permitted at the beginning of the string when converting to a number. Prior to the changes for Engineering case 392468 (10.0.1 build 3476), the conversion incorrectly gave an error for BIGINT and UNSIGNED BIGINT, but the correct behaviour was given for INT and UNSIGNED INT. In 10.0.1 build 3476 and later, the error was generated incorrectly for all of the above listed types. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494448">494448</a></td>
<td>Catalog information about a materialized view could have been inaccurate following execution of a REFRESH MATERIALIZED VIEW statement that had failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494449">494449</a></td>
<td>Under rare circumstances, the server could have crashed while executing a trigger defined for multiple events. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494450">494450</a></td>
<td>Global shared temporary tables were being unloaded as regular global temporary tables (ie non-shared). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494462">494462</a></td>
<td>When attempting to call a stored procedure in an ADO application, the OLE DB provider could have returned an &quot;invalid parameter type&quot; error. The order of the parameters in the procedure was not determined correctly by the provider. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494579">494579</a></td>
<td>When changing a column&#39;s DEFAULT value to &quot;No default value&quot;, a syntax error would have been reported. The plugin was incorrectly executing the statement ALTER TABLE t ALTER c DROP DEFAULT. This has been fixed so that the plugin now uses the correct syntax ALTER TABLE t ALTER c DEFAULT NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494583">494583</a></td>
<td>The Index Consultant wizard leaves the Interactive SQL utilirt (dbisql) is a state such that autocommit is on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494708">494708</a></td>
<td>It was possible for the server to fail assertions 201866 - &quot;Checkpoint Log: Page 0x%x is invalid&quot; or 201864 - &quot;Checkpoint log: Invalid page number on page 0x%x&quot;, for a database containing a corrupted page in the checkpoint log. This could have occurred in cases where it was safe for the server to ignore the corruption and recover the database. This has been fixed. The assertions never occurred in databases that didn&#39;t contain corruption.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494710">494710</a></td>
<td>Incorrect results could have been returned when there was an ORDER BY clause that caused a temporary table to be generated. For this to hace occurred there must have been a subquery expression in the select list that referred to a table that could be updated, and the query had to have been potentially updateable (FOR READ ONLY was not specified). </p>
<p>				This was corrected. The work-around is to specify FOR READ ONLY on the query.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494963">494963</a></td>
<td>When there were at least three joins in a query table expression and there was a reference from the ON condition to a column in a table at least three preceding, an incorrect syntax error may have occurred. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR494983">494983</a></td>
<td>If the last page of the transaction log was only partially written, perhaps due to a power failure, it was possible that the database would not have been able to recover on startup. It is most probable that this would have occurred on Windows CE. The likely error would have been a failure to validate the checksum on the page. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495001">495001</a></td>
<td>If an application made concurrent connections with both YES and NO boolean parameter values, the application could have crashed or the boolean connection parameters could have been interpreted incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495092">495092</a></td>
<td>Messages displayed by many of the utilities (ie dbunload, dbvalid, etc) may have been truncated. The message display buffer size has been increased to correct this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495093">495093</a></td>
<td>When modifying the SQL text for a materialized view, if the original materialized view had a refresh type of &#39;Immediate&#39;, then an error would have occurred while attempting to save the view. In addition, a temporary view (with a name ending in an IP address and timestamp) would have remained. Both of these issues have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495145">495145</a></td>
<td>HTTP or HTTPS synchronizations may have failed or hung, particularly on slow or low-quality networks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495146">495146</a></td>
<td>Synchronizations with may have failed or hung, particularly on slow or low-quality networks. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495147">495147</a></td>
<td>Synchronizations using end-to-end encryption may have failed or hung. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495225">495225</a></td>
<td>When editing a synchronization model, if one or more rows in the column mapping editor were marked for deletion, attempting to revert changes to the model could have caused Sybase Central to crash. The same problem could have occurred when attempting to select another item in the tree and answering &quot;No&quot; to the &quot;Do you want to save changes?&quot; dialog. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495231">495231</a></td>
<td>Executing a COMMENT ON INTEGRATED LOGIN statement could have caused the server to crash, or to fail an assertion, if executed concurrently with other commands. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495236">495236</a></td>
<td>There was a chance that the server would have crashed when making the connection to a remote server using one of the JDBC based Remote Data Access classes. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495240">495240</a></td>
<td>If an ALTER &lt;column&gt; statement encountered an error, subsequent statements could have erroneously failed with the error SQLE_SCHEMA_UPGRADE_NOT_ALLOWED, and/or the runtime could have experienced a crash at some later point. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495369">495369</a></td>
<td>The performance of some queries has degraded from what it was in version 9. Further optimizations have been added so that the performance has been restored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495375">495375</a></td>
<td>The result set returned when SAConnection.GetSchema(&quot;ProcedureParameter&quot;) was called, would have been in an unpredictable order. This has been fixed by adding an ORDER BY clause to the query statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495381">495381</a></td>
<td>If ulview.exe was used to build a USM file and a column was added to the primary key of a table after adding the same column to an index, would have resulted in protocol error when</p>
<p>				attempting to synchronize. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495396">495396</a></td>
<td>If a client connection went away (eg. the client application crashed), it was possible for the server to have crashed. This was very rare and timing-dependent. It has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495406">495406</a></td>
<td>In SQL Anywhere, the language supported for the definition of manual views is a proper subset of the SQL supported by the server. Further, the language permitted for immediate views is a proper subset of that supported for manual views. A new clause has now been added to the CREATE MATERIALIZED VIEW statement to allow users to validate the statement without actually creating the view.</p>
<p>				Syntax:</p>
<p>				CREATE MATERIALIZED VIEW </p>
<p>				...</p>
<p>				[ CHECK { IMMEDIATE | MANUAL } REFRESH ]</p>
<p>				Syntax Rules:</p>
<p>				When used, the CHECK clause has the following effect:</p>
<p>				1. The server performs the normal language checks that would be carried out if CREATE STATEMENT was executed without the clause and any errors generated are reported returned as usual.</p>
<p>				2. The server does not carry out the actual creation of the view which means that certain errors, such as the specified name already existing in the database, are not generated and the CHECK clause can be used even for an existing view. This feature can be useful when a user is considering changing the definition of an existing view but does not know if the new proposed definition will be accepted by the server.</p>
<p>				3. If CHECK IMMEDIATE REFRESH is used then the server will also verify that the syntax used is valid for an immediate view and will raise any appropriate errors.</p>
<p>				4. The server makes no changes to the database and nothing is recorded in the transaction log.</p>
<p>				5. The statement performs an implicit commit at the beginning of execution and a rollback at the end to release all locks obtained during execution.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495506">495506</a></td>
<td>SQL statements that are executed both before and after a SETUSER statement may have ncorrectly referred to the wrong user&#39;s objects. </p>
<p>				For example, if connected as user u1 and the following executed:</p>
<p>				select * from t;</p>
<p>				setuser u2;</p>
<p>				select * from t;</p>
<p>				then the second SELECT could have incorrectly returned the results for u1.t instead of u2.t. This has been fixed. Setting the database option max_client_satements_cached to 0 will workaround this problem.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495514">495514</a></td>
<td>The MobiLink system table ml_qa_status_history in a consolidated database would have grown without limit. This happened with all QAnywhere supported consolidated database types. This has been fixed so that when delete rules cause messages to be deleted in the consolidated database, the corresponding rows in the table ml_qa_status_history are now deleted. An existing ASA consolidated database will be automatically upgraded with the fix for this problem. For other consolidated databases, the MobiLink setup script for that database must be executed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495574">495574</a></td>
<td>The server could have crashed, or failed assertions, when scanning many values from an index containing many and/or wide columns. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495578">495578</a></td>
<td>The method ULDataReader.GetBytes() would have returned null if invoked for a binary(n), or a long binary, column containing an empty string (ie. a zero length not null value). This has been fixed. GetBytes() will now returns a zero length array of bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495677">495677</a></td>
<td>The builtin function regexp_substr() could, in some cases, have lead to the following non-fatal assertion failure: 106901 &quot;Expression value unexpectedly NULL in write&quot;. This assertion would have failed if the arguments to regexp_substr() were all expressions marked as not-NULL. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495686">495686</a></td>
<td>The server supports an extension to the MERGE statement that allows for an error be raised under certain circumstances. The server will now pay attention to the ERROR clause and generate an error as expected. In addition, the ERROR clause of the MERGE statement has been changed to to use RAISERROR instead.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495700">495700</a></td>
<td>As of Engineering case 408481, exists() subqueries were not flattened during rewrite optimizations if the subquery contained more than two tables in the FROM clause, and it was not known if the subquery returned at most one row. Now, for a subquery to not be flattened, it must also contain other nested subqueries.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495701">495701</a></td>
<td>The server allows an application to raise a customized error by means of the RAISERROR statement. The server also provides for a built-in global variable, SQLCODE, whose value can be examined to determine the specific error raised during the execution of the last statement on the current connection. The server will now report the correct user specified error number for SQLCODE instead of a fixed -631.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495702">495702</a></td>
<td>For some column data types in a consolidated database, a new remote database could have been created with inappropriate types. For example, a column with the ASE UNICHAR type was previously mapped to a LONG BINARY column type in a new SQL Anywhere remote database. This has now been corrected.</p>
<p>				A work around would be to deploy to a SQL file and edit the file using the recommended data type mappings that are documented in this section of the documentation:</p>
<p>				MobiLink - Server Administration &gt; MobiLink Data Mappings Between Remote and Consolidated Databases</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495705">495705</a></td>
<td>When the MobiLink Client was launched using the Dbmlsync Integration Component, it was possible to view the username and password in the dbmlsync command line in plain text. This has been corrected so that the Dbmlsync Integration Component will encrypt all the command line options and settings before passing them to dbmlsync. Dbmlsync will then decrypt the options and settings.</p>
<p>				Note, this fix does not apply to the Dbmlsync Integration Component running on Windows CE systems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495872">495872</a></td>
<td>If a query contained a &quot;GROUP BY GROUPING SETS&quot; or CUBE clause, it was possible for the server to fail the query with an assertion failure such as: 102501 &quot;Work table: NULL value inserted into not-NULL column&quot;. The problem would only have occurred for specific query access plans if there were no rows input to the GROUP BY. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495929">495929</a></td>
<td>Attempting to execute a query that references a proxy table that contained nchar or nvarchar columns, may have failed assertion 106808. The server was incorrectly setting the semantics to byte length, instead of character length, when describing nchar and nvarchar columns in proxy tables. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495943">495943</a></td>
<td>If the constant 0.0 (one decimal separator and all digits zero) was used in the select list of a SELECT statement, it would have been described as a numeric(0,0), and a SELECT statement with an INTO &lt;permanent_table&gt; clause would have failed with a syntax error. This has been fixed so that the constant 0.0 is now correctly described as numeric(1,0).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495956">495956</a></td>
<td>Executing the statement ALTER DATABASE &lt;dbfile&gt; MODIFY LOG ON, where no transaction log name was specified, would have disabled transaction logging for that database, equivalent to specifying &quot;... LOG OFF&quot;. This has been fixed. Including a transaction log filename in the statement would have behaved correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495960">495960</a></td>
<td>In very rare and timing-dependent situations, a cancelled backup could have caused the request, and ultimately the server, to hang. Typically, for this problem to have occurred, the cancel would have had to occur quite quickly after the backup began. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495962">495962</a></td>
<td>If an application issued a statement like &quot;DELETE FROM t WHERE c = @v&quot;, and the table t was a proxy table and @v was a variable of type nchar, nvarchar or long nvarchar, then the query would have failed with a &quot;not enough host variables&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR495980">495980</a></td>
<td>In order to optimize database access, the MobiLink scripts can be considered &quot;read-only&quot; when the -f option is specified. In this mode, the ml_global version of scripts would have been checked for changes before each synchronization. This has been corrected so that</p>
<p>				the check is only done once at startup.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496061">496061</a></td>
<td>If a BEFORE trigger changed an update back to the original value of the row, then the update would still have been logged, even though it was a no-op. This is now only done if a resolve trigger is fired, which matches the behaviour of previous versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496068">496068</a></td>
<td>If a DML statement modified a table, and also referred to the table indirectly through a non-inlined procedure call, then anomalies could have occurred. This has been fixed by forcing a work table for any DML statement that references a procedure call.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496071">496071</a></td>
<td>The server uses column statistics in order to estimate the number of rows that satisfy a given predicate. The column statistics are maintained as histograms that attempt to capture the data distribution of values in the database for a given column. The server could have incorrectly estimated the selectivity of BETWEEN predicates under certain circumstances. Note that a BETWEEN predicate might be inferred by the server if the query contains appropriate conjunctive predicates. As an example, &quot;c1 &gt;= 5 AND c1 &lt;= 10&quot; is semantically equivalent to &quot;c1 BETWEEN 5 AND 10&quot;. This estimation problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496087">496087</a></td>
<td>In rare instances, assertion failure 201822 &quot;Checkpoint log: attempt to allocate before recovery is complete&quot; could have been reported during database recovery. The problem has been fixed. If this problem is encountered, recovery with a server containing this fix should complete normally.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496094">496094</a></td>
<td>Using the REWRITE() function on a some forms of queries could have resulted in the server going into an infinite loop. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496102">496102</a></td>
<td>The MobiLink server would have sent user authentication status 4000 to a client if it was not able to run the user authentication scripts if errors had already occurred before it had a chance to invoke these scripts, or it could not successfully run the scripts due to errors when executing the scripts, or errors occurred internally in the server. Then the client would generated the error: &quot;Invalid MobiLink username, password, or script version&quot;. This has now been fixed. The MobiLink server will send the error code, 11310 and error message &quot;Unable to authenticate the user&quot; to the clients. The long description for this error code is &quot;The MobiLink server was not able to authenticate the user. Please check the MobiLink server message log for more details&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496106">496106</a></td>
<td>When deploying a Synchronization Model to a Microsoft SQL Server database, in which the name of the table owners were different then the current user&#39;s username, an error would have occurred. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496109">496109</a></td>
<td>Creating a synchronization model, where a synchronized remote table did not have all columns synchronized, would have caused a warning that that it was not compatible with an UltraLite remote database, since UltraLite publications can not use column subsets. However, such a synchronization model could still such as: [-10050] &quot;Expecting 8 columns in cursor, but found 7&quot;. This has been fixed. Now, synchronization models cannot be deployed to an UltraLite remote database unless all columns are synchronized in the synchronized remote tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496110">496110</a></td>
<td>Incorrect results may have been obtained for queries involving GROUP BY, ORDER BY and HAVING clauses, where no indexes exist to implement the grouping and the ordering, and where the grouping was such that the ordering could not have been implied Plans of this situation would have shown two temporary tables being present. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496113">496113</a></td>
<td>Under rare circumstances, during diagnostic tracing with the &#39;plans_with_statistics&#39; tracing level set, query plan information for a DML statement could have been missing. In such cases, viewing the plan for the statement in the Profiling Mode would not be possible. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496114">496114</a></td>
<td>Graphical plans with detailed statistics that contained an index scan would not have shown values for the statistic CacheReadIndInt, and the values for CacheReadIndLeaf would have included internal and index leaf page reads. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496131">496131</a></td>
<td>Graphical plans with detailed statistics could have contained invalid values for the statistic &quot;Estimated pages in cache&quot;. Under rare circumstances, invalid values could also have been displayed for the &quot;Estimated rows&quot;, &quot;Estimated pages&quot; and &quot;Estimated row size&quot; statistics. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496241">496241</a></td>
<td>If application profiling data was stored in an external tracing database, trigger names may not have been attached to the statements executed within the triggers. This has been fixed.</p>
<p>				Note that the statement data was still saved in the tracing database - it was just not linked to the trigger, and was displayed in the Profiling mode in the Details tab with</p>
<p>				&quot;Procedure or Trigger Name&quot; set to NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496242">496242</a></td>
<td>For Microsoft SQL Server&#39;s new datatypes VARCHAR(MAX), NVARCHAR(MAX), and VARBINARY(MAX), a new remote database could have been created with inappropriate types. Micrsoft&#39;s ODBC driver returns the same metadata for VARCHAR(MAX), NVARCHAR(MAX), and VARBINARY(MAX) as for TEXT, NTEXT, and IMAGE, but with a size of 0. This has been fixed so that new remote databases will now be created with correct types. A check has been added for a size of 0 on these particular data types in order to identify them correctly. </p>
<p>				A workaround would be to use datatypes TEXT, NTEXT, and IMAGE which correspond to the new datatypes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496281">496281</a></td>
<td>The ml_remote_id option would have incorrectly been set to the string value &#39;null&#39; when reset using the UltraLite plugin. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496407">496407</a></td>
<td>In exeptionally rare circumstances, the server may have crashed trying to collect information about database pages to be loaded (cache warming) the next time the database was started. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496429">496429</a></td>
<td>Graphical plans for Group By queries that were executed in parallel, did not report group by expressions or aggregates in the tooltip and details pane for GroupBy below Exchange.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496435">496435</a></td>
<td>An application using the iAnywhere JDBC driver on Unix systems, could have crashed when making a connection. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496438">496438</a></td>
<td>An application using the iAnywhere JDBC driver, that had many threads that were opening and closing connections or statements, may have crashed during garbage collection. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496439">496439</a></td>
<td>When a database application attempted to use a feature that had been secured, using the -sf server option, the error message that resulted did not state the correct feature name. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496450">496450</a></td>
<td>Attempting to execute an ALTER TABLE statement to add a computed column that involved a Java call would have caused the server to either fail to start the Java VM, or to hang. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496453">496453</a></td>
<td>The Connect Assistant would have failed to find servers if they were on a different subnet. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496526">496526</a></td>
<td>When inserting rows using an opened cursor, rather than using an INSERT statement, computed columns would not have been properly evaluated. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496538">496538</a></td>
<td>The Interactive SQL utility dbisql would have reported an internal error when attempting to open a SQL file which was larger than about 5 MB. This has been fixed so that it now an reports an error saying that there was not enough memory to open the file.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496545">496545</a></td>
<td>The Certificate Creation utility createcert would have generated invalid server certificates when signing them using a CA certificate generated by gencert (the previous certificate generation utility). Although the server certificate itself looked fine, clients would not have been able to properly identify the trusted CA certificate that signed it, and so it would have been rejected as untrusted, even when the client had the correct CA certificate in its list of trusted CAs. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496546">496546</a></td>
<td>Using a CONTAINS search in a SELECT INTO could have failed with an error, or caused the server to crash. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496551">496551</a></td>
<td>Changing a Materialized View and then refreshing the folder, would have caused the plug-in to throw a NullPointer Exception. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496567">496567</a></td>
<td>The MobiLink system table ml_qa_status_history in a consolidated database would have grown without limit. The problem only occurs for ASE consolidated databases. To correct this in existing ASE consolidated databases, the trigger ml_qa_repository_trigger needs to be changed by running the following script on the consolidated database after it has been initialized with the MobiLink setup script:</p>
<p>				delete from ml_qa_status_history where msgid not in (select msgid from ml_qa_repository)</p>
<p>				go</p>
<p>				commit</p>
<p>				go</p>
<p>				drop trigger ml_qa_repository_trigger</p>
<p>				go</p>
<p>				create trigger ml_qa_repository_trigger on ml_qa_repository for delete</p>
<p>				as</p>
<p>				delete from ml_qa_repository_props from deleted d, ml_qa_repository_props p</p>
<p>				where d.msgid = p.msgid</p>
<p>				delete from ml_qa_delivery from deleted d, ml_qa_delivery p</p>
<p>				where d.msgid = p.msgid</p>
<p>				delete from ml_qa_status_history from deleted d, ml_qa_status_history p</p>
<p>				where d.msgid = p.msgid</p>
<p>				go</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496568">496568</a></td>
<td>The iAS ODBC driver for Oracle could have shown poor performance when concurrent access was required by multi-threaded applications, such as the MobiLink server. This problem has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496715">496715</a></td>
<td>Very rarely, a query that used index only retrieval, together with snapshot isolation, may have returned a wrong result. This has been corrected</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496719">496719</a></td>
<td>When rebuilding, by unloading and reloading, a version 9.0 database that had Remote Data aAcess servers defined, there was a possibility that the reload would have failed with a &quot;capability &#39;aes_encrypt&#39; not found&quot; error. This problem has now been fixed.</p>
<p>				The workaround is to edit the reload script and change all occurrences of &#39;aes_encrypt&#39; to &#39;encrypt&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496762">496762</a></td>
<td>If a database being unloaded was created with accent sensitivity on, or &quot;french&quot;, the CREATE DATABASE statement included in the reload.sql file created by dbunload would not have contained the ACCENT RESPECT, or ACCENT FRENCH, clause. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496897">496897</a></td>
<td>An application using the iAnywhere JDBC driver would have leaked memory when making multiple DatabaseMetaData calls. The driver was not releasing references to Java strings. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496899">496899</a></td>
<td>An application using the iAnywhere JDBC driver would have leaked memory when executing statements that returned multiple result sets. Executing statements that return a single result set will not be affected by this problem. The driver was failing to implicitly close pending result sets for statements that returned multiple result sets. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496906">496906</a></td>
<td>The server, and client applications, would have leaked memory on Solaris SPARC 64-bit and Solaris x64 when negotiating a shared memory connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496921">496921</a></td>
<td>When deploying a synchronization model to an encrypted database, the encryption key would have been visible in the messages dialog, as well as in the scripts generated for the remote database. This has been fixed by trimming the DBKEY out of the connection string.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496937">496937</a></td>
<td>When run on Mac OS X systems, an IndexOutOfBoundsException could have been thrown when navigating the object tree. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR496969">496969</a></td>
<td>When the QAnywhere Agent was running on a device that was not connected to a network, each time a QAnywhere application queued a message the CPU usage increased slightly. This has been fixed so that now, when the device is not connected to a network, queueing a message uses about the same amount of CPU regardless of whether or not the QAnywhere Agent is running. Moreover, the required CPU usage stays constant as messages are queued.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497105">497105</a></td>
<td>If request log filtering by database was enabled using:</p>
<p>				call sa_server_option(&#39;RequestFilterDB&#39;, &lt;db-id&gt; )</p>
<p>				query plans from statements executed on other databases on the same server would still have appeared in the request log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497114">497114</a></td>
<td>Executing the system procedure sa_materialized_view_can_be_immediate() with the name and owner of an immediate materialized view that had a definition containing a LIKE &#39;x%&#39; predicate, could have failed with an error that the view was not eligible to be an immediate materialized view. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497117">497117</a></td>
<td>Applications could have crashed after specific sequences of PREPAREs and EXECUTEs, or OPENs, if the option max_statement_count was increased from its default value. In particular, for the crash to have occurred a connection must have done at least 50 PREPAREs, then at least 500 EXECUTEs or OPENs, then have had at least 50 statements concurrently prepared or opened. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497121">497121</a></td>
<td>In some cases, actual node statistics were not reported for &#39;hash filter&#39; and &#39;hash filter parallel&#39; in graphical plan with detailed statistics, including node statistics. </p>
<p>				Also, in some cases actual statistics were not reported for recursive unions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497256">497256</a></td>
<td>When calling the ODBC function SQLGetInfo(), the driver will return an indication that conversion from SQL_VARCHAR to SQL_WVARCHAR is possible using the ODBC CONVERT function.</p>
<p>				For example:</p>
<p>				rc = SQLGetInfo(hdbc, SQL_CONVERT_VARCHAR, (SQLPOINTER)&amp;bitmask, sizeof(bitmask), NULL);</p>
<p>				This will return with the SQL_CVT_WVARCHAR bit set in bitmask which indicates that the conversion is possible. However, attempting to do the conversion will return an error. This is illustrated by the preparing the following statement for execution:</p>
<p>				SELECT {fn CONVERT(Surname,SQL_WVARCHAR)} FROM Employees</p>
<p>				The error is &quot;[42000][Sybase][ODBC Driver]Syntax error or access violation&quot;.</p>
<p>				This problem has been fixed. Support has been added for conversion to types SQL_WCHAR, SQL_WLONGVARCHAR, SQL_WVARCHAR, and SQL_GUID.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497264">497264</a></td>
<td>In rare cases, an HTTP request with a SessionID may have caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497458">497458</a></td>
<td>Undefined errors could have occurred if ULDatabaseManager::CreateDatabase() was called with a null collation. This has been fixed so that a SQLE_INVALID_PARAMETER ULException will now be thrown for a null collation.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497467">497467</a></td>
<td>The unparsing of an alias was incorrect in some cases. The alias was represented as a &#39;*&#39; in an unparsed statement. This may have been observed in plans generated when using the -zx server command line option to log expensive queries. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497495">497495</a></td>
<td>The OUTPUT statement was writing DECIMAL numbers with thousands separators. This was an inadvertent change from previous versions and caused an ambiguity when writing ASCII files if the field separator was the same as the thousands separator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497501">497501</a></td>
<td>The server was ignoring the correlation name of columns in the column list of the INSERT statement. This has been fixed so that if the correlation name exists and it doesn&#39;t match the name of the INSERT INTO table, then the error (SQLSTATE_COLUMN_NOT_FOUND 52003 -143L) is now returned.</p>
<p>				Example:</p>
<p>				INSERT INTO R ( T.X, R.Y) values (1,2) will now return an error because the column T.X cannot be found.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497502">497502</a></td>
<td>If an application that was using Java in the database support spawned additional threads that were still running when the database was shut down, then the JVM would havel continued running until these additional threads shut down. This problem has now been fixed.</p>
<p>				Note, if the application needs these threads to be notified of the shutdown, then the application must register a shutdown hook with the Java VM.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497504">497504</a></td>
<td>If an application that was using Remote Data Access support executed a remote query that was very complex, then there was a possibility that the server would have crashed. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497511">497511</a></td>
<td>The diagnosis of invalid GROUP BY expressions has been enhanced.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_54.htm#CR497515">497515</a></td>
<td>The Interactive SQL utility dbisql could have crashed on startup if it been configured to enable source control support. The crash depended on using the default Windows source control system (i.e. NOT the &quot;custom&quot; option), and would only have occurred if the source control system asked dbisql to display a message in response to opening the source control project. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR497646">497646</a></td>
<td>If a database connection ended and the JVM stopped, the Java class finializers were not called, which is correct Sun JDK behaviour. If Java classes had opened network or JDBC connections to other servers or applications, then these connections were not closed as well. In order to close these connections, or to release other resources, the application can call the Java method System.runFinalizersOnExit( true ), which force the JVM to run the finalizers of all not finalized classes. Althrough the call is deprecated in JDK 1.2 and above, it will still work in these versions. In version 10 and above applications can also use shutdown hooks to release resources. A fix has been now made so that the finalizers now run correctly at JVM stop, if the above method has been called. If no class instance is created, and a resource assigned to a static member should be released, the application may use an Uninit class as in the sample below:</p>
<p>				public class SampleClass {</p>
<p>				private static Uninit uniniter = null;</p>
<p>				public static Connection conn = null; </p>
<p>				static { </p>
<p>				try {</p>
<p>				uniniter = new Uninit(); </p>
<p>				System.runFinalizersOnExit( true ); </p>
<p>				conn = DriverManager.getConnection( &quot;jdbc:sybase:TDS:RemoteServer:2638&quot;, props );</p>
<p>				}</p>
<p>				catch ( Exception e ) {</p>
<p>				System.out.println( &quot;Error: &quot; + e.getMessage() );</p>
<p>				e.printStackTrace();</p>
<p>				}</p>
<p>				}</p>
<p>				....</p>
<p>				}</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR497880">497880</a></td>
<td>The server could have failed assertion 202001 while executing a query, if a temporary table was scanned that contained a string longer than the database page size. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR497887">497887</a></td>
<td>If a 10.0 database, that had been initialized without jConnect support, was upgraded without explicitly requesting that jConnect support not be added, the upgrade would have failed. The upgrade attempted to insert duplicate rows into a system table. This has been fixed by having the insert use ON EXISTING SKIP.</p>
<p>				A workaround is to perform the upgrade and request that jConnect support not be added. This can be done using the &quot;-i&quot; option of dbupgrad, or with: ALTER DATABASE UPGRADE JCONNECT OFF</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR497932">497932</a></td>
<td>The 64-bit version of the OLE DB provider could have caused a page fault and terminated. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR497937">497937</a></td>
<td>The following problems with the OLE DB provider have been corrected:</p>
<p>				- conversion of multibyte strings to wide character strings (DBTYPE_WSTR) was not being done correctly for non-UTF8 character sets. </p>
<p>				- DBTYPE_BYREF parameters were not supported.</p>
<p>				- the provider would have crashed in the OLE DB Execute method when prepared statements did not have their parameter information set using the OLE DB SetParameterInfo method.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498031">498031</a></td>
<td>The MobiLink File Transfer utility (mlfiletransfer) did not send liveness packets. This meant that for downloads of large files, the MobiLink server would have timeouted the client. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498056">498056</a></td>
<td>Scripts can be created that use user-defined parameters that are denoted by the {ml u.parm} syntax. Some ODBC drivers have a problem though with how the MobiLink server translates the SQL statement which would pass the parameter with IN/OUT attributes. This can now be overcome by using the new notation {ml ui.parm}. The MobiLink server will now pass this parameter with IN attributes.</p>
<p>				A workaround previous to this new feature would be to code the script as a stored procedure call.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498183">498183</a></td>
<td>In very rare circumstances, the iAnywhere JDBC driver may have crashed when a connection was being closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498198">498198</a></td>
<td>In certain cases, altering a string column could have produced orphaned blobs. These orphans would have shown up as errors when a validation (dbvalid or VALIDATE statement) was run on either the database or the table. For this problem to have occurred, the table must have contained at least two string columns, with (at least) one column containing &quot;long&quot; strings, i.e., strings larger than approximately one database page. If a column other than the one containing long strings was altered to a size smaller than its inline amount, and then altered to a size larger than its inline amount, the long strings would have become orphaned. Note that the default inline amount for a CHAR column is 256. This has now been fixed.</p>
<p>				For example:</p>
<p>				CREATE TABLE test(col1 long varchar, col2 char(1000))</p>
<p>				// ... insert long data into col1</p>
<p>				ALTER TABLE TEST MODIFY col2 CHAR(10)</p>
<p>				ALTER TABLE TEST MODIFY col2 CHAR(1000)</p>
<p>				VALIDATE TABLE TEST</p>
<p>				A workaround to the validation failure is to rebuild the database using dbunload or the Unload wizard in Sybase Central.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498204">498204</a></td>
<td>The server could have crashed shortly after starting a database with dbspaces that had no deletes or updates performed on them. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498337">498337</a></td>
<td>Queries with complex WHERE condition containing at least one element of the form &quot;( col1 &gt; constant1 AND col1 &lt; constant2 ) OR expression&quot;, with constant1 &lt; constant2, may have incorrectly returned more rows. </p>
<p>				For example the following query will return rows with value 0 and 8 for column &quot;a&quot;:</p>
<p>				SELECT a FROM T1 </p>
<p>				WHERE</p>
<p>				( a &gt; 0 AND a &lt; 2 ) OR ( a &gt; 1 AND a &lt; 3 ) OR ( a &gt; 2 AND a &lt; 4 ) OR</p>
<p>				( a &gt; 3 AND a &lt; 5 ) OR ( a &gt; 4 AND a &lt; 6 ) OR ( a &gt; 5 AND a &lt; 7 ) OR</p>
<p>				( a &gt; 6 AND a &lt; 8 ) OR ( a &gt; 8 AND a &lt; 10 ) OR ( a &gt; 9 AND a &lt; 11 ) OR</p>
<p>				( a &gt; 10 AND a &lt; 12 ) OR ( a &gt; 11 AND a &lt; 13 ) OR ( a &gt; 12 AND a &lt; 14 )</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498343">498343</a></td>
<td>When the visual version of the Dbmlsync Integration Component activex was used on Japanese Windows XP, the font selected for the log window did not support Japanese characters. As a result any Japanese text printed to the log window was garbled. An appropriate font is now used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498393">498393</a></td>
<td>When sending diagnostic tracing data to a remote database, if the tracing database was stopped, or the connection to it was interrupted, before diagnostic tracing was stopped, the database server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498395">498395</a></td>
<td>In vary rare circumstances, a Solaris client application may have crashed when attempting to connect to a server. This would have occurred if the communications initialization code failed to allocate some memory. This has been fixed. The client connect request will now receive a -86 &quot;Client out of memory&quot; error in these instances.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498529">498529</a></td>
<td>A cursor using a temporary table and a procedure call could have resulted in a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498533">498533</a></td>
<td>The -onerror command line option was being ignored if the Interactive SQL utility was not connected to a database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498540">498540</a></td>
<td>When connected to a database mirroring system, viewing the Database Mirroring section of the Overview tab in Sybase Central would have displayed an incorrect value for the primary server&#39;s state file when the full path for the state file was specified on the server&#39;s command line. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498568">498568</a></td>
<td>If a user U1 with DBA authority granted permissions on a table or view to another user U2, and then DBA authority was revoked from U1, U2&#39;s permissions should have been affected immediately. Instead, this change did not appear until the database was restarted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498583">498583</a></td>
<td>The server would have rejected a SOAP request containing XML comments with a &#39;400 Bad Request&#39; status. This has been fixed. Comments are now ignored by the server.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498727">498727</a></td>
<td>Starting the server with the command line option -x none (or -x shmem), and no -xs option, causes the server to only listen for connections requests over shared memory. However, if the -z switch was also used in this case, messages about TCP initialization were still displayed. This has been corrected so that these messages will no longer be displayed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498793">498793</a></td>
<td>When the Interactive SQL utility was run in console mode, if there was an error fetching rows from a result set, the cause of the error (if known) was not being displayed. This has been fixed. Note that this problem existed only in console mode; when run as a windowed program, the full error information was displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498860">498860</a></td>
<td>If a database was backed up, and then an attempt to create a proxy table was made shortly after the backup finished, then there is a likely possibility that the server would have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498876">498876</a></td>
<td>Under very rare conditions, the server could have hang during a rowscan over a table that had character or binary data. For this problem to have occurred, the data must have been longer than the column&#39;s INLINE amount, which defaults to 256 bytes, for both BINARY and CHAR types. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR498902">498902</a></td>
<td>The value returned when calling property(&#39;MaxRemoteCapability&#39;) would have been 1 higher than the number of the last remote capability. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499112">499112</a></td>
<td>In certain cases where character set conversion was applied to character data, the server could have gone into an infinite loop, consuming nearly 100% of CPU usage. For this problem to have occurred, the source string must have either contained null bytes, or characters that were ill-formed or illegal in the database character set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499233">499233</a></td>
<td>The server may have got into an infinite loop trying to convert an invalid date, time or timestamp value to an integer. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499250">499250</a></td>
<td>When creating or altering a SERVICE that required a statement, a check was missing to ensure that the service was properly configured with either a SELECT or a CALL statement. A misconfigured service would have always returned a &#39;400 Bad Request&#39; HTTP status for all requests. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499252">499252</a></td>
<td>HTTP response headers were not set as expected if the SERVICE made a nested call to an inner procedure from where the sa_set_http_header() system procedure was called. Headers cannot be set by the inner procedure because the server has already sent the headers prior to the call. This has been fixed so that calling sa_set_http_header, when the HTTP headers have already been sent, will now result in a SQL error: Invalid setting for HTTP header.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499301">499301</a></td>
<td>When using the New Remote Tables command to add a table to a remote schema in a synchronization model, if the consolidated table had columns matching the timestamp column for timestamp-based download, or logical delete column for logical deletes, then an invalid column mapping would have been created. This would have caused script generation errors. This has been fixed. A work around would be to create a new sync model.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499313">499313</a></td>
<td>It would not have been possible to connect to a &quot;Generic ODBC&quot; database if the password contained any of the following characters: &quot;[]{}(),:?=!@&quot;. This has been corrected for all but the equals sign &quot;=&quot;, the rest are now allowed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499440">499440</a></td>
<td>The system function YMD(), may have returned an invalid date from the input arguments. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499484">499484</a></td>
<td>The comparison of two strings may not have worked incorrectly when using the UCA collation. For this problem to have occurred, the strings must have been longer than 1024 bytes, have been linguistically equal in the characters of the first 1024 bytes, but have been binary distinct. </p>
<p>				For example, on a UCA database:</p>
<p>				select if repeat(&#39;a&#39;, 1024) || &#39;a&#39; = repeat(&#39;a&#39;, 1024) ||&#39;b&#39;</p>
<p>				then &#39;equal&#39;</p>
<p>				else &#39;not equal&#39;</p>
<p>				endif</p>
<p>				would return &#39;equal&#39;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499504">499504</a></td>
<td>During Application Profiling in Sybase Central, attempts to specify a profiling log in the option &quot;Use The Profiling Information In The Following Profiling Log File As A Baseline For Comparison&quot;, of Profiling Settings tab of the Database Properties window, could have failed with an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499522">499522</a></td>
<td>If the Unload utility (dbunload) was started with the -ep command line option, but without -ar or -an, the prompt dialog box would have displayed the string &quot;Please enter the encryption key for ???:&quot;. This has been fixed. The string now reads &quot;Please enter the encryption key for the data files:&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499683">499683</a></td>
<td>The SQL Anywhere server performs security checks when executing a query to make sure that the user has the necessary permissions for the operation. Under certain circumstances, involving complex queries and/or views, the server could have incorrectly raised a permissions error when the operation should have been allowed. Conversely, the server could have failed to reject an operation that should not have been permitted. This has been fixed so tha the server now applies permission checks correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499702">499702</a></td>
<td>Queries using the set operators UNION, EXCEPT or INTERSECT, on tables with publications, may have returned a &quot;column/table &#39;x&#39; not found&quot; error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499874">499874</a></td>
<td>Only users with DBA authority were allowed to run the Index Consultant from Interactive SQL. This has been corrected so that users with DBA or PROFILE authority are now permitted</p>
<p>				to use the Index Consultant.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499897">499897</a></td>
<td>When a remote procedure call was made, if it contained a bigint parameter then an incorrect value for the bigint parameter would have been sent to the remote server. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499956">499956</a></td>
<td>If queries used an index, where the index keys were long, then in some situations, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499958">499958</a></td>
<td>Pasting more than a couple of million characters into dbisql could have caused the editor to become unresponsive, and eventually report an out of memory error. This has been fixed so that a check is now done to determine if there is enough memory to insert the text and display an error message if there is not.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499959">499959</a></td>
<td>With ASA databases the QAnywhere server caches prepared statements to avoid re-preparing them on each statement execution. During periods of high activity however, the server could have reported &quot;Resource governor for &#39;prepared statements&#39; exceeded&quot;, followed by the failed execution of a SQL statement. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR499969">499969</a></td>
<td>When the event of a download_cursor, or a download_delete_cursor, in a MobiLink server synchronization logic was written as:</p>
<p>				{call procedure_name( ?, ? )}</p>
<p>				for consolidated databases running on an Oracle server, the iAS ODBC driver for Oracle may have given the error:</p>
<p>				ORA-06553: PLS-306: wrong number or types of arguments in call to &#39;procedure_name&#39; </p>
<p>				if the stored procedure returned a result set and the word, &quot;call&quot; was not all in lower-case. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500005">500005</a></td>
<td>During diagnostic tracing, nonvolatile statistics could have been recorded incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500007">500007</a></td>
<td>Under rare circumstances, a server running diagnostic tracing could have crashed if the database that was being profiled contained triggers. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500017">500017</a></td>
<td>The ATTACH TRACING statement could have failed if the database character set was different from the OS character set, and the server name and/or database name of the tracing database contain multibyte characters. This has been fixed for cases when conversion between the OS character set and database character set is not lossy.</p>
<p>				Note that using multibyte characters in server and/or database names is not recommended for profiling, especially if the tracing database is started on a different physical server than the database being profiled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500074">500074</a></td>
<td>A join that included tables containing long strings (roughly one database page or greater in size) may have taken a disproportionate amount of time to complete, or to respond to a cancel. This delay would have increased as the number of rows containing long string data increased. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500076">500076</a></td>
<td>The use of the DISH SERVICE as the SOAP endpoint for SQL Anywhere applications is now enforced. A SOAP SERVICE may now be configured with a METHODS &#39;NONE&#39; clause to stipulate that no HTTP methods directed to the given service will be processed. Access to the given SOAP service is only processed through a DISH service that exposes the given SOAP service (i.e. by stipulating a GROUP clause).</p>
<p>				In addition, the METHODS clause for a DISH service may now be modified to only allow the POST HTTP method (i.e. METHODS &#39;POST&#39;) which effectively disables access to the WSDL (which is returned by an HTTP GET request), but permits the processing of SOAP requests (which use HTTP POST). </p>
<p>				Note that SQL Server application developers should test intended SOAP client toolkits to ensure that an HTTP GET request is not made to the DISH service prior to issuing the SOAP request. Some clients may do this to determine whether or not the definitions to the SOAP operations have changed.</p>
<p>				- New METHODS value:</p>
<p>				NONE</p>
<p>				The NONE specifier, when provided, must be the only value in the METHODS clause, e.g.: METHODS &#39;NONE&#39;. For ease of use, &#39;NONE&#39; is applicable for any SERVICE. It is intended to be used only for SOAP services, it is not a substitute for SERVICE DISABLE, since a SOAP SERVICE with METHODS &#39;NONE&#39; will still process requests proxied through a DISH service. When a SOAP service is disabled, it will not process any request through any service.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500092">500092</a></td>
<td>Inserting a string of length L, where L was slightly less than 8*db_property(&#39;pagesize&#39;) (i.e. within about 13 bytes), into a compressed column could have caused a server crash, or assertion 202000 (&quot;Invalid string continuation at row id ...&quot;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500123">500123</a></td>
<td>An embedded SQL application may have hung if all of the following conditions were true:</p>
<p>				- the applicaiton had registered a DB_CALLBACK_CONN_DROPPED callback using db_register_a_callback()</p>
<p>				- the application called db_fini to free the resources associated with a sqlca.</p>
<p>				- there was a least one active connection associated the sqlca (i.e. there was a connection that had not been disconnected)</p>
<p>				This was more likely to occur on a Unix system (including Linux and Mac OSX), than on Windows systems. This has been fixed.</p>
<p>				A work-around is to ensure that all connections are disconnected prior to calling db_fini();</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500125">500125</a></td>
<td>When using the JDBC 3.0 version of the iAnywhere JDBC Driver and calling the method DatabaseMetaData.getColumns(), a result set with only 18 columns would have been returned, instead of 22 columns. Note that the extra 4 columns are in effect meaningless since they provide metadata for Ref types which are not supported in the iAnywhere JDBC driver. Nevertheless, the problem has now been fixed and the method now returns a result set with 22 columns. Using the JDBC 2.0 version of the iAnywhere JDBC Driver will continue to return a result set with 18 columns as expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500128">500128</a></td>
<td>The server could have crashed with a division by 0 error when specific repeat() expressions appearred in a query. For this problem to have occurred, the expression in the repeat() function must have specified an NCHAR string literal of zero-length (i.e., N&#39;&#39;). The query must also compare the strings in some fashion.</p>
<p>				For example:</p>
<p>				select repeat(N&#39;&#39;,row_num) x</p>
<p>				from rowgenerator</p>
<p>				group by x</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500302">500302</a></td>
<td>A SQL Anywhere SOAP SERVICE Soapfault was returned with the HTTP response header &quot;Content-Type: text/html&quot; when the given service had encountered a protocol or parse error. This has been fixed; a &quot;Content-Type: text/xml&quot; is now returned.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500319">500319</a></td>
<td>On the Index Size tab of the Index Consultant, radio buttons for usable options were displayed greyed out as if they were disabled. Other options corresponding to radio buttons were enabled, and could have been selected. This has been corrected so that the options do not appear greyed out when they are enabled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500354">500354</a></td>
<td>When running with a screen resolution of 800x600, the Tracing Wizard would not have fit onto the screen. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500482">500482</a></td>
<td>Incorrect diagnostics could have been generated when there were comma-specified joins followed by operation-specified joins (LEFT OUTER JOIN, for example), and an ON condition in the operation-specified joins referenced a column from the comma-separated joins. This was now bee corrected.</p>
<p>				A work-around is to place the comma-separated table expressions in parentheses. For a query such as:</p>
<p>				SELECT * FROM tab1, tab2, tab2 LEFT OUTER JOIN tab4 ON tab4.x = tab1.y</p>
<p>				the work-around is to rewrite the query as:</p>
<p>				SELECT * FROM ( tab1, tab2, tab2 ) LEFT OUTER JOIN tab4 ON tab4.x = tab1.y</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500489">500489</a></td>
<td>Attempting to start the server may have failed with the error &quot;License file not found&quot; if the followng conditions were true:</p>
<p>				- the server was running on one of the Unix platforms (Linux, Solaris, AIX, HP-UX, or Mac OSX), and the executable was located in a nonstandard location. i.e. it is not in bin32 or bin64 directory</p>
<p>				- the associated license file was in the same directory as the server (which is where it should be)</p>
<p>				- the PATH environment variable did not contain the directory where the executable was located</p>
<p>				- the support libraries (libdbserv10_r.so, libdbtasks10_r.so, etc) were located in a different directory than the executable</p>
<p>				- the user&#39;s current working directory was not the same directory as where the executable was located</p>
<p>				- when attempting to start the server a full or relative pathname to the executable was specified</p>
<p>				This has been fixed. The server will now start correctly.</p>
<p>				Work arounds include:</p>
<p>				- add the directory that contains the server executable to the PATH</p>
<p>				- make the executable directory the current directory before starting the server</p>
<p>				- name the directory that contains the executable bin32 or bin64</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500501">500501</a></td>
<td>If one of the encryption componentss (ie dbecc10.dll, dbrsa10.dll, dbfips10.dll) became corrupted, it was possible for the server to return an error the first time it was used, and then crash the second time. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500505">500505</a></td>
<td>After creating a new tracing database using the Tracing Wizard, the Create Database button remained enabled. This has been corrected so the the button is now disabled after the database is created successfully, and re-enabled only if database file name, user name, or password fields are changed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500507">500507</a></td>
<td>If a proxy table referred to a table in a DB2 database and had a BLOB column, then attempting to insert data into the BLOB column would have caused syntax errors. Note that this problem did not exist if the column was instead defined as &quot;LONG VARCHAR FOR BIT DATA&quot;, which more closely mapped to the SA &quot;long binary&quot; datatype. Nevertheless, the problem with inserting into DB2 BLOB columns has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500517">500517</a></td>
<td>If the AppInfo connection parameter contained non-ASCII characters, and the database charset and the OS charset were different, the non-ASCII characters would have appeared mangled when printed out to the console as part of an abnormal disconnection message, or when the connection was being established if the -z switch was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500522">500522</a></td>
<td>When running the server on multicore Intel x64 hardware, with 64 bit operating systems, the server could have missed opportunities for optimization and intra-query parallelism. This has been fixed. Note, using 32 bit software on these same platforms did not exhibit these problems.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500523">500523</a></td>
<td>After executing:</p>
<p>				create login policy test1 password_expiry_on_next_login = on;</p>
<p>				create user u1 identified by sql login policy test1 force password change off;</p>
<p>				attempting to connect to u1 using DBISQL caused a prompt for a new password. The &quot;force password change off&quot; clause on the CREATE USER statement should have prevented this prompt. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500653">500653</a></td>
<td>If a table participated in a publication, it was possible for the server to have failed assertion 100905 (&quot;Articles on the table use do not match those on the table definition&quot;) while processing an UPDATE statement that affected the table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500656">500656</a></td>
<td>The server may have returned an invalid numeric value when a value of type Double was cast to a numeric type that was too small. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500661">500661</a></td>
<td>When the database option &quot;Blocking&quot; was set to &quot;Off&quot;, an attempt to read rows using the SQL Anywhere OLEDB provider, from a table that has some or all of its rows locked, would have resulted in the error DB_S_ENDOFROWSET being returned, which means &quot;no more rows&quot;. The error that should be returned was DB_E_TABLEINUSE (&quot;The specified table was in use&quot;). This problem has been fixed. Now, when ExecuteReader is called, the error &quot;User &#39;DBA&#39; has the row in &#39;Customers&#39; locked&quot; is reported.</p>
<p>				The following .NET example can be used to illustrate the problem. Suppose another connection is inserting rows into the Customers table. Then the following example should result in an error when &quot;blocking&quot; is &quot;off&quot;.</p>
<p>				OleDbConnection conn2 = new OleDbConnection(&quot;Provider=SAOLEDB;DSN=SQL Anywhere 10 Demo&quot;);</p>
<p>				conn2.Open();</p>
<p>				OleDbTransaction trans2 = conn2.BeginTransaction(IsolationLevel.ReadCommitted);</p>
<p>				OleDbCommand cmd2 = new OleDbCommand(&quot;SELECT FIRST Surname FROM Customers&quot;, conn2, trans2);</p>
<p>				OleDbDataReader reader2 = cmd2.ExecuteReader();</p>
<p>				while (reader2.Read())</p>
<p>				{</p>
<p>				String s = reader2.GetString(0);</p>
<p>				MessageBox.Show(s);</p>
<p>				}</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500700">500700</a></td>
<td>Applications using ODBC.Net could not have been executed with the Runtime Server. The error displayed when attempting to execute a query would have been:</p>
<p>				Triggers and procedures not supported in runtime server</p>
<p>				This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500825">500825</a></td>
<td>Attempting to execute queries where the number of join operations exceeded 15, could have caused the UltraLite runtime to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500837">500837</a></td>
<td>In specific circumstances, the server could have crashed while processing a hash join. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500900">500900</a></td>
<td>A validation check was missing when a SOAP request was made through a DISH service endpoint. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR500905">500905</a></td>
<td>The Options dialog for the SQL Anywhere Explorer did not display properly when using a large font. This has been fixed by changing the size and location of some of the controls.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR523709">523709</a></td>
<td>The server may have crashed when more than one Unload utility (dbunload) was run concurrently with internal rebuild (ie. -an, -ar, -ac). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR523745">523745</a></td>
<td>The server automatically maintains columns statistics, in the form of histograms, to capture the data distribution. Under some specific circumstances, the server could have applied incorrect modifications to the automatically maintained statistics, resulting in potentially poor query access plans. Symptoms of this problem would often have been the presence of duplicate boundary values in the result set of system procedure sa_get_histogram(). This has been corrected by an update to the server&#39;s histogram maintenance algorithms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR523757">523757</a></td>
<td>The QAnywhere Server did not always report errors after processing a badly formatted Server Management Request (SMR). The SMRs that suffered from this problem were those that contained any XML elements that did not exactly match those expected by the server (ie, misspelled elements, or elements not included in the DTD), in which case the processing of the request would fail silently. This has been fixed so that the QAnywhere server will now report an error whenever it comes across an unrecognized XML element. The QAnywhere server will now also validate the XML elements in a case insensitive way. As long as the opening tag matches the closing tag, the case is ignored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528330">528330</a></td>
<td>If an application closes a connection that had statements or prepared statements open, then there was a very small possibility that the application would have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528358">528358</a></td>
<td>If a query plan had a Hash Group By that used a low memory strategy, and there was a SUM() aggregate over a NUMERIC or DECIMAL value, then the wrong answer could have been returned. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528359">528359</a></td>
<td>When a hash-based execution strategy was used for INTERSECT, EXCEPT, or a semi-join, it was possible for the wrong answer to be returned in specific situations when the operator used a low-memory execution strategy. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528430">528430</a></td>
<td>Calling the methods ExecuteReader or ExecuteScalar with parameters, would have resulted in a memory leak in the 2.0 provider. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528627">528627</a></td>
<td>Selectivity estimates could have been incorrectly updated if a query with predicate of the form &quot;T.x &lt;op&gt; expr( T.y ) or expr( T.y ) &lt;op&gt; T.x&quot; was executed. These </p>
<p>				incorrect predicate selectivity estimates could have lead to lower quality query access plans. When &quot;expr&quot; was an expression referencing one (or more) columns of table with correlation name T, selectivity estimates could have be updated with the assumption that &quot;expr(T.y)&quot; was constant for the duration of the query. This has been fixed.</p>
<p>				For example:</p>
<p>				SELECT t.x, t.y, t.z</p>
<p>				FROM tx AS t</p>
<p>				WHERE t.x &lt;= t.y + 1</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528650">528650</a></td>
<td>If the precision for a DECIMAL or NUMERIC column was greater than 30, then SQL Remote and RepAgent would only have replicated up to 30 digits in accuracy to a remote or secondary database, and the Log Translation utility (dbtran) might only have written 30 digits in accuracy to a SQL file. The rest of the digits would have been replaced by zero. This problem has been fixed. The accuracy of the replicated/translated data should now be as high as it was stored in the original database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528793">528793</a></td>
<td>A new connection and database property called &quot;Authenticated&quot; has now been added. The use of these two new properties is as follows:</p>
<p>				For OEM servers, once an application has executed the &quot;SET TEMPORARY OPTION CONNECTION_AUTHENTICATION=&quot; statement, the application can then turn around and execute a &quot;SELECT connection_property( &#39;Authenticated&#39; )&quot; statement. If the result is &quot;YES&quot;, then the connection was properly authenticated and all is well. If, however, the result is &quot;NO&quot;, then the application can execute a &quot;SELECT db_property( &#39;Authenticated&#39; )&quot; statement. If the result of this statement is &quot;YES&quot;, then the database has been properly authenticated and the connection authentication failed because the CONNECTION_AUTHENTICATION string is incorrect. If, on the other hand, the result of querying the Authenticated database property is &quot;NO&quot;, then the connection authentication failed because the database has not been properly authenticated. In this case, the customer should examine the DATABASE_AUTHENTICATION string to determine what is wrong.</p>
<p>				For non-OEM servers, the result of querying these new properties will always be &quot;NO&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528822">528822</a></td>
<td>When performing database recovery, or running a mirror server, it was possible that index entry cleanup routines could have been called for updates that did not modify the affected index. This could have had a significant affect on performance. It was possible that this might have lead to assertion failures as well. This inappropriate cleaning has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528838">528838</a></td>
<td>The server could have crashed, or failed assertion 201501 (&quot;Page for requested record not a table page or record not present on page&quot;), when inserting rows into a table with a clustered index that previously had rows deleted from it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR528978">528978</a></td>
<td>The SQL Remote Message Agent (dbremote) could have displayed the error, &quot;SQL statement failed: (-260) Variable &#39;n?&#39; not found&quot;, where ? was an integer greater than or equal to 10, if a replication table contained more than 9 columns (they could have beeb CHAR, BINARY or BIT type columns) with a data length greater than 256 bytes. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529055">529055</a></td>
<td>Attempts to connect to a database using connection strings containing a database name longer than 250 bytes, would have failed, even if the database name matched in the first 250 characters. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529075">529075</a></td>
<td>When trying to use the database tools library on HP-UX (PARISC 32 or 64) to read a database created with a version prior to 10.0, the application would have failed with the error &quot;could find or load the physical store DLL&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529193">529193</a></td>
<td>The server could have generated poorly performing query access bad plans, due to bad index statistics, and queries involving parallel index scans could have returned incorrect results. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529198">529198</a></td>
<td>The Index Consultant could have crashed when invoked on a version 11 database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529201">529201</a></td>
<td>Under rare circumstances, the server could have crashed if a DML statement was executed while diagnostic tracing was being stopped by the DETACH TRACING statemented. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529203">529203</a></td>
<td>The changes made for Engineering case 495396 inadvertently caused database names to be limited to a length of 40 bytes. This has been fixed so that database names are now correctly limited to 250 bytes.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529816">529816</a></td>
<td>The changes for Engineering case 499958 did not cover all of the possible pasting actions, and the Interactive SQL utility could still have crashed in some cases. These other cases have now been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529826">529826</a></td>
<td>The user count in the overview database diagram could have been incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529852">529852</a></td>
<td>If a client disconnected at a specific time interval, possibly due to liveness timeout, during a positioned update statement, then the server could have failed assertion 101704 - &quot;Unexpected state in positioned update error&quot;. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR529855">529855</a></td>
<td>Sybase Central would have crashed with a NullPointerException if a message&#39;s property sheet was opened and the message had properties with null values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530005">530005</a></td>
<td>The provider&#39;s implementation of the GetParameterInfo() method did not indicate whether parameters in a command were input (DBPARAMFLAGS_ISINPUT), output (DBPARAMFLAGS_ISOUTPUT), or both. </p>
<p>				Examples of such commands are:</p>
<p>				INSERT INTO TestTable (ID,Name) VALUES(?,?) </p>
<p>				?=CALL TestProcedure(?,?)</p>
<p>				This problem has been fixed. The provider now returns the correct settings. A work around is to use the SetParameterInfo() method to set the DBPARAMFLAGS_ISINPUT or DBPARAMFLAGS_ISOUTPUT flags in the DBPARAMBINDINFO structure.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530027">530027</a></td>
<td>Under rare circumstances, the server could have crashed while generating graphical plans with detailed statistics, or graphical plans for diagnostic tracing with at least one tracing level of type PLANS_WITH_STATISTICS. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530039">530039</a></td>
<td>When a connection is unexpectedly terminated, a message is displayed in the server console containing the AppInfo string for the client. This message was incorrectly being truncated at 255 bytes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530041">530041</a></td>
<td>When an SACommand object&#39;s Connection property was null, and the methods ExecuteNonQuery, ExecuteReader or ExecuteScalar were called, a wrong error message would havew been given: &quot;Unable to load DLL &#39;dbdata.dll&#39; : The specified module could not be found.&quot;</p>
<p>				For example:</p>
<p>				SACommand cmd = new SACommand();</p>
<p>				cmd.CommandText = &quot;UPDATE customers SET name=&#39;1&#39; WHERE name=&#39;1&#39;&quot;;</p>
<p>				cmd.ExecuteNonQuery();</p>
<p>				This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530054">530054</a></td>
<td>When using CSCONVERT() to convert a string to UTF16, incorrect results could have been produced. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530124">530124</a></td>
<td>SQL Anywhere allows login policies to be assigned to users. If a non-existent policy name was specified on the CREATE USER or ALTER USER statement, the server would have given a misleading error, or no error, respectively. This has been fixed so that the server now generates a &quot;login policy not found&quot; error in each case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_55.htm#CR530125">530125</a></td>
<td>SQL Anywhere allows the COMMENT ON LOGIN POLICY statement to be used in order to store remarks on login policies in the database. Dropping a login policy would have failed to drop the corresponding comments from the catalog as well. This has been fixed so that the server now deletes remarks when a login policy is dropped.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530126">530126</a></td>
<td>SQL Anywhere allowed the use of the system procedure sa_get_user_status() to obtain sensitive information about all users in the database, regardless of whether the user invoking the procedure had DBA authority. This has been corrected so that the server now restricts the result set to one row corresponding to the current user when invoked by a user without DBA privileges. Users with DBA authority are now provided a result set with one row for each user in the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530273">530273</a></td>
<td>If there were more than 100 connections actively using Java in the database support at the same time, then the JVM would have crashed, or the server could have hung. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530287">530287</a></td>
<td>Indexes containing values longer than approx 250 bytes could have become corrupt when an entry was deleted from the index. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530302">530302</a></td>
<td>Attempting to executing a batch which did not take a host variable, but included the :var syntax, could have resulted in a communication error. The :var syntax can be used in a CREATE or ALTER SERVICE statement. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530309">530309</a></td>
<td>the component that displayed an explanation of the selected connection parameter on the &quot;Advanced&quot; page of the &quot;Connect&quot; dialog, was unreasonably short on Japanese systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530318">530318</a></td>
<td>When diagnostic tracing was enabled, with PLANS or PLANS_WITH_STATISTICS as the tracing type, some plans or cursor information could have failed to have been saved. Alternatively, some plans that did not fit the timing cut-off in ABSOLUTE_COST or RELATIVE_COST_DIFFERENCE conditions, could have benn incorrectly saved. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530339">530339</a></td>
<td>If an application had a connection enlisted in Microsoft&#39;s Distributed Transaction Coordinator (DTC), and it issued a commit on the distributed transaction, then there was a chance the server would have hung when a request to enlist in the DTC came in at the same time as the two phase commit. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530427">530427</a></td>
<td>The table selection page of the Export wizard contained two controls with the same mnemonic (&#39;e&#39;). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530533">530533</a></td>
<td>The detailed results from the &quot;Test Connection&quot; tool in the &quot;Connect&quot; dialog could have contained corrupt characters when running on Windows systems. This would have occured when the language for non-Unicode programs (i.e. the &quot;system locale&quot;) was set to something other than English (e.g. Japanese), and the machine&#39;s location was set to a country which in which English is spoken (e.g. United States). The non-English characters were corrupted. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530534">530534</a></td>
<td>The changes made for Engineering case 491400, to correct a problem with the marquee in the overview panel flashing excessively when connected to a MobiLink server, introduced drawing artifacts when the horizontal scroll bar was used to move the marquee. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530539">530539</a></td>
<td>Pressing ALT+I in the &quot;Add to Favorites&quot; dialog did not set the focus to the list of favorites folders. This has been corrected so that now it does.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530576">530576</a></td>
<td>The http_encode() function was not encoding the 0x1f character. This has been fixed. This character is now encoded to &quot;%1F&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530579">530579</a></td>
<td>A new MobiLink server option, -vo, now shows SQL passthrough activity in the MobiLink server. Prior to this option it was impossible to know what was happening on the server when debugging SQL Passthrough.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530587">530587</a></td>
<td>When viewing the server messages from the SQL Anywhere Console utility (dbconsole0 or from the Sybase Central, there was a possibility that messages could have been duplicated or lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530594">530594</a></td>
<td>Closing a ResultSet object may, in very rare cases, crash the iAnywhere JDBC driver. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530596">530596</a></td>
<td>If a multi-threaded JDBC application attempted to make a connection on one thread while the Java VM was shutting down, there was a chance that the application would have crashed. Note that this problem was specific to Unix platforms only. The problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530597">530597</a></td>
<td>The option to continue executing statements after encountering an error with an Interactive SQL statement (such as INPUT, OUTPUT, READ, PARAMETERS, DESCRIBE) was not given. Now it is. This problem did not affect normal SQL statements.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530710">530710</a></td>
<td>Executing an INSERT or an UPDATE that fails, could, in some cases, have caused the database server to fail an assertion. A specific assertion that was likely to have been seen as a result of this failure was: 201501 - &quot;Page for requested record not a table page or record not present on page.&quot; For this problem to have occurred, the failing INSERT or UPDATE must have been to a table that had blob columns containing data less than approximately one database page in length, but longer than the column&#39;s inline amount. This has now been corrected.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530736">530736</a></td>
<td>The changes for Engineering case 491180 (enable write through on CE) introduced a dependency on the file note_prj.dll, which may not have been included on non-standard Windows CE devices. On these devices, the server may have failed to start with an error that it could not find the server or one of its components. The Standard Windows Mobile devices were not affected. This has been corrected and note_prj.dll is now loaded dynamically, and if it is not found, the server will not enable write through on pre CE 5 devices.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530776">530776</a></td>
<td>When a database created by a newer version for SQL Anywhere (eg version 11) was started by an older version of SQL Anywhere (eg version 10), the server would have read some pages, other than the definition page, from the database before verifying that the capabilities of the file and server were compatible. The server now tests the capability bits of a database file against the capabilities supported by the server sooner in the database startup process. There are no known user-visible effects caused by checking the capabilities later, other than when starting an encrypted database created by newer software, the server will no longer prompt for an encryption key before reporting that the capabilities are incompatible.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530790">530790</a></td>
<td>When running the Application Wizard, Sybase Central would have failed to connect to the tracing database if the server had been started with broadcast ignored (-sb 0). This has been corrected. Sybase Central now will include the machine name and port in the connection string when attaching to the tracing database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530917">530917</a></td>
<td>An application could have hung when opening a pooled connection. The hang was as a result of two problems: </p>
<p>				1. The provider was incorrectly calculating a very long timeout period. </p>
<p>				2. Dropped connections were not being recycled.</p>
<p>				These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530920">530920</a></td>
<td>During diagnostic tracing with at least one tracing level of type optimization_logging_with_plans, an incorrect row size could have been reported for a table that had been created immediately before the statement referencing the table was executed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530923">530923</a></td>
<td>Occasionaly, a DB_E_BADACCESSORHANDLE error would have been returned by the OLE DB IMultipleResults::GetResult method. This error could have occurred if the DBPARAMS structure that was passed to the ICommand::Execute method was disposed by the client before all the result rowsets from a stored procedure call were returned by calls to the GetResult method. On the final call to GetResult, output parameters may have become available. As a result, the DBPARAMS structure was required to be intact for each call to GetResult. This problem has been fixed. When Execute is called, if it is determined that there are no output parameters, then the DBPARAMS structure will be ignored on subsequent calls to GetResult.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530930">530930</a></td>
<td>The bold title text that appears on the &quot;Advanced&quot; page of the &quot;Connect&quot; window was not displayed consistently. Specifically, the text (e.g. &quot;AppInfo [APP]&quot;) would not have been displayed if the Connect Assistant was not initially visible when the &quot;Connect&quot; window was opened, and was then made visible before the &quot;Advanced&quot; page was initially selected. This has now been fixed, as well as a fix for an intermittent problem that caused the description field at the bottom of the &quot;Advanced&quot; page from being too short to display more than one line.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530954">530954</a></td>
<td>The Interactive SQL utility, (as well as other adinistration tools, such as Sybase Central and the SQL Anywhere Console) may have failed to start on newer Linux systems including Linux Red Hat Enterprise 5. These Administration Tools rely on libXp.so.6 which may not have been installed by default. For example, installing the following package solves the problem on RHE5: </p>
<p>				libXp-1.0.0-8.1.el5.i386 &quot;X Org X11 libXp runtime library&quot;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR530994">530994</a></td>
<td>The SQL Anywhere server allows for the creation of tables with a very large number of columns and/or indexes. The speed at which the server processes operations involving such large schemas has now been significantly improved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531081">531081</a></td>
<td>The changes for Engineering case 486744 introduced a problem where the server could have crashed while executing a BEFORE UPDATE row level trigger. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531094">531094</a></td>
<td>The installer may failed on some versions of Linux. Symptoms may have ncluded incorrect reporting of available disk space, and messages such as:</p>
<p>				tail: `-1&#39; option is obsolete; use `-n 1&#39;</p>
<p>				Try `tail --help&#39; for more information.</p>
<p>				An error occurred while attempting to extract files in /opt/sybase/&nbsp;</p>
<p>				The way in which the head and tail utilities were being invoked by the installer was incompatible with some older versions of the Gnu head and tail utilities included on Linux. This has been fixed by replacing the use of head and tail in the setup script with appropriate sed commands.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531126">531126</a></td>
<td>The &quot;Connect&quot; window was displayed on startup even if the &quot;-c&quot; command line option was given and the connection parameters were sufficient to connect. This has been corrected so that the &quot;Connect&quot; window is no longer displayed in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531128">531128</a></td>
<td>On Unix systems, when starting the MobiLink client (dbmlsync) in server mode after having recently shutdown an instance of dbmlsync in server mode, if the same port number was reused on the -sp option it was possible for dbmlsync to have failed to start and report an error similar to &quot;unable to bind to port ...&quot;. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531154">531154</a></td>
<td>The &quot;Browse&quot; button on the &quot;DBConsole&quot; pane of the &quot;Options&quot; window could have been enabled inappropriately , even when message logging was not turned on. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531160">531160</a></td>
<td>If a statement used a keyset operator, it was possible for the statement to evaluate expressions that should not be evaluated. In order for this failure to appear, the statement must contain some unflattened views or derived tables (such as grouped, distinct, or top-N views). Keyset operators are used to support values sensitive cursors, and they are also used for some UPDATE, DELETE or MERGE statements. This has been fixed.</p>
<p>				For example, in the following statement, a division by zero error could be incorrectly returned for a keyset-driven (value sensitive) cursor. </p>
<p>				select if TMS_1.x = &#39;zzz&#39; and 1/QT2.y &gt; 0 then 12 endif</p>
<p>				from (</p>
<p>				SELECT x, y</p>
<p>				FROM TMS_2</p>
<p>				GROUP BY x,y</p>
<p>				) AS QT2</p>
<p>				join TMS_1</p>
<p>				ON TMS_1.x = QT2.x</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531295">531295</a></td>
<td>The server could have crashed while optimizing complex queries. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531314">531314</a></td>
<td>Double-clicking a .SAPLAN file on a Windows machine did not always work properly. The new &quot;Plan Viewer&quot; window was not automatically activated. If the &quot;Fast launcher&quot; option was on, the wrong plan file could have been opened under some circumstances. Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531323">531323</a></td>
<td>If the QAnywhere Agent for Ultralite experienced a failed synchronization then there was a chance that subsequent synchronizations would then have failed with a -193 primary key not unique error. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531334">531334</a></td>
<td>On Linux systems, starting a database that is stored on a non-tmpfs based ramdisk could have failed. This has been fixed. </p>
<p>				Note, a work around is to use a tmpfs based ramdisk, or start the server with the -u (use buffered disk I/O).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531348">531348</a></td>
<td>Table locks were not released by the SABulkCopy() method when SABulkCopyOptions.LockTable is specified. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531523">531523</a></td>
<td>Cancelling a statement could have taken several seconds if the statement returned more than 500K of data as text, and it was configured to display results as text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531525">531525</a></td>
<td>MobiLink with QAnywhere messaging enabled used approximately 400 KB of heap memory for each QAnywhere client that synchronizes with it. This occurred until the prepared statement cache size (default 200 for SA consolidated databases) was reached, and then each new QAnywhere client caused a cached statement to be dropped and a new statement to be prepared. This behaviour has been changed for SA consolidated databases only. Now the MobiLink server will use a constant amount of heap memory for QAnywhere client synchronizations, and will not overflow the prepared statement cache as many clients synchronize.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531532">531532</a></td>
<td>If a connection was dropped, or the server went down with a fatal error while connecting with ODBC, OLE DB or ADO.NET, or while calling the DBLib functions db_change_char_charset or db_change_nchar_charset, the client application could have crashed. This has been now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531577">531577</a></td>
<td>When editing an unsigned column value, if a value larger than the largest signed value was entered, zero would have been incorrectly saved as the column value. This has been fixed so that the value entered is now saved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531716">531716</a></td>
<td>The HTML files created by the &quot;Generate Database Documentation&quot; feature of the plug-in would have contained titles that Internet Explorer 7 could not display if Sybase Central was running on a non-English machine. This has been fixed. </p>
<p>				Note, this problem did not affect Internet Explorer 6 or Firefox 2.0.0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531718">531718</a></td>
<td>If an application using the iAnywhere JDBC driver attempted to perform a batched insert (using addBatch()/executeBatch()) and the batch size was large (greater than 500), then performance of the batch insert would have degraded significantly when long string columns were involved in the batch. The driver was allocating more memory than necessary, and making several small allocations instead of a few large ones. This problem has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531730">531730</a></td>
<td>After modifying the incremental download size of the QAnywhere Agent using the -idl option, it would not have been possible to reset the size to the default value of -1. Attempting to set the size to -1 would have left the incremental download size unchanged.</p>
<p>				This has been fixed. Now, specifying any non-positive number for the -idl option will reset the incremental download size to -1.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531766">531766</a></td>
<td>If a JMS message bound for a QAnywhere client was missing its native address, and no default address was specified for the JMS connector, the QAnywhere Server would have reported a NullPointerException. This has been fixed. The server now reports the proper error message</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531768">531768</a></td>
<td>UltraLite appeared in the list of databases to which the Interactive SQL utility could connect on Solaris and OS/X machines. UltraLite is not supported on either of these platforms, and so UltraLite databases have been removed from the user interface on these platforms.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531784">531784</a></td>
<td>If an Open Client or jConnect application executed a query that involved the use of host variables within a batch, then the server would have crashed. This has been fixed so that the query now correctly fails with the error message &quot;Host variables may not be used within a batch&quot;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531962">531962</a></td>
<td>If an application attempted to use a Statement, PreparedStatement or ResultSet object at the same time that the underlying Connection object was closed on a different thread, then there was a chance the application would have crashed.The problem has now been fixed. </p>
<p>				Note that finalizing Connection objects can cause the same crash.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531967">531967</a></td>
<td>The QAnywhere Server would have throw an ObjectRepositoryException if it was configured to use a delete rule with an empty condition clause. That is, if a rule was given that had nothing written to the right of the equals sign. One such rule might look like: &quot;AUTO=&quot; This has been fixed. Specifying an empty condition clause now specifies that all available messages should be deleted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR531993">531993</a></td>
<td>On the MobiLink client&#39;s setup dialog, clicking either the &quot;cmdline help&quot; or &quot;extended option help&quot; buttons would have caused dbmlsync to shutdown without displaying the help dialog. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532086">532086</a></td>
<td>If a server had many concurrent connections using Java in the database support, then there was a chance the server could either have hung, or crashed intermittently. These hangs or crashes could also have occurred at server shutdown time. These problems have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532102">532102</a></td>
<td>The changes made for Engineering case 483518 caused the server to crash if a call to the graphical_plan() function was made within an event handler. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532109">532109</a></td>
<td>A query containing a derived table, or a subquery with a OUTER JOIN whose ON condition references tables from outside the query block, may have returned incorrect results. This has been fixed.</p>
<p>				In the following example, the ON condition of the LEFT OUTER JOIN in the EXISTS subquery references the table &#39;t1&#39;, which is a table used in the FROM clause of the main query block. This query may return incorrect result for some instances of the database. </p>
<p>				select * from t1</p>
<p>				where exists(</p>
<p>				select 1</p>
<p>				from t4</p>
<p>				left outer join t2 on ( t2.c1 = t4.c1 and t2.c1 = t1.c1 )</p>
<p>				where t4.c1=1 </p>
<p>				)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532116">532116</a></td>
<td>Synchronizations through a server that required Digest HTTP authentication would have failed if the server required a reauthentication in the middle of the synchronization. This has been fixed so that the client will now successfully reauthenticate and continue the synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532185">532185</a></td>
<td>SQL Anywhere keeps track of dependencies of views on other views and tables. For view definition queries that involve more than two UNION, EXCEPT or INTERSECT branches and/or sub-queries, the server&#39;s computation of the dependency information could have been incorrect, leading to erroneous behaviour. This has beed fixed so that the server now computes the dependency information correctly.</p>
<p>				Note, any existing views compiled with an older version of the server will continue to have potentially incorrect dependency information in the catalog. Existing views can be made to have the correct dependency information by being recompiled, either implicitly during a DDL operation on one of the referenced tables, or explicitly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532238">532238</a></td>
<td>In SQL Anywhere 10, SOAP web services used the server&#39;s HTTP HOST header to generate the namespace returned in the SOAP response. This behaviour was changed in SQL Anywhere 11 to always use the namespace sent in the SOAP request for the response. This change in behaviour has now been integrated into 10.0 in order to better support SOAP clients built with version 10.0 and connect to a server that has been upgraded to version 11.0.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532254">532254</a></td>
<td>A server that had registered itself with LDAP tried could have crashed when trying to start a database using an alternate server name, if an error occurred in reading the saldap.ini file. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532276">532276</a></td>
<td>A large query containing a &#39;WITH&#39; clause could have crashed the server. The server was failing to recognize a SYNTACTIC_LIMIT error for such queries. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532280">532280</a></td>
<td>The server could have behaved erroneously when new procedures were created from within event handlers, or after having executed the SETUSER statement. Although rare, in the worst case a user could have been allowed to be dropped while still connected. These problems have been corrected so that the server now behaves correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532314">532314</a></td>
<td>If creating a tracing database resulted in an error, the real cause of the error would have been missing from the error dialog details. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532450">532450</a></td>
<td>It was possible for execution of an OUTPUT statement to cause the statement, which generated the previous results, to be reexecuted unnecessarily. Reexecution of the statement could have resulted in poor performance, or error messages if the statement could not be reexecuted (for example, because it was a stored procedure call with side-effects). This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532452">532452</a></td>
<td>The changes for Engineering case 530534 (which was a followup fix to Engineering case 491400) were incomplete, resulting in the Overview marquee not updating when zoomed out with the marquee at the leftmost position. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532475">532475</a></td>
<td>The system procedure dbo.sa_text_index_statistics() can be used to obtain information about existing text indexes in the database. Depending upon the current state of the tables with text indexes defined on them, the server could have failed to return the expected information for all existing text indexes in the database. This has been corrected so that the server will now return the correct answer, regardless of the current state of the server.</p>
<p>				Note that since Sybase Central makes use of sa_text_index_statistics() in order to display information on text indexes, Sybase Central will also not work as expected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532521">532521</a></td>
<td>If a query like the following was excuted:</p>
<p>				SELECT TOP var1 START AT var2 * FROM ...</p>
<p>				and the query referenced a proxy table, and the query could have been handled in full passthru, then the query would have failed with a &#39;column not found&#39; or &#39;bad cursor range&#39; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532626">532626</a></td>
<td>In certain rare situations, it was possible for the server to hang when starting a database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532636">532636</a></td>
<td>The list of statistics displayed on a version 10 or later server&#39;s Statistics tab was incomplete; specifically, it excluded statistics introduced in version 10. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532638">532638</a></td>
<td>Incorrect results may have been obtained from queries when there was a LIKE search condition combined with an ORDER BY ... DESC clause, when both of these clauses specified a column that was the first column in an index.</p>
<p>				For example:</p>
<p>				SELECT * FROM MyTable WHERE col LIKE &#39;abc%&#39; ORDER BY col DESC</p>
<p>				The implementation of LIKE predicates with reversed index scans was erroneous. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532668">532668</a></td>
<td>The SORTKEY function did not allow the first parameter to be BINARY if the second parameter (the collation id) was not an integer. Similarly, COMPARE did not allow either of the first two parameters to be BINARY if the third parameter (the collation id) was not an integer. For example, SORTKEY( cast( &#39;a&#39; as binary ), &#39;dict&#39; ) would have reported the error &quot;Cannot convert weCHAR values.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532793">532793</a></td>
<td>ODBC Driver by Sybase: The iAnywhere MobiLink application hangs during connection failover event.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532796">532796</a></td>
<td>If a database was started with an alternate server name on an already-running server, in rare cases, subsequent TCP connection attempts to the server may have failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532802">532802</a></td>
<td>Closing a ResultSet object may have, in very rare cases, crashed the iAnywhere JDBC driver. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532807">532807</a></td>
<td>The Server Message Store wizard could have failed to complete with the message &quot;Could not install QAnywhere support. Request to start/stop database denied&quot;. This would have occurred if a server was already running and it was not started with the &quot;-gd DBA&quot; or &quot;-gd all&quot; command line options, and &quot;Create an ODBC data source&quot; was checked in the wizard. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532816">532816</a></td>
<td>Automatic creation of a tracing database (either through the Profiling wizard or the Tracing wizard) could have failed if the database used secondary dbspaces with absolute (hard-coded) paths. This could have arisen when the machine on which the profiling/tracing database was being created didn&#39;t have a directory structure that matched the one for the production database, and was especially likely if the two machines ran different operating systems. If the two machines involved are running the same OS, the presence of the missing drives / directories is now simulated, if possible. Otherwise, the workaround is to unload the database to the same machine, start the copy, and move the dbspace files on the copy to directories that can be specified with relative paths. Then, issue ALTER DBSPACE RENAME commands to point the main dbspace at the new dbspaces. The database can now be copied to the machine that will host the tracing database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532819">532819</a></td>
<td>If a START DATABASE statement or an attempt to autostart a database on an already-running server, failed due to an alternate server name conflict, a second attempt to start the database with the same (conflicting) alternate server name would have succeeded when it should have failed as well. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532825">532825</a></td>
<td>A new logging option has been added to the MobiLink server. The -vm command line option will cause the server to print to the log the duration of each sync and the duration of each sync phase whenever a sync completes. The sync phases are the same as those displayed in the MobiLink monitor. Each value is prefixed with &quot;PHASE: &quot; to aid searching for and printing the values.</p>
<p>				Sample output follows:</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: start_time: 2008-06-05 14:48:36.048</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: duration: 175</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: sync_request: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: receive_upload: 19</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: get_db_worker: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: connect: 18</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: authenticate_user: 51</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: begin_sync: 69</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: apply_upload: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: prepare_for_download: 1</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: fetch_download: 4</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: wait_for_download_ack: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: end_sync: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: send_download: 10</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: get_db_worker_for_download_ack: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: connect_for_download_ack: 0</p>
<p>				I. 2008-06-05 14:48:36. &lt;1&gt; PHASE: nonblocking_download_ack: 0</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532846">532846</a></td>
<td>Columns with data types of LONG BINARY or LONG VARCHAR were not stored correctly during a synchronization download. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532850">532850</a></td>
<td>Executing a CREATE EXISTING TABLE statement to create a proxy table when the remote table has an unsupported index on it, could have caused the statement to fail. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532859">532859</a></td>
<td>It was possible to get gaps between transaction logs when using the Backup Database command to rename a transaction log, or when using dbmlsync -x to rename and restart a transaction log. It was also possible, although more unlikely, to have a transaction log that was missing a transaction that was already committed to the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR532999">532999</a></td>
<td>The database property &#39;VersionStorePages&#39; was reporting the total number of pages in the temporary file rather than the number of pages in the version store. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533010">533010</a></td>
<td>When using the new ULODBC class to map a proxy table to a table within a non-UTF8 MBCS UltraLite database, and then attempting to fetch string data from that proxy table, there was a chance the data would have had additional garbage characters. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533012">533012</a></td>
<td>The connection property &#39;IsDebugger&#39; has been added to allow connections which are currently being used to run the procedure debugger to be distinguished from normal connections. The value of connection_property(&#39;IsDebugger&#39;,number) will be &#39;Yes&#39; if &quot;number&quot; corresponds to the connection number of a debugger connection, and &#39;No&#39; otherwise.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533013">533013</a></td>
<td>When executed from within a login procedure, a BACKUP statement, an external function call, a web service request, a Java request or a remote procedure call could have caused the requesting connection to hang indefinitely. In certain cases, such as when executing a BACKUP statement, this hang could eventually cause other connections to hang as well. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533028">533028</a></td>
<td>If a database contained materialized views, and one of the base tables referenced by a materialized view contained foreign key constraints, then the Unload utility (dbunload) could have generated a reload script that would have failed to execute. The reload script would have contained ALTER TABLE ... ADD FOREIGN KEY statements after the creation of materialized views. The server now allows the reload script to execute without errors.</p>
<p>				Note, a work-around is to manually edit the reload script to make the reload work.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533055">533055</a></td>
<td>If a LIKE predicate contained specific forms of patterns, and it referred to a column contained in an index, then it was possible for the server to crash when opening the statement containing the LIKE predicate. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533249">533249</a></td>
<td>The download phase of a synchronization could have failed with a -194 error (&quot;No primary key value for foreign key&quot;). This was most likely to have occurred during large synchronzations or when the database engine is under considerable stress. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533264">533264</a></td>
<td>Synchronization profiles were incorrectly appearing in the Extended Database Properties tab of an UltraLite database抯 property sheet. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533270">533270</a></td>
<td>The default Precision and Scale values for an UltraLite database are 30, 6 respectively. When creating a table using the plug-in for Sybase Central, these values were used as defaults for numeric columns, even when the database抯 default Precision and Scale values were different. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533327">533327</a></td>
<td>Certain illegal column domains were not being diagnosed, such as VARCHAR(-1). This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533459">533459</a></td>
<td>In some cases indexes could be left in a bad state after a large number of rows are deleted. Depending on the subsequent operations the problem could either have corrected itself, or lead to index corruption. Any table which ever had a row count that was 256 or more, less than its maximum row count could potentially have encountered this bug. The most common symptom was queries that returned less rows than expected. This has now been corrected. Databases that are suspected of having index corruption should be rebuilt (eg. ulunload/ulload or start with a new db and synchronize it)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533478">533478</a></td>
<td>A multi-threaded client application, using the ADO .Net provider, could have crashed, hung or leaked memory if it did not handle thread synchronization properly. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533570">533570</a></td>
<td>If a row was deleted, the delete rolled back, and then the row was updated, a snapshot scan may have seen the updated value before the update was committed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533600">533600</a></td>
<td>When using a derived table in a remote query, if one or more columns from the derived table were referenced in the WHERE clause of the query, and the query was going to be processed in full passthru, then the engine would have returned with a &quot;correlation name not found&quot; error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533604">533604</a></td>
<td>If a multi-threaded JDBC application generated a ResultSet object on one thread, at about the same time that the underlying Statement object was closed on another thread, then the application may in very rare cases have crashed, if that ResultSet object was subsequently closed. The same problem could have occurred if the ResultSet object was generated at about the same time that the underlying Connection object was closed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533612">533612</a></td>
<td>On a slow devices, the QAnywhere client (qaagent) would sometimes have given the following error messages at start up: &quot;Error registering with DBLSN code: -1&quot; and &quot;Failed to start QAnywhere Agent (register with DBLsn)&quot;. This has been fixed so that the QAnywhere client is now much more tolerant to lengthy dblsn startup times.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533724">533724</a></td>
<td>The server would have crashed if the sa_locks() system procedure was executed when it was running in bulk operation mode (-b server command line option). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533726">533726</a></td>
<td>Spaces and tabs were not allowed to be used before the &quot;GO&quot; command delimiter keyword. This has been corrected so that they are now allowed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533728">533728</a></td>
<td>A small window of opportunity existed in the QAnywhere server where a statement could be closed and removed from the statement cache, just as another thread was preparing the statement to be closed. This resulted in some operations being performed on a closed statement, resulting in a JDBC error. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533729">533729</a></td>
<td>The 64-bit version of the UltraLite .NET component could have throw an &quot;Unknown ULDbType&quot; exception when opening a table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_56.htm#CR533746">533746</a></td>
<td>If a download was interrupted by a network failure, it was possible for the MobiLink client (dbmlsync) to fail to create a restartable download file. Furthermore, dbmlsync would have displayed a network error to the dbmlsync log, but then attempted to apply the partial download, which would almost certainly have failed. This has been fixed so that dbmlsync now creates a restartable download file and does not attempt to apply the partial download.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533749">533749</a></td>
<td>The iAS ODBC driver for Oracle could have given mangled error and warning messages to the application when it was running on a operating system that used a multi-byte character set, such as a Japanese or Chinese. This problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533793">533793</a></td>
<td>If a server had multiple databases loaded, each with a different character set, the database name returned by the system function &quot;db_property(&#39;Name&#39;, &lt;dbid&gt;)&quot; could have been improperly character set converted. This could have made the name returned appear garbled. For this to have occurred, the database ID specified by &quot;&lt;dbid&gt;&quot; must have been different from the ID of the database of the connection. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533802">533802</a></td>
<td>Execution of a SELECT statement that referenced a procedure call in the FROM clause could have resulted in a server crash. For this to have occurred, the connection must have had several cursors open, or have had several prepared statements. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533804">533804</a></td>
<td>When the MobiLink server was under heavy load, the Mobilink monitor may have crashed, hung or disconnect from the Mobilink server. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533805">533805</a></td>
<td>If a consolidated database was running on an Oracle 9i or later server, the MobiLink server could have sent clients a next_last_download_time (a timestamp value used to generate a download in the next synchronization) that was earlier than the last_download_time (a timestamp value used to generate the download in the current synchronization). This problem could have caused a MobiLink client to complain when it was trying to apply the downloaded file. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533830">533830</a></td>
<td>If at some point during the current session the Views folder, or a materialized view in the tree, was selected then Sybase Central could have caused shared locks to be held on all manual, valid, non-initialized materialized views. These locks would have prevented the refreshing of any such materialized view via another connection, for example from an ISQL session. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533936">533936</a></td>
<td>In rare situations, Java applications using the iAnywhere JDBC driver with concurrent connections may have hung, or even crashed. Several fixes have been made to correct race conditions between concurrent connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533950">533950</a></td>
<td>The sa_locks() system procedure can be used to get a report on server locks currently held by various connections. Since both base tables and materialized views hold data, locks can be held on objects of either type. The server will now report the type of &quot;MVIEW&quot; for locks held on materialized view instead of the type of &quot;BASE&quot;, which will continue to be reported for locks on base tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533958">533958</a></td>
<td>When the event of a download_cursor, or a download_delete_cursor, in a MobiLink server synchronization logic was written as:</p>
<p>				{call procedure_name( ?, ? )}</p>
<p>				for consolidated databases running on an Oracle server, the iAS ODBC driver for Oracle may have given the error:</p>
<p>				ORA-06553: PLS-306: wrong number or types of arguments in call to &#39;procedure_name&#39; </p>
<p>				if the stored procedure returned a result set and the word, &quot;call&quot; was not all in lower-case. This has now been fixed.</p>
<p>				Note, the iAS ODBC driver for Oracle in version 9.0.2 is actually the driver from version 10.0.1. Versions of the driver with this fix are 10.0.1 3686 or later.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533974">533974</a></td>
<td>When calling a Java stored procedure from the Interactive SQL utility with a SQL argument of type DATE, TIME or TIMESTAMP and a Java argument of type java.sql.Date or java.sql.Time, the server would have returned a parse exception from the JVM. Using dbisqlc to make the same Java stored procedure call would have worked fine. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533979">533979</a></td>
<td>The columns from stored procedure result sets were not being excluded when Visual Studio enumerated stored procedure parameters. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR533994">533994</a></td>
<td>The &quot;Messages&quot; tab could have remained selected after executing a statement which returned result sets. This has been corrected so that the first result set tab is now always selected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534001">534001</a></td>
<td>The Java Runtime Environments that are included in SQL Anywhere have been updated to version 1.4.2_18 for 9.0.2 and 1.5.0_16 for 10.0.1. These updates include a number of security fixes which do not directly impact SQL Anywhere software, but were done to help those customers whose corporate policies preclude the installation of older JRE updates which contain known security defects.</p>
<p>				In the future, customers will be able to update the JRE themselves by following instructions which will be made available shortly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534003">534003</a></td>
<td>In graphical plans, the operator for a table accessed using an index-only scan was drawn as a table-scan operator, not as an index-scan operator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534005">534005</a></td>
<td>If the QAnywhere client (qaagent) was started using a rules file for its policy, then shut down and restarted with a syntax error on the command line, in some situations an error such as</p>
<p>				&quot;SQL statement failed: (-265) Procedure &#39;ml_qa_sync_rule_0&#39; not found&quot; would have occurred in the MobiLink client (dbmlsync). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534132">534132</a></td>
<td>If many rows had been deleted from the end of an index, and the server was under heavy load for some period of time after that, there was a chance that the server could have crashed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534135">534135</a></td>
<td>The iAS ODBC driver for Oracle could have given mangled error and warning messages to the application when it was running on a operating system that used a multi-byte character set, such as a Japanese or Chinese. This problem is now fixed.</p>
<p>				Note, the iAS ODBC driver for Oracle in version 9.0.2 is actually the driver from version 10.0.1. Versions of the driver with this fix are 10.0.1 3715 or later.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534147">534147</a></td>
<td>The server could have crashed following many concurrent updates and/or inserts to a large indexed table. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534156">534156</a></td>
<td>If the &#39;datasource&#39;, &#39;host&#39;, or &#39;port&#39; command line options were used, dbisql would not have started, but would not have reported an error. This has been corrected so that these options are now accepted and processed correctly.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534168">534168</a></td>
<td>Altering a column with an IMMEDIATE REFRESH text index would have caused the server to fail an assertion. This is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534179">534179</a></td>
<td>Java messages could have been corrupted on operating systems with non-English character sets. Character set conversion was not being done correctly. This has been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534292">534292</a></td>
<td>When run on non-Windows platforms, the Server Message Store wizard would have crashed after leaving the second page. This has been fixed. </p>
<p>				In related issues, the toolbar button for opening this wizard was missing, and the &quot;Create a client message store&quot; item should have been removed from the Task list on non-Windows machines, but was not. These have been fixed as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534294">534294</a></td>
<td>The server keeps track of the dependencies of views on other tables and views. When the schema of a table is modified by using the ALTER TABLE statement, the server automatically and atomically recompiles all views whose view definitions depend upon the schema of the table being modified. All views that can be compiled without errors with the new table schema are rebuilt persistently in the catalog and remain valid after reflecting the changes in the table schema. Views that fail to compile are left in a state where the server automatically tries to recompile them in the future. If column permissions, as opposed to table permissions, had been granted on a view dependent on the table being modified, the execution of ALTER TABLE could have failed with referential integrity violations on SYS.SYSTABCOL. This has been corrected so that the server now automatically attempts to restore the old column permissions on views that are recompiled as a consequence of ALTER TABLE. Permissions on columns that no longer exist in the recompiled view(s) are lost.</p>
<p>				See Engineering case 536015 for a related issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534307">534307</a></td>
<td>If an application using the iAnywhere JDBC driver attempted to use the optional DatabaseMetaData.getUDTs() method, the driver would have throw a &quot;not yet implemented&quot; exception. The iAnywhere JDBC driver has now been enhanced to return a proper result set for the getUDTs() method if the driver is connected to an SA database. For all non-SA servers, the iAnywhere JDBC driver will continue to throw the &quot;not yet implemented&quot; exception.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534320">534320</a></td>
<td>Sybase Central could have crashed while using the QAnywhere plugin, if the connection to a server message store was unexpectedly lost. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534321">534321</a></td>
<td>The server could have crashed when processing an HTTP request that required character set conversion. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534324">534324</a></td>
<td>Statements that appeared in stored procedures may have used a cached execution plan (see Plan caching in the documentation). In some cases, a stale value of a builtin function could have been returned for subsequent executions of the statement. This has now been corrected. The following builtin functions were affected by this issue:</p>
<p>				connection_extended_property</p>
<p>				connection_property</p>
<p>				db_extended_property</p>
<p>				db_property</p>
<p>				estimate</p>
<p>				estimate_source</p>
<p>				event_condition</p>
<p>				event_condition_name</p>
<p>				event_parameter</p>
<p>				experience_estimate</p>
<p>				http_body</p>
<p>				http_header</p>
<p>				http_variable</p>
<p>				index_enabled</p>
<p>				index_estimate</p>
<p>				next_connection</p>
<p>				next_database</p>
<p>				next_http_header</p>
<p>				next_http_variable</p>
<p>				next_soap_header</p>
<p>				property</p>
<p>				rewrite</p>
<p>				soap_header</p>
<p>				varexists</p>
<p>				watcomsql</p>
<p>				For web services based on sessions, connection properties such as SessionLastTime could also have been affected by this (among other builtins). This incorrect behaviour was masked in version 10.0.1 for web services using sessions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534333">534333</a></td>
<td>When calling the system function REGEXP_SUBSTR() with non-ASCII characters, it could have returned an incorrect result, possibly consisting of invalid characters. The input strings were being cast to NCHAR values, and then the resulting NCHAR output was treated as a CHAR, resulting in garbled output if the database character set was not UTF8. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534356">534356</a></td>
<td>Very occasionally, the Interactive SQL utility may not have started when the fast launcher option was turned on. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534358">534358</a></td>
<td>Use of any of the TLS options &quot;certificate_name&quot;, &quot;certificate_unit&quot;, or &quot;certificate_company&quot; would have caused connections to fail with a &quot;TLS handshake failure&quot; error. This has been fixed. As a workaround, the options &quot;name&quot;, &quot;unit&quot;, and &quot;company&quot; can be used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534402">534402</a></td>
<td>Incorrect results were possible when executing queries with a LEFT OUTER JOIN and a WHERE clause whose elements are all from the left hand side of the join. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534404">534404</a></td>
<td>The comparison of two NULL values would have erroneously resulted in TRUE, instead of UNKNOWN. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534471">534471</a></td>
<td>The server performs an implicit commit before and after the execution of a CREATE INDEX statement. The act of performing a commit following execution releases any locks obtained by the server during the creation of the index. If the create statement failed due to an error, then the server could have failed to release the locks obtained before the point of failure. There was no other user visible impact and the held locks were released when the connection next performed a COMMIT or ROLLBACK. This has been corrected so that the server now release the held locks automatically.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534482">534482</a></td>
<td>If a connection string contained an invalid encryption parameter, or was missing the mandatory trusted_certificates parameter, the error returned would have been: &quot;Could not initialize the encryption DLL: &#39;???&#39;&quot; This has been corrected so that a TLS handshake error will now be returned, as in previous releases.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534496">534496</a></td>
<td>An expression that converted an integer value to a NUMERIC or a DECIMAL, could have leaked memory in the server if an overflow error was generated. If enough of these expressions were evaluated, server execution could have been impaired. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534586">534586</a></td>
<td>Information about column defaults was not being reloaded on subsequent connections after the default information was created. This resulted in column defaults not being automatically generated for NULL columns on INSERTS. Loading of the additional field has now been implemented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534742">534742</a></td>
<td>The MobiLink server, and Java and .NET APIs, have been modified to allow users to register to receive notfications whenever an info line is printed to the log (i.e. lines prefixed with &quot;I.&quot;).</p>
<p>				Java:</p>
<p>				The following methods, added to interface ianywhere.ml.script.ServerContext are used to register or unregister listeners:</p>
<p>				/**</p>
<p>				* Adds the specified LogListener to receive a notification</p>
<p>				* when info is printed.</p>
<p>				* method {@link LogListener#messageLogged} will be called.</p>
<p>				*</p>
<p>				* @param ll the LogListener to be notified on warning</p>
<p>				*/</p>
<p>				public void addInfoListener( LogListener ll );</p>
<p>				/**</p>
<p>				* Remove the specified LogListener from the list of</p>
<p>				* listeners to receive a notification</p>
<p>				* when info is printed.</p>
<p>				*</p>
<p>				* @param sl the listener which will no longer be notified</p>
<p>				*/</p>
<p>				public void removeInfoListener( LogListener ll );</p>
<p>				The following constant, added to class ianywhere.ml.script.LogListener, is returned by LogMessage.getType() for info messages:</p>
<p>				public static final int INFO = 2;</p>
<p>				Example:</p>
<p>				The following code registers a listener of type MyLogListener to receive notifications of info messages.</p>
<p>				// ServerContext serv_context;</p>
<p>				serv_context.addInfoListener(</p>
<p>				new MyLogListener( ll_out_file ));</p>
<p>				The following code shows an example of processing those messages:</p>
<p>				class MyLogListener implements LogListener {</p>
<p>				FileOutputStream _out_file; </p>
<p>				public TestLogListener( FileOutputStream out_file ) {</p>
<p>				_out_file = out_file;</p>
<p>				}</p>
<p>				public void messageLogged( ServerContext sc,</p>
<p>				LogMessage msg ) {</p>
<p>				String type;</p>
<p>				String user;</p>
<p>				try {</p>
<p>				if(msg.getType() == LogMessage.ERROR) {</p>
<p>				type = &quot;ERROR&quot;;</p>
<p>				} else if(msg.getType() == LogMessage.WARNING) {</p>
<p>				type = &quot;WARNING&quot;;</p>
<p>				} else if(msg.getType() == LogMessage.INFO) {</p>
<p>				type = &quot;INFO&quot;;</p>
<p>				} else {</p>
<p>				type = &quot;UNKNOWN!!!&quot;;</p>
<p>				}</p>
<p>				user = msg.getUser();</p>
<p>				if( user == null ) {</p>
<p>				user = &quot;NULL&quot;;</p>
<p>				}</p>
<p>				_out_file.write(</p>
<p>				(&quot;Caught msg type=&quot; + type +</p>
<p>				&quot; user=&quot; + user +</p>
<p>				&quot; text=&quot; +msg.getText() +</p>
<p>				&quot;\n&quot;).getBytes() );</p>
<p>				_out_file.flush();</p>
<p>				} catch( Exception e ) {</p>
<p>				// if we print the exception from processing an info message,</p>
<p>				// we may recurse indefinately</p>
<p>				if( msg.getType() != LogMessage.INFO ) {</p>
<p>				// Print some error output to the MobiLink log.</p>
<p>				e.printStackTrace();</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				}</p>
<p>				.NET:</p>
<p>				Callback functions can be registered to the following event, added to interface iAnywhere.MobiLink.Script.ServerContext, to receive notifications about info messages:</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// Triggered when the MobiLink server prints info</p>
<p>				/// &lt;/summary&gt;</p>
<p>				event LogCallback InfoListener;</p>
<p>				The following, added to enum iAnywhere.MobiLink.Script.LogMessage.MessageType, can be returned by the Type property of the LogMessage class</p>
<p>				/// &lt;summary&gt;</p>
<p>				/// A log info message.&lt;/summary&gt;</p>
<p>				INFO</p>
<p>				Example:</p>
<p>				The following code defines a callback that will process an info message.</p>
<p>				internal class TestLogListener {</p>
<p>				public TestLogListener( StreamWriter output_file,</p>
<p>				LogMessage.MessageType expected_type )</p>
<p>				{</p>
<p>				_output_file = output_file;</p>
<p>				_expected_type = expected_type;</p>
<p>				}</p>
<p>				public void errCallback( ServerContext sc, LogMessage lm )</p>
<p>				{</p>
<p>				string type;</p>
<p>				string user;</p>
<p>				if( lm.Type != _expected_type ) {</p>
<p>				_output_file.WriteLine( &quot;Message type not expected!!&quot; );</p>
<p>				return;</p>
<p>				}</p>
<p>				if( lm.Type==LogMessage.MessageType.ERROR ) {</p>
<p>				type = &quot;ERROR&quot;;</p>
<p>				} else if( lm.Type==LogMessage.MessageType.WARNING ) {</p>
<p>				type = &quot;WARNING&quot;;</p>
<p>				} else if( lm.Type==LogMessage.MessageType.INFO ) {</p>
<p>				type = &quot;INFO&quot;;</p>
<p>				} else {</p>
<p>				type = &quot;INVALID TYPE!!&quot;;</p>
<p>				}</p>
<p>				if( lm.User == null ) {</p>
<p>				user = &quot;null&quot;;</p>
<p>				} else {</p>
<p>				user = lm.User;</p>
<p>				}</p>
<p>				if( (lm.Text.IndexOf( &quot;10017&quot; ) &gt; 0) ||</p>
<p>				(lm.Text.IndexOf( &quot;10018&quot; ) &gt; 0) ||</p>
<p>				(lm.Text.IndexOf( &quot;10020&quot; ) &gt; 0) </p>
<p>				|| (lm.Type == LogMessage.MessageType.INFO </p>
<p>				&amp;&amp; lm.Text.IndexOf( &quot;MobiLink server started&quot; ) &lt; 0 ) </p>
<p>				) {</p>
<p>				return;</p>
<p>				}</p>
<p>				_output_file.WriteLine( &quot;Caught msg type=&quot; + type +</p>
<p>				&quot; user=&quot; + user +</p>
<p>				&quot; text=&quot; + lm.Text );</p>
<p>				_output_file.Flush();</p>
<p>				}</p>
<p>				StreamWriter _output_file;</p>
<p>				private LogMessage.MessageType _expected_type;</p>
<p>				}</p>
<p>				The following code adds the callback to the InfoListener event.</p>
<p>				// ServerContext _sc;</p>
<p>				TestLogListener itll = new TestLogListener(</p>
<p>				log_listener_file,</p>
<p>				LogMessage.MessageType.INFO );</p>
<p>				sc.InfoListener += new LogCallback(itll.errCallback);</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534774">534774</a></td>
<td>Non-disabled materialized views were described as having a status of &quot;Valid&quot;. Now, the correct term &quot;Enabled&quot; is used, and the term &quot;Valid&quot; is used only for non-materialized views.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534792">534792</a></td>
<td>The OLE DB provider did not correctly support the DBCOLUMN_BASECOLUMNNAME rowset column of the IColumnsRowset::GetColumnsRowset method. This column should contain the name of the column in the data store, which might be different than the column name returned in the DBCOLUMN_NAME column if an alias or a view was used. Here is an example.</p>
<p>				CREATE TABLE GROUPO.MyTable(</p>
<p>				DATA2 varchar(16),</p>
<p>				DATA1 varchar(16),</p>
<p>				PKEY int NOT NULL default autoincrement,</p>
<p>				CONSTRAINT PKeyConstraint PRIMARY KEY (PKEY)</p>
<p>				) ;</p>
<p>				CREATE VIEW DBA.MyView( PKEY, DATA_1, DATA2)</p>
<p>				AS SELECT PKEY, DATA1, DATA2 FROM MyTable;</p>
<p>				Consider the following queries.</p>
<p>				SELECT PKEY, DATA_1, DATA2 as D2 FROM MyView</p>
<p>				SELECT PKEY, DATA1 as DATA_1, DATA2 as D2 FROM MyTable</p>
<p>				In both cases, the OLE BD provider would return the following for DBCOLUMN_BASECOLUMNNAME and DBCOLUMN_BASETABLENAME for these queries.</p>
<p>				PKEY MyTable</p>
<p>				DATA_1 MyTable</p>
<p>				D2 MyTable</p>
<p>				Of course, the DATA_1 and D2 columns are not found in MyTable.</p>
<p>				With this fix, the provider now returns the correct column names.</p>
<p>				PKEY MyTable</p>
<p>				DATA1 MyTable</p>
<p>				DATA2 MyTable</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534837">534837</a></td>
<td>Predicates with AND, OR and NOT expressions along with UNKNOWN could have produced incorrect results. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534927">534927</a></td>
<td>Control of an HTTP session time-out duration was not passed to subsequent HTTP requests belonging to the same session if a TEMPORARY HTTP_SESSION_TIMEOUT database option had been set (in a previous HTTP request belonging to the session). The scope of the problem applied to all TEMPORARY database options set within an HTTP session context. The problem was due to user id being reset for each HTTP request. This has been corrected so that an HTTP request within a session context will no longer reset its user id if it is identical to the user id of the current service.</p>
<p>				The problem remained however if an HTTP session was used to call a service that specified a different user id. A SA web application using HTTP sessions should only use TEMPORARY and/or USER specific options when all requests within the HTTP session context access SA services defined with the same user id. Similarly, accessing an authenticated SERVICE would require that the HTTP request belonging to a session provide the same user id from request to request. To address this, a new HTTP OPTION called SessionTimeout has been added to make HTTP session time-out criteria persistent in all cases. It can be set from within an HTTP request that has defined, or will define, a SessionID. The context of the setting is preserved throughout the HTTP session, until it expires, is deleted or changed (with a subsequent SA_SET_HTTP_OPTION call).</p>
<p>				- New SA_SET_HTTP_OPTION option SessionTimeout</p>
<p>				The value of this HTTP OPTION is specified in minutes. It is subject to the minimum and maximum constraints of the HTTP_SESSION_TIMEOUT database option. A newly created session is implicitly assigned the current or default PUBLIC/USER HTTP_SESSION_TIMEOUT.</p>
<p>				The following example sets a given HTTP session time-out to 5 minutes:</p>
<p>				call SA_SET_HTTP_OPTION(&#39;SessionTimeout&#39;, &#39;5&#39;);</p>
<p>				An empty value resets the option to its default value, or as set by the PUBLIC or USER scope HTTP_SESSION_TIMEOUT database option.</p>
<p>				call SA_SET_HTTP_OPTION(&#39;SessionTimeout&#39;, &#39;&#39;); // resets the time-out to 30 minutes - the default value of the HTTP_SESSION_TIMEOUT database option</p>
<p>				SET OPTION PUBLIC.HTTP_SESSION_TIMEOUT=1 // New HTTP sessions calling SA_SET_HTTP_OPTION(&#39;SessionTimeout&#39;, &#39;&#39;) set session time-out to 1 minute</p>
<p>				SET OPTION USERA.HTTP_SESSION_TIMEOUT=15 // New HTTP sessions calling SA_SET_HTTP_OPTION(&#39;SessionTimeout&#39;, &#39;&#39;) set session time-out to 15 minutes for USERA</p>
<p>				NOTE: HTTP session default criteria is derived from the current PUBLIC/USER HTTP_SESSION_TIMEOUT database option setting. Any subsequent changes to this option will not implicitly affect existing HTTP sessions. The default timeout setting for HTTP sessions that always use the same user id remains unchanged. However, an HTTP request belonging to a session that calls a service with an alternate user id will force its cache to be cleared and the option defaults of the current user to be loaded. Therefore, when the session switches users all TEMPORARY options are lost and the current PUBLIC/USER options are assigned.</p>
<p>				- New CONNECTION_PROPERTY(&#39;SessionTimeout&#39;)</p>
<p>				Returns the time-out value in minutes for a given database connection belonging to an HTTP session. The value is the current setting for SA_SET_HTTP_OPTION(&#39;SessionTimeout&#39;, &#39;X&#39;).</p>
<p>				A value of 0 is returned if the database connection does not belong to an HTTP session. As before, the HTTP_SESSION_TIMEOUT database option may be queried to determine the PUBLIC/USER default values.</p>
<p>				- Summary of changes</p>
<p>				TEMPORARY and USER scope options are preserved when HTTP requests belonging to a session execute SA services defined with a specific (the same) user id.</p>
<p>				SessionTimeout HTTP_OPTION has been added to provide an HTTP session context time-out criteria. Its use is recommended in place of setting a TEMPORARY HTTP_SESSION_TIMEOUT database option since it is guaranteed to persist for the life of the session.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534931">534931</a></td>
<td>A query that did a scan of an index when the isolation level was set snapshort, could have returned extra rows. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534949">534949</a></td>
<td>The iAS ODBC driver for Oracle would have truncated the time portion of timestamp values, when the application was trying to fetch the timestamp values using SQLGetData. An internal buffer was too small for a timestamp column. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534963">534963</a></td>
<td>The server tracks dependencies of views on other views and tables. If a table is referenced by other views, attempting to execute an ALTER TABLE statement on the referenced table could have caused the server to crash under certain circumstances. This has been fixed, the server now carries out the ALTER properly.</p>
<p>				A workaround is to disable the dependent view before executing the ALTER statement, followed by a re-enabling of the view.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534966">534966</a></td>
<td>Sybase Central did not allow creating, modifying or deleting services for the MobiLink Listener utility (dblsn), the Broadcast Repeater utility (dbns11), and the SQL Anywhere Volume Shadow Copy Service (dbvss11). Attempting to open the properties for one of these types of services would have caused Sybase Central to crash. These problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR534995">534995</a></td>
<td>When deploying a synchronization model to an UltraLite remote database, the generated &lt;model&gt;_ulsync.bat and dblsn.txt files incorrectly used the version 10 syntax for ulsync. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535215">535215</a></td>
<td>The server supports the ANSI MERGE statement, with some vendor extensions, which can be utilized to merge data from one source into another. Under certain circumstance, the MERGE statement could have behaved incorrectly. As an example, if the MERGE statement was instructed to update multiple rows of the target table based on the same matching conditions, then the values visible for the new row within a BEFORE UPDATE row level trigger could have been incorrect. This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535235">535235</a></td>
<td>The Listener utility (dblsn) with persistent connection turned off, may have failed to confirm message delivery or action execution. This may also have caused the MobiLink server to report protocol errors. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535244">535244</a></td>
<td>The IIS relay server would have leaked one mutex handle per http request. This has now been fixed.</p>
<p>				A workaround is to set the worker recycling option for IIS to ON, in order to keep the leak under control.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535363">535363</a></td>
<td>The encrypted form of a user password that had been set by a CREATE USER, or an ALTER USER, statement could have been interpreted incorrectly if the transaction log was translated by the Translation utility (dbtran) and the resulting SQL file re-executed. This was likely to be a problem only for databases using multi-byte character sets, and has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535586">535586</a></td>
<td>If an index was defined in the reference database as:</p>
<p>				create index idx on t(a asc, b asc, c asc)</p>
<p>				The UltraLite Initialize Database utility (ulinit) would have created the index as:</p>
<p>				create index idx on t(c asc, b asc, a asc).</p>
<p>				reversing the order of the columns. This has been corrected and ulinit will now create the index in the same order as the reference database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535591">535591</a></td>
<td>An error would have been reported if a string of connection, or synchronization, parameters used parentheses inside a sublist.</p>
<p>				For example: </p>
<p>				stream=http(host=myhost;url_suffix=root/(MyName)/ml;port=80)</p>
<p>				This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535592">535592</a></td>
<td>If a CREATE EXTERNLOGIN statement was executed with an empty string for the password, the password recorded in the transaction log would have been incorrect. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535627">535627</a></td>
<td>The database properties CleanablePagesAdded and CleanablePagesCleaned could have reported that there were pages to clean when in actuallity there were none. This would have happened if a dbspace with cleanable pages was dropped. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535637">535637</a></td>
<td>If execution of a LOAD TABLE statement failed, and the table was large, database corruption could have resulted. The server may have freed a page twice. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535643">535643</a></td>
<td>Cancelling an ALTER TABLE statement for a large table, may have left the database in a corrupt state. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535662">535662</a></td>
<td>A SQL Anywhere JSON SERVICE may have returned unencoded control characters when the server wrote content that was greater than 256 bytes. This has been fixed. Strings containing control characters, such as newline, are now always encoded (i.e. &quot;\n&quot; is returned rather than 0x0A).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535799">535799</a></td>
<td>Executing queries using SELECT FIRST or SELECT TOP N, referencing proxy tables to a remote DB2 server, would have failed with a syntax error. DB2 does not support the FIRST and TOP N syntax; instead, the query must use FETCH FIRST ROW ONLY for FIRST, or FETCH FIRST N ROWS ONLY for TOP N. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535804">535804</a></td>
<td>Values for SOAP input TIME and DATETIME data types were incorrectly converted to the server&#39;s locale if the value contained a negative time zone offset, with a nonzero minute field, i.e. GMT-03:30 (Newfoundland). This has been fixed.</p>
<p>				In addition the processing of DATE values has modified with this change. The TZ offset if provided with an input DATE value is now ignored, and the TZ offset is no longer appended to an output DATE value (within the HTTP/SOAP response).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535817">535817</a></td>
<td>Sybase Central was not able to attach to a tracing db when the server was set to ignore all broadcasts (-sb 0), and no PORT number was specified. This has been fixed.</p>
<p>				Note, this is a follow-up to Engineering case 530790.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535849">535849</a></td>
<td>An application using the iAnywhere JDBC driver was not able to change the connection isolation level to one of the SA Snapshot Isolation levels. This problem has now been resolved. To use one of the SA Snapshot Isolation levels, the application can now call the Connection.setTransactionIsolation method with one of the following values:</p>
<p>				for applications using ianywhere.ml.jdbcodbc.IDriver, use:</p>
<p>				ianywhere.ml.jdbcodbc.IConnection.SA_TRANSACTION_SNAPSHOT</p>
<p>				ianywhere.ml.jdbcodbc.IConnection.SA_TRANSACTION_STATEMENT_SNAPSHOT</p>
<p>				ianywhere.ml.jdbcodbc.IConnection.SA_TRANSACTION_STATEMENT_READONLY_SNAPSHOT</p>
<p>				for applications using ianywhere.ml.jdbcodbc.jdbc3.IDriver, use:</p>
<p>				ianywhere.ml.jdbcodbc.jdbc3.IConnection.SA_TRANSACTION_SNAPSHOT</p>
<p>				ianywhere.ml.jdbcodbc.jdbc3.IConnection.SA_TRANSACTION_STATEMENT_SNAPSHOT</p>
<p>				ianywhere.ml.jdbcodbc.jdbc3.IConnection.SA_TRANSACTION_STATEMENT_READONLY_SNAPSHOT</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535861">535861</a></td>
<td>Updates to the OLE DB schema support procedures were not installed into the database using the Upgrade utility (dbupgrad) or when executing an ALTER DATABASE UPGRADE statement. They were installed though when the PROCEDURE ON clause was used with ALTER DATABASE UPGRADE. To ensure that dbupgrad will perform the OLE DB update, the ALTER DATABASE UPGRADE support procedures will now update and/or install the latest OLE DB schema support procedures. Since PROCEDURE ON is no longer required for the OLE DB update, you are no longer forced to update other system procedures.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535973">535973</a></td>
<td>Changes made to property values on the &quot;Client Properties&quot; page, in a server message store&#39;s property window, would not have been saved if the client was &quot;(Default)&quot;. This has been corrected so that they are now saved correctly.</p>
<p>				Also, if connecting using a QAnywhere connection profile was not possible, Sybase Central would have crashed rather than reporting the error. This has been corrected as well.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535983">535983</a></td>
<td>The usage messages for the QAnywhere Stop utility (qastop) did not display correctly on some non-english systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535988">535988</a></td>
<td>Attempting to setting the inline or prefix amount of a blob column to 32768 on a 32K pagesize database would have failed with the error:</p>
<p>				&#39;Illegal column definition: Column &#39;xxx&#39; inline value &#39;-32768&#39; is invalid&quot;</p>
<p>				This has now been fixed. A workaround is to use the value 32767. Doing so does not affect the amount of inline space available for the column as there is always some page overhead that is unusable for prefix data.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR535990">535990</a></td>
<td>The banner for the certificate utilities createcert, viewcert, and createkey could have been mangled on non-English systems. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536001">536001</a></td>
<td>When autostopping a database, the server could have failed assertion 201137 - &quot;Concurrent outstanding file growth requests.&quot; This would have been very rare, and timing dependeding. It was also possible to see this assertion when shutting down the server while a DDL operation, typically a long running one, was underway. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536015">536015</a></td>
<td>The ALTER VIEW RECOMPILE statement can be used to rebuild the view definition of an existing view. Among other things, the statement causes the schema of the view columns to be regenerated. If column permissions, as opposed to table permissions, have been granted on a view, then the recompilation could have failed with a foreign key constraint violation on SYS.SYSCOLUMN. The server now remembers all the column permissions on the view that exist before the recompile statement is executed. After the view has been recompiled, the server automatically restores the old column permissions based on column name look-ups in the new view definition. Note that if a column of the view that no longer exists after the recompilation will have the old permissions lost. A workaround is to drop the column permissions and to restore them after the view recompilation.</p>
<p>				See also Engineering case 534294 for a related issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536130">536130</a></td>
<td>The OUTPUT statement would have written VARBINARY values to TEXT files incorrectly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536143">536143</a></td>
<td>A new MobiLink server command line option, -ppv &lt;period&gt;, has been added which will cause the server to print new, periodic monitoring values every &lt;period&gt; seconds. The suggested period is 60s. If the period is set too small, the log will grow very quickly. These values provide insight into the state of the server, and are useful for determining the health and performance of the MobiLink server. For example, one could look at the DB_CONNECTIONS and LONGEST_DB_WAIT values to look for potential problems with the -w option or in the synchronization scripts. They also provide an easy way to track system wide throughput measures such as the number of rows uploaded or downloaded per second and the number of successful syncs per second. Each row of output is prefixed with &quot;PERIODIC:&quot; to aid searching for and filtering out the values.</p>
<p>				The following table contains a description of the printed values:</p>
<p>				Value Description</p>
<p>				TCP_CONNECTIONS Number of TCP connections currently opened</p>
<p>				PAGES_USED Number of cache pages used</p>
<p>				PAGES_LOCKED Number of cache pages loaded into memory</p>
<p>				TCP_CONNECTIONS_OPENED Total number of connections ever opened</p>
<p>				TCP_CONNECTIONS_CLOSED Total number of connection ever closed</p>
<p>				TCP_CONNECTIONS_REJECTED Total number of connection ever rejected</p>
<p>				TCP_BYTES_READ Total number of bytes ever read</p>
<p>				TCP_BYTES_WRITTEN Total number of bytes ever written</p>
<p>				ML_NUM_CONNECTED_CLIENTS Number of connected sync client</p>
<p>				PAGES_SWAPPED_OUT Total number of pages ever swapped to disk</p>
<p>				PAGES_SWAPPED_IN Total number of pages ever read from disk</p>
<p>				PAGES_IN_STREAMSTACK Number of pages held by the network streams</p>
<p>				CPU_USAGE Amount of CPU time used by MobiLink server in microseconds</p>
<p>				NUM_COMMITS Total number of commits</p>
<p>				NUM_ROLLBACKS Total number of rollbacks</p>
<p>				NUM_SUCCESS_SYNCS Total number of successful syncs</p>
<p>				NUM_FAILED_SYNCS Total number of failed syncs</p>
<p>				NUM_ERRORS Total number of errors</p>
<p>				NUM_WARNINGS Total number of warnings</p>
<p>				DB_CONNECTIONS Number of database connections in use</p>
<p>				RAW_TCP_STAGE_LEN Length of the network work queue</p>
<p>				STREAM_STAGE_LEN Length of the high level network processing queue</p>
<p>				HEARTBEAT_STAGE_LEN Length of the queue for periodic, non-sync work</p>
<p>				CMD_PROCESSOR_STAGE_LEN Length of the queue for sync work</p>
<p>				NUM_ROWS_DOWNLOADED Total number of rows sent to remotes</p>
<p>				NUM_ROWS_UPLOADED Total number of rows received from remotes</p>
<p>				FREE_DISK_SPACE Disk space available on the temp disk in bytes</p>
<p>				LONGEST_DB_WAIT Longest length of time an active sync has been waiting for the database</p>
<p>				LONGEST_SYNC Age of the oldest sync in ms</p>
<p>				NUM_UNSUBMITTED_ERROR_RPTS Number of unsubmitted error reports</p>
<p>				MEMORY_USED Bytes of RAM in use. Windows only.</p>
<p>				SERVER_IS_PRIMARY 1 if the server is primary; 0 otherwise</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536173">536173</a></td>
<td>If the file containing the trusted certificates specified by the &quot;trusted_certificates&quot; option was not found, the error STREAM_ERROR_SECURE_ADD_TRUSTED_CERTIFICATE was reported, which was not very specific. Now STREAM_ERROR_SECURE_TRUSTED_CERTIFICATE_FILE_NOT_FOUND is reported, as was done in 10.0 and previous versions.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536335">536335</a></td>
<td>If an application generated a result set via one DatabaseMetaData call, and then generated a second result set via another DatabaseMetaData call, then the first result set would have been automatically closed. This behaviour is not incorrect, and is consistent with many other JDBC drivers. However, some applications have had the need to keep two separate DatabaseMetaData result sets open at the same time. The iAnywhere JDBC driver has now been enhanced to allow up to three separate DatabaseMetaData result sets to remain open at the same time.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536347">536347</a></td>
<td>Executing a LOAD TABLE statement with the clause CHECK CONSTRAINTS OFF, may have failed if the table being loaded had publications. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536370">536370</a></td>
<td>For workloads that consisted of very inexpensive queries (for example, where each statement was executed in less than a millisecond), the server performance was slower than previous versions. This has been improved. As part of this change, a larger class of statements now bypasses query optimization. The properties QueryBypassed and QueryOptimized can be used to measure how many statements bypass optimization, or use the full query optimizer. The time required when a table was first accessed could have been slower than previous versions. This was particularly true for databases with many columns, and was very noticeable on CE platforms. This has been fixed.</p>
<p>				Further, in some cases the plan text for a simple statement could show the table name instead of the correlation name. This has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536374">536374</a></td>
<td>HotSync may have logged a -305 error for a synchronization failure, and potentially other database corruption. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536388">536388</a></td>
<td>In rare situations, a busy HTTP server may have timeouted a connection as the request was queued, causing the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536541">536541</a></td>
<td>If an application attempted to update or delete from a proxy table joined with a local table, then the server may have failed an assertion, or crashed. The server will now correctly give error -728 &#39;Update operation attempted on non-updatable remote query&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536543">536543</a></td>
<td>During diagnostic tracing, CONNECT and DISCONNECT request, as well as other information, could have been missing for a connection. DISCONNECT request were missing for some user connections, and CONNECT request and all statistics were missing for internal connections. This has been fixed. As well, some internal connections will be logged with both CONNECT and DISCONNECT requests, while others will not be displayed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536563">536563</a></td>
<td>The insert performance sample (instest) shipped with SQL Anywhere did not correctly assign values to integer columns on 64-bit big-endian platforms. Depending on the definition of the table being used, may have caused instest to terminate prematurely. The instest sample has now been corrected. This problem can be worked around by modifying the FillItem() function in instest.sqc to use an &quot;int&quot;, instead of a &quot;long&quot;, in the cast performed for the DT_INT/DT_UNSINT case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536568">536568</a></td>
<td>Using the SQL Anywhere Support utility (dbsupport) to check for updates on HP-UX and AIX would have failed to check for 32-bit client updates. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536588">536588</a></td>
<td>If an application connected using a TDS based client (i.e. jConnect, iAnywhere JDBC) and attempted to use a procedure in the FROM clause of a SELECT statement, then the TDS client may have reported a TDS protocol error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536594">536594</a></td>
<td>If an external function that was defined to return an integer value was assigned to a variable declared as INT, a &quot;Value out of range for destination&quot; error would have been given. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536608">536608</a></td>
<td>Calling sa_set_option(&#39;AcceptCharset&#39;, &#39;+&#39;); from within a stored procedure that is called via an HTTP request should set the response to the database charset whenever possible, but when a client specified the database charset it was only selected when its q-value was among the highest. This has been fixed so that the response uses database charset if specified by the client, regardless of q-value preference.</p>
<p>				Example:</p>
<p>				SA server uses ISO-8859-1 charset,</p>
<p>				client specifies Accept-Charset:UTF-8,IBM850;q=0.8,ISO-8859-1;q=0.5</p>
<p>				Although least preferred by the client, SA will respond with ISO-8859-1 if SA_SET_HTTP_OPTION(&#39;AcceptCharset&#39;, &#39;+&#39;); has been called (from within a procedure servicing the HTTP request).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536620">536620</a></td>
<td>The OLE DB provider&#39;s ICommandWithParameters::SetParameterInfo() method may have caused an access violation, depending on the order of parameter indexes in rgParamOrdinals, which is one of the input parameters to the method. The problem may have also occurred if SetParameterInfo() was called after ICommandPrepare::Prepare(). This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536739">536739</a></td>
<td>The server could could have raised assertion 102802 - &quot;Unable to undo index changes resulting from a failed column alteration&quot; if an ALTER statement failed, or was cancelled. This has now ben fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536746">536746</a></td>
<td>When an encryption library could not found, the MobiLink server would have issued a misleading message indicating corruption:</p>
<p>				Invalid or corrupt network interface library: xxxxx</p>
<p>				This has been corrected so that now the MobiLink server issues the message:</p>
<p>				Failed to load library xxxxx</p>
<p>				he documentation for the load library message indicates that a license may be required, which is appropriate in this case.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536805">536805</a></td>
<td>Grouping queries containing a CUBE, ROLLUP or GROUPING SETS clause may have returned incorrect results. The query must also have had a HAVING clause with at least one null sensitive predicate (e.g., &#39;T.C IS NULL&#39; , &#39;T.C IS NOT NULL&#39; ). This has been fixed. </p>
<p>				An example:</p>
<p>				select dim1, dim2, sum (val1), stddev (val2)</p>
<p>				from tt</p>
<p>				group by cube (dim1, dim2)</p>
<p>				having dim1 is not null or dim2 is not null</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536808">536808</a></td>
<td>The server tracks dependencies of views on other views and tables. If a view referenced another view and the view definition of the referenced view was &quot;flattened&quot; or &quot;inlined&quot; within that of the referencing view, then the server could have failed to correctly record the dependency information. The server now behaves correctly when recording dependency information in this situation. Any existing views can have their dependency information recorded correctly by being recompiled.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536921">536921</a></td>
<td>Applications using the iAnywhere JDBC driver, could have crashed or hung if a process ran out of memory. This has been fixed so that it will now either fail gracefully, or cause an assertion with an appropriate error message, depending on the circumstances.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR536966">536966</a></td>
<td>The server may have crashed if a rank function (see SQL Functions-&gt;Function types-&gt;Rank functions in the SQL Usage guide) was used on constants. The row_number() function in the example below:</p>
<p>				select x from ( select V1.*, row_number() over ( order by b ) AS x </p>
<p>				from ( select *, 7 as b from T1 order by 1 ) V1 </p>
<p>				) V2 </p>
<p>				is used on column &quot;b&quot; of the nested table expression &quot;V1&quot;, and column &quot;b&quot; is a constant there. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537126">537126</a></td>
<td>When running on multiprocessor machines, statements with joins may have caused a server crash in rare conditions. This is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537147">537147</a></td>
<td>If an application prepared a non-INSERT statement (i.e. a DELETE or an UPDATE statement) and used PreparedStatement.addBatch() followed by PreparedStatement.executeBatch() to execute a wide DELETE or wide UPDATE, then the results of executing the batch were unpredictable. Prepared batches were intended to be used for wide inserts only, but the iAnywhere JDBC driver did not restrict the usage to wide inserts. The driver now imposes this restriction and will throw an exception if an application attempts to use addBatch()/executeBatch() on a non-INSERT statement.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537153">537153</a></td>
<td>On AIX systems, in some very rare circumstances, the server could have crashed while listening for network broadcasts. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537164">537164</a></td>
<td>The server assigns a unique object id for every object created in the database. The object ids are stored in the catalog table SYS.ISYSOBJECT. When objects are deleted, their ids are reused for new objects when the ids being released are at the end of the currently allocated range. Under concurrent execution of DDL operations it was possible for the server to avoid reusing some object ids even when it was possible to do so. There was no likely adverse effect of this deficiency, which has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537170">537170</a></td>
<td>The Interactive SQL utility (dbisql) would have crashed when the Plan Viewer window was oipened if the SQL Anywhere plugin was not registered. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537171">537171</a></td>
<td>The search condition REGEXP and system function REGEXP_SUBSTR() were using the database&#39;s collation to determine if a literal, or character class range, in the pattern matched the string. For example, if the database was case insensitive and accent insensitive, matches were case insensitive and accent insensitive as well. Ranges were evaluated using the collation sort order. This resulted in different behavior than other tools such as Perl, Java, .NET, etc. This has been fixed so that REGEXP and REGEXP_SUBSTR() only match a literal in a pattern if it is the exact same character. Ranges in character classes (for example &#39;[A-F]&#39;) only match characters which have character set encoding greater than or equal to the encoding of the first character in the range (A in &#39;[A-F]&#39;) and less than or equal to the encoding of the second character in the range (F in &#39;[A-F]&#39;).</p>
<p>				Note, this change does not affect the SIMILAR TO search expression, which continues to use the collation to determine character equivalence and evaluate character class ranges.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537172">537172</a></td>
<td>In some cases, an execution plan using a parallel execution strategy could have used a low-memory fallback strategy, even though there was sufficient memory for it to complete. The QueryLowMemoryStrategy property would have increased if the low memory strategy for the operator was used. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537177">537177</a></td>
<td>The search conditions SIMILAR TO and REGEXP, when used with the sub-character classes [[:upper:]] and [[:lower:]], were case insensitive on a case insensitive database. This has been fixed so that [[:upper:]] only matches upper case characters and [[:lower:]] only matches lower case characters, regardless of the database case sensitivity.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537333">537333</a></td>
<td>HTTP clients going through the Relay Server may now optionally include the IAS-RS-Cookie header with the value set to &#39;reset&#39; in the first request within the session. This was added in order to defeat the old standard cookie memorized by HTTP proxies, like the Blackberry MDS. If the client has full control of cookie caching, and a new http session will not reuse an old cookie, then implementation of this option is not needed in the client. This feature is suitable for Blackberry devices behind MDS, where the client application does not have real control on when to end the underlying HTTP session.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_57.htm#CR537337">537337</a></td>
<td>Calling the ODBC function SQLGetProcedureColumns() would have failed with the error -143 &quot;Column &#39;remarks&#39; not found&quot; when using a SQL Anywhere ODBC driver from a version prior to 10.0 and connected to version 10.0 or later server. This was due the ODBC drivers prior to version 10.0 referencing the SYSPROCPARM.remarks column in the SQLGetProcedureColumns() function, which had been dropped in version 10.0 and later database files. The SYSPROCPARM.remarks column has been re-added as a constant NULL.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537391">537391</a></td>
<td>A connection may have held table or row locks even after a DDL statement had failed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537399">537399</a></td>
<td>The search condition REGEXP, and the system function REGEXP_SUBSTR(), were treating _ (underscore) and % (percent) as meta characters to match any character or any characters respectively. Also, if a caret (^) was in a character class, but not the first character after the open square bracket (for example [a-e^d]), then it was treated as a subtraction character class operator. These behaviours were different than other tools such as Perl, Java, .NET, etc. This has now been fixed so that _ and % are not meta characters for REGEXP and REGEXP_SUBSTR(); and a caret which is not the first character after the open square bracket now matches a caret.</p>
<p>				The search condition SIMILAR TO has not been changed. For SIMILAR TO, _ matches one character, % matches any number of characters and [a-e^d] matches a, b, c and e.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537555">537555</a></td>
<td>Dropping a table could, in rare circumstances, have caused the server to fail assertion 102806 &quot;Unable to delete row from SYSTABLE&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537558">537558</a></td>
<td>A side effect of the combined fixes for Engineering cases 533936 and 536335 was to cause Sybase Central to crash when attempting to expand the table tree view in the MobiLink plugin. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537560">537560</a></td>
<td>It was possible for calls to DB_Property( &#39;DriveType&#39; ) on AIX systems to erroneously return &quot;UNKNOWN&quot;. A buffer used to enumerate the various mounted filesystems may have been too small. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537575">537575</a></td>
<td>Sybase Central would have crashed if it was connected to the utility database and then connected to another database running on the same server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537579">537579</a></td>
<td>The QAnywhere client (qaagent) would have silently initialized a new database the first time it was run. This has been fixed so that it now is mandatory to initialize a new database as a QAnywhere message store by running qaagent with -si, as a separate step.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537595">537595</a></td>
<td>The changes for Engineering case 534179 introduced a problem where the QAnywhere Server&#39;s logging messages could have been output as garbled text. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537609">537609</a></td>
<td>If a synchronization contained tables for which no rows were uploaded or downloaded, the MobiLink server would have allocated more memory than was neccessary. This has been fixed so that the memory usage will be proportional to the number of columns in empty tables multiplied by the number of upload transactions. In tests with 50 concurrent syncs of 200 empty tables with 6 columns per table, the peak memory used by MobiLink server dropped by 178MB, or about 3kB per column. Systems that synchronize many empty tables, or use transactional uploads (i.e. the -tu option on dbmlsync), will see improved performance with this fix.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537610">537610</a></td>
<td>Some queries with an illegal CONTAINS search condition could have caused the server to crash. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537616">537616</a></td>
<td>Under rare circumstances, the server could have gone into an infinite loop after a non-recurring scheduled event was run. Any attempts to communicate with the database on which the event was scheduled would have blocked. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537620">537620</a></td>
<td>The sync_request phase time was incorrect in the MobiLink monitor. It was usually 0, but could be negative. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537747">537747</a></td>
<td>If an application used the iAnywhere JDBC driver with either a Microsoft SQL Server, or DB2, ODBC driver, and the application did not explicitly close Statement or PreparedStatement objects, then it was possilbe that the application would have hung at garbage collection time. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537748">537748</a></td>
<td>When running the server in &#39;in memory&#39; mode, the server would still have enforced the per-connection temporary space limit, even though no temporary files are used when running in &#39;in memory&#39; mode. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537774">537774</a></td>
<td>Under rare circumstances, clients running on Unix systems, could have crashed on disconnect. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537786">537786</a></td>
<td>As of version 11.0.0, DML operations on temporary tables are allowed to have full transactional semantics (i.e. commit and rollback) on read-only databases. However, the support for this feature was not fully enabled. This has been corrected.</p>
<p>				Additionally, the creation of savepoints for temporary objects on read-only databases is also now supported.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537787">537787</a></td>
<td>If a C++ application had been created using the DBSync API, it was possible that this application would not have been able to connect to the a MobiLink client started in server mode, if the machine supported IPv6. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537800">537800</a></td>
<td>If an application executed a remote query with a malformed field or dotted reference in the select list, then it was possible that the server could have crashed. An example of such a query is:</p>
<p>				select c1.ref(), max( c2 ), c2 from t1</p>
<p>				where c1.ref() is a meaningless expression. This problem has now been fixed and a proper error message will be returned to the application.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537804">537804</a></td>
<td>When the size of a long varchar or long binary column exceeded 32 KB on Windows, or 1 KB on Windows Mobile, the column may not have been read correctly by the OLE DB provider. This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537917">537917</a></td>
<td>A download_delete_cursor script that returned NULL and non-NULL values for the primary key columns of a synchronized table would have made the MobiLink client behave erratically: the client could have deleted rows that should not have been deleted, or could have displayed the following error message:</p>
<p>				SQL statement failed: (100) Row not found</p>
<p>				This problem has been fixed. The MobiLink server will now complain if a download_delete_cursor returns NULL as well as non-NULL values for the primary key columns of a synchronized table, and will then abort the synchronization.</p>
<p>				The download_delete_cursor script must return NULL values for all the primary key columns (the MobiLink client will delete all</p>
<p>				the rows from the corresponding sync table) or non-NULL values (the client will delete specific rows specified by the primary</p>
<p>				key values).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537923">537923</a></td>
<td>Execution of some queries involving procedure calls could caused a server crash. This is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537962">537962</a></td>
<td>If an error occurred when executing a Java or .NET synchronization script, and operations had been performed on the connection returned from the DBConnectionContext.getConnection method, it was possible for those operations to have been committed to the consolidated database. In order for this to have occurred, the Java or .NET synchronization script would have to have been executed before any SQL scripts were executed in the transaction by the MobiLink Server. As a workaround, a SQL synchronization script that does nothing could be defined that executes at the start of the transaction. For example, define a begin_upload connection event that calls a stored procedure, that does nothing, to prevent a problem in the handle_uploadData event resulting in operations performed in the handle_uploadData event from being accidentally committed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR537965">537965</a></td>
<td>Executing a STOP JAVA command may have, in rare circumstances, caused the server to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538098">538098</a></td>
<td>The space previously used by deleted rows was not being reclaimed and reused on the mirror server of a mirroring system. As a result, the mirror server&#39;s database could have grown faster than the database on the primary server. This space would have eventually be reclaimed if the mirror server became the primary server. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538099">538099</a></td>
<td>Attempting to copy a large number of values in the &quot;Results&quot; pane could have caused Interactive SQL (dbisql) to crash. This has been foxed so that an error message is now displayed and the copy is aborted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538128">538128</a></td>
<td>Attempting to upgrade the mirrored database in a mirroring system, using the Upgrade utility (dbupgrad), or by executing an ALTER DATABASE UPGRADE statement, would have resulted in transaction log entries which could not be replayed on the mirror server. An error will now be given if an upgrade is attempted on a database which is currently being mirrored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538145">538145</a></td>
<td>MobiLink servers with web edition licenses had an incorrect feature set. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538146">538146</a></td>
<td>Under some update patterns, concurrent changes to text indexes created with the IMMEDIATE REFRESH clause, could have caused assertion failure 110400. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538156">538156</a></td>
<td>Long running MobiLink Monitors could have hang or crashed with a RuntimeException &quot;the monitor doesn&#39;t send any-order commands&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538275">538275</a></td>
<td>If a query execution plan contained a Group-by Ordered (GrByO) operator in a particular stylized access plan pattern containing an outer joing, and the group-by node had a string or NUMERIC value in the result, then it was possible for the server to crash while processing the statement. The crash would have depended on the order and values of rows processed by the plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538292">538292</a></td>
<td>When Sybase Central was used to create a proxy table to a remote table in an ADS database, accessing the proxy table to perform queries or updates would have failed. This problem has now been fixed. It should be noted that in order to use proxy tables to an ADS table, the ADSODBC class must be used. Using the generic ODBC class will continue to cause access problems for ADS proxy tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538303">538303</a></td>
<td>If while executing an ATTACH TRACING statement, the tracing server was stopped, the server being traced could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538305">538305</a></td>
<td>The server console&#39;s checkpoint begin and end messages were not being displayed when the server was run in &#39;in memory&#39; mode with Checkpoint only (-im c). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538306">538306</a></td>
<td>If multiple connections executed DDL statements concurrently, then, under very rare circumstances, it was possible for the server to behave incorrectly. This problem has been resolved.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538317">538317</a></td>
<td>The Windows Mobile Deployment wizard was always writing to sqlany11.cab, rather than the filename specified by the user. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538324">538324</a></td>
<td>Attempting to create a table with a varchar(36) column with a default of newid() would have failed with a syntax error. The column could have been later altered to add the newid() default, but the generated default values would have been garbage. These two bugs have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538346">538346</a></td>
<td>When the QAnywhere Agent was started for the first time, and another the qaagent to fail to start with an error similar to:</p>
<p>				InternalError: User &#39;DBA&#39; has the row in &#39;ml_qa_global_props_client&#39; locked</p>
<p>				Source statement: CREATE SYNCHRONIZATION SUBSCRIPTION TO ml_qa_user_group.ml_qa_repository_pub FOR &quot;sender-rules&quot; OPTION sv=&#39;ml_qa_2&#39;</p>
<p>				This has been fixed by now having the QAnywhere Agent acquire exclusive locks on tables involved in the publication, before creating the synchronization subscription.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538347">538347</a></td>
<td>If the MobiLink server was started unsuccessfully (i.e invalid parameter, unable to connect to database, invalid stream specified), and no logging option was specified (-o or -ot), then the server would have displayed an error dialog and waited for the shutdown button to be pressed. After waiting about a minute for the manual shutdown, the server could then have crashed. This has been fixed.</p>
<p>				Note, this problem should only have occurred on systems where a GUI was used.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538480">538480</a></td>
<td>In rare circumstances, the server could have crashed while disconnecting if -zl, -zp, sa_server_option( &#39;RememberLastStatement&#39;, &#39;YES&#39; ) or sa_server_option( &#39;RememberLastPlan&#39;, &#39;YES&#39; ) were used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538484">538484</a></td>
<td>The server allows the use of host variables with the INSERT statement, to insert multiple rows into the database in a single request. Under certain circumstances, the server could have crashed when block inserts were executed in the server. This has been fixed so that the server now generates an error message instead in these circumstances.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538547">538547</a></td>
<td>The search conditions SIMILAR TO and REGEXP, and the fuction REGEXP_SUBSTR() could have given incorrect results for some patterns if the string being searched was more than 250 bytes in length. The search string could be 250 bytes in length if it contained as few as 63 characters and the database character set was multi byte (including NCHAR strings). It was possible that a pattern would not have matched a string that it should have. In rare cases the server could even have crashed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538694">538694</a></td>
<td>An application that did not explicitly close Statement, PreparedStatement or CallableStatement objects may, in rare cases, have crashed when closing a Connection object. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538698">538698</a></td>
<td>The &#39;tempfilename&#39; property would have returned a value when running in In-Memory mode, even though neither supported In-Memory modes use a temporary file. This has been fixed so that the &#39;tempfilename&#39; property now returns NULL when the server is running in In-Memory mode.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538700">538700</a></td>
<td>UltraLiteJ did not work with cookie injecting proxy servers, such as the Relay Server. This has been fixed. </p>
<p>				Note that on the BlackBerry, the MDS may cache cookies for the devices that go through it, and so UltraLiteJs cookie behaviour may be different from other remotes. In particular, cookies sent to the remote may be cached for longer than the duration of a sync. When using a proxy other than the Relay Server, ensure that the optional cookie fields, defined in RFCs 2109 and 2965 dealing with cookie caching, are properly set, or disable this feature in your MDS. The Relay Server is unaffected by this caching, but other cookie injecting proxies may be affected by it.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538737">538737</a></td>
<td>When a mirror server was started in preferred mode, it was possible for the synchronization between the primary and the mirror to have failed. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538743">538743</a></td>
<td>When attempting to use a MobiLink Java Start class that made use of UltraLiteJ, an error similar to &quot;&lt;Main&gt; [-10150] Linkage error while loading class: &#39;jdbssint&#39; Error description: &#39;ianywhere/ultralitej/Configuration&#39;&quot; would have occurred, and the server would have failed to start. The problem was due to class name conflicts, which have been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538862">538862</a></td>
<td>If ALTER DATABASE UPGRADE was executed twice, using the same connection, the second execution would have failed. The upgrade scripts did not remove some temporary objects used by the scripts. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538863">538863</a></td>
<td>The Database Documentation Wizard could have crashed Sybase Central if it ran out of memory. A number of changes have been made to reduce the amount of memory needed to generate documentation, so that it now reports an out-of-memory error and leaves the program in a state where it can safely continue working.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538865">538865</a></td>
<td>Applications using TLS on Mac OS X systems, may have experienced crashes. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538882">538882</a></td>
<td>If the stored procedure debugger was used to trace execution of a procedure containing a variable defined as UNIQUEIDENTIFIER, the value and datatype for the variable would not have been displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538883">538883</a></td>
<td>If the ansi_close_cursors_on_rollback option was set to &#39;ON&#39;, and request logging of plans was enabled, the server could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538904">538904</a></td>
<td>If an application using the iAnywhere JDBC driver called the method ResultSet.isLast() when the result set was positioned on the last row, the call would have correctly returned a value of &#39;True&#39;, but the result set position would have been move to be after the last row. The problem has now been fixed.</p>
<p>				Note, this problem does not occur if the result set is not positioned on the last row.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538912">538912</a></td>
<td>Right-clicking on a result set, then selecting the item &quot;Copy/Copy Cell&quot; from the menu, would only have copied the cell value if the cell had previously been left-clicked. This has been corrected so that left-clicking is no longer necessary.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538920">538920</a></td>
<td>The Database Documentation wizard would have reported an unhelpful error message when a user, which was not a member of the SYS group, logged in . The wizard used a number of queries which referenced system tables without the appropritate creator qualifier. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538931">538931</a></td>
<td>The Create Service Wizard would have provided default paths for 32-bit executables when 64-bit executables were available on a 64-bit version of Windows. This has been corrected so that default paths for 64-bit executables are now provided if they are available; otherwise, default paths for 32-bit executables are provided.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538936">538936</a></td>
<td>The Dbmlsync Integration Component could have crashed during a call to the Run method. As well, the OS would sometimes have detected a heap error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538953">538953</a></td>
<td>The Relay server may have failed to relay http responses for a several minutes after seeing an rsoe uuid mismatch on down channel connect. This would have been rare, as it required the down channel to be renewed right before an up channel renewal, plus the up channel renewal must have renewed the uuid before the down channel was authenticated. The Relay Server would have eventually detected an error on writing over the failed down channel and would have been able to recover, however http responses or portions of it relayed within that period were lost. This problem has been fixed and a rsoe uuid mismatch should not occur on a down channel unless this is caused by invalid running duplicated instances of the Relay Server with the same backend server identity.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538954">538954</a></td>
<td>Server Initiated Synchronizations, using persistent connections, didn&#39;t scale well as it required persistent resource per connected client on the backend server, as well as onintermediaries like the Redirector or Relay Server. This limitation may have caused large deployments to require a server farm, which is not supported until version 11.x. Now with this change, an alternative solution is provided based on light weight polling. This alternative is based on a new caching notifier in the MobiLink server, and a client API for polling the notification (MobiLink Lightweight Polling API). The caching notifier refreshes the current set of notifications by executing a request_cursor against the database at a setable frequency. The cache is exposed for clients to poll without involving database access, nor authentication via the same MobiLink server port.</p>
<p>				Caching notifier</p>
<p>				A caching notifier is a notifier with a request_cursor that return a result set with 1, 2 or 3 columns. The first column is the key of the notification, the optional second column is the subject of the notification and the optional third column is the content of the notification. A caching notifier doesn&#39;t need gateways or tracking information in order to push notifications down to clients. Clients are expected to initiate connection and poll at the cache refresh frequency. Users may define multiple caching notifiers for different business logic, and they can co-exist with other regular or caching notifiers.</p>
<p>				MLLP API</p>
<p>				Development resources are found under the following location</p>
<p>				%SQLANY10%\MobiLink\ListenerSDK\windows\src\mllplib.h</p>
<p>				%SQLANY10%\MobiLink\ListenerSDK\windows\x86\mllplib.dll</p>
<p>				%SQLANY10%\MobiLink\ListenerSDK\windows\x86\mllplib.exp</p>
<p>				%SQLANY10%\MobiLink\ListenerSDK\windows\x86\mllplib.lib (import library for the dll)</p>
<p>				MLLP client will dynamically load various ML client stream library.</p>
<p>				Example MLLP client app</p>
<p>				Please see %SQLANYSH10%\samples\MobiLink\SIS_CarDealer_LP2</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR538963">538963</a></td>
<td>The Relay server was holding on to workers when finished serving Afaria traffic. A new command line option &quot;-af&quot; has been added to the Relay Server Outbound Enabler (rsoe) so that the Relay Server will be notified when the backend server disconnects. The relay server will then abort waiting for the entire content length to be satisfied. Without this option, rsoe will not notifiy the Relay Server when the backend disconnects and a worker in the Relay Server has finished relaying responses from an Afaria server, but will wait for more data until a timeout (default 8 minutes) before exiting. Older Relay Servers are not compatible with this newer rsoe. Newer Relay Server remains backward compatible with an older rsoe though.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539056">539056</a></td>
<td>For a statement of the form &quot;EXEC &lt;linked_server_name&gt;..dba.myproc&quot;, Microsoft SQL Server 2005 passes a statement of the form {?=call &quot;dba&quot;.&quot;myproc&quot; } to the SQL Anywhere OLE DB provider. It passes in a single integer parameter for binding with a status of DB_E_UNAVAILABLE. The SQL Anywhere OLE DB provider had always checked the status of parameters and accepted one of DBSTATUS_S_DEFAULT, DBSTATUS_S_ISNULL, or DBSTATUS_S_OK. Any other status was flagged with an error. As such, the above example would have failed with an error. Since the parameter is OUTPUT-only, the status of the parameter can be ignored, as the status for any OUTPUT parameters will be set after the statement has been executed and any OUTPUT parameters will be filled in. The OLE DB provider behaviour has been changed to ignore the incoming status of OUTPUT-only parameters. This allows the EXEC statement to execute successfully.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539077">539077</a></td>
<td>The changes for Engineering case 533936 introduced a problem where calling the JDBC method Statement.cancel() did not work for queries that did not return a result set. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539085">539085</a></td>
<td>A number of changes have been made to improve the performance of the Interactive SQL utility over networks with high latency. All the changes are related to minimizing the number of server requests.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539091">539091</a></td>
<td>The 64-bit server for Sun Solaris performed poorly when executing queries. This has been </p>
<p>				fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539094">539094</a></td>
<td>If an application was using the iAnywhere JDBC driver to generate one or more result sets by making DatabaseMetaData calls, then there was a chance the DatabaseMetaData result sets would not have been garbage collected until connection close time. Note that at most 3 of these result sets would have remained open until connection close. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539095">539095</a></td>
<td>If a mirroring server was accidentally started a second time, the second instance could have crashed after displaying an error. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539106">539106</a></td>
<td>In some cases where expressions were evaluated in stored procedures or batches outside of SELECT, INSERT, UPDATE or DELETE statements, it was possible for the expressions to be evaluated incorrectly. The incorrect behaviour would have appeared if arithmetic expressions were used with one argument a DATE, TIME, or TIMESTAMP, or both arguments were strings. In these cases, the incorrect domain could have been used for the arithmetic expression if it were used in an IF, CASE, IN, or concatenation operation.</p>
<p>				For example, the following select improperly returned &#39;0002&#39;, the correct answer should be a numeric with value 2.</p>
<p>				create variable @v_res long varchar;</p>
<p>				set @v_res = if 1=1 then &#39;0002&#39; else &#39;1&#39; - &#39;2&#39; endif;</p>
<p>				select @v_res</p>
<p>				This problem could have also resulted in conversion errors being returned in cases where they should not, or missed in cases where they should have been generated. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539113">539113</a></td>
<td>Attempting to execute queries with some illegal constructs involving the CONTAINS search condition, couls have lead to a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539128">539128</a></td>
<td>If an UltraLiteJ database had a publication defined that contained only some of the synchronizable tables, and that publication was synchronized, any changes waiting to be uploaded in the tables that were not yet sync&#39;ed would have been lost. They would still have been in the database, but would have been marked as having been uploaded.</p>
<p>				Also, UltraLiteJ was incorrectly identifying to MobiLink that tables being synchronized were in all publications currently sync&#39;ed and UltraLiteJ was incorrectly sending the last download time of publications. Both of these problems have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539257">539257</a></td>
<td>If an UltrLiteJ synchronization failed, an error complaining about a dropped connection would sometimes have been printed to the log. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539289">539289</a></td>
<td>Applications using iAnywhere JDBC driver may have hung when calling the method ResultSet.get*(). This has been fixed.</p>
<p>				Note, this problem was introduced with the changes for Engineering case 533936.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539308">539308</a></td>
<td>On Windows CE devices, the text of the server usage message was mangled. The message box dialog on CE was expecting utf-16 text, but was incorrectly being passed OS charset text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539309">539309</a></td>
<td>If the MobiLink Server had been started with the -nba+ switch, it was possible for the MobiLink Server to have crashed if a non-blocking download acknowledgment was received from a remote database, and the MobiLink Server had lost all its connections with the consolidated database. The MobiLink server will now properly report that all connections to the consolidated database have been lost.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539356">539356</a></td>
<td>The Interactive SQL utility (as well as all the graphical administration tools) did not work with authenticated servers. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539358">539358</a></td>
<td>Multiple ORDER BY expressions could have caused an exception when there existed an index with fewer columns than the number of ORDER BY expressions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539496">539496</a></td>
<td>At verbosity level 3 or above the Relay Server was logging a faulty protocol version of the connecting Outbound Enabler. The Relay Server also did not completely log the OE_REQUEST_RS_PEER_LIST packet. Although these problems were not affecting the Relay Server&#39;s functionality, they have been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539499">539499</a></td>
<td>If the Overview, Details Table or Graph were disabled in the MobiLink Monitor, closing the Monitor and restarting it would have resulted in a Java null pointer exception. This has been fixed. A workaround is to edit the settings file (.mlmMonitorSettings in version 10 and earlier, .mlMonitorSettings11 in version 11) to restore display of the disabled feature. For the Overview, change ShowOverview=false to ShowOverview=true. For the Table, change ShowTable. For the Graph, change ShowGraph.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539609">539609</a></td>
<td>When running in In-Memory, No-Write mode, only one LOAD TABLE statement was allowed to execute on the database at a time. This was due to the fact that LOAD TABLE, when not running in In-Memory mode, uses the checkpoint log for its page-level undo information, and there can only be one page-level undo operation active on a given database at a time. However, the In-Memory No-Write mode does not use a checkpoint log and therefore has no need of page-level undos. This has been fixed for performance reasons. As a consequence, when running in No-Write mode, multiple, concurrent LOAD TABLE statements may now be active at any point in time, to the same or different tables.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539620">539620</a></td>
<td>In certain rare and highly timing sensitive cases, the server could have hung when shutting down, if an xp_cmdshell() procedure was still running. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539627">539627</a></td>
<td>Some lines printed to the MobiLink server log would not have caused LogListeners to fire. In particular, warning 10082, &quot;MobiLink server has swapped data pages to disk out:&lt;...&gt; concurrently used pages:&lt;...&gt;&quot;, never triggered LogListeners. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539637">539637</a></td>
<td>The Check for Updates feature in the Interactive SQL utility (as well as all the graphical administration tools) would always have returned &quot;Unable to contact update server&quot;. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539681">539681</a></td>
<td>If a connection string included the LINKS parameter, but included an unrecognized protocol type (eg. due to a typo), the error message would have been: &quot;Trying to add unknown port&quot;, which was not indicitive of the problem. This has been corrected so that the message is now: &quot;Trying to add unknown port &#39;&lt;port&gt;&#39;&quot; where &lt;port&gt; is the invalid port type.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539756">539756</a></td>
<td>On systems other than Windows, the Database Documentation wizard would have displayed the generated HTML files in a poorly formatted way. There was nothing wrong with the HTML files, it was just that the component used to display them was inadequate. This has been corrected so that the wizard now attempts to find an installed web browser and uses that to display the files instead.</p>
<p>				Note, users can always view the documentation using whatever browser they choose, as a work around to this issue. </p>
<p>				There was nothing wrong with the HTML files. It was just that the component used to display them was inadequate. Users can always view the documentation using whatever browser they choose to work around this issue.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539772">539772</a></td>
<td>Installs created by the SQL Anywhere Deployment wizard would only have appeared in the Add or Remove Programs list in Control Panel, for the users that installed the MSI. This behaviour has been changed. The install will now appear in the Add or Remove Programs list for all users.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539799">539799</a></td>
<td>Notifier errors were cataglorized as MobiLink server errors. Errors such as failing to resolved a delivery path to a remote device, and/or failing a push attempt, was resulting in an error line in the MobiLink server log that began with an &quot;E.&quot;. This also caused an new entry in the system event log. Notifier errors can be highly repeatative, if the business logic was not implemented in a way that minimized failing attempts. Since these failures are not affecting syncs, they have been recataglorized as informational messages that begin with &quot;I.&quot; instead. Two sub labels, &quot;&lt;SISI&gt;&quot; and &quot;&lt;SISE&gt;&quot; have also been added to differentiate notifier informational message and notifier error message.</p>
<p>				Notifier informational message will now take on the following format:</p>
<p>				I. YYYY-MM-DD HH:MM:SS. &lt;Main&gt; &lt;SISI&gt; ...</p>
<p>				Notifier error message will now take on the following format:</p>
<p>				I. YYYY-MM-DD HH:MM:SS &lt;Main&gt; &lt;SISE&gt; ...</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539805">539805</a></td>
<td>Customer contact us asking for some feature like Oracle&#39;s &#39;PRAGMA AUTONOMOUS_TRANSACTION&#39;.</p>
<p>				After some researches I received the following answer from internal newsgroup (sybase.internal.asa.helpdesk)</p>
<p>				I believe the SA feature that can provide functionality similar to what </p>
<p>				Oracle&#39;s autonomous transactions do is events.</p>
<p>				In SA, events run as independent transactions with their own transaction </p>
<p>				control and can be triggered from within other transactions without </p>
<p>				affecting the triggering transaction.</p>
<p>				Here is an example:</p>
<p>				CREATE TABLE t1( c1 int );</p>
<p>				CREATE EVENT ev</p>
<p>				HANDLER</p>
<p>				BEGIN</p>
<p>				INSERT INTO t1 VALUES( 99 );</p>
<p>				commit;</p>
<p>				END;</p>
<p>				INSERT INTO t1 VALUES (1);</p>
<p>				TRIGGER EVENT ev;</p>
<p>				ROLLBACK</p>
<p>				The effect of the code above is to rollback the transaction that triggered </p>
<p>				the event but retain the committed transaction executed by the event.</p>
<p>				Howerver cust argue that &#39;Event&#39; at SQL Anywhere are not equal of Oracle&#39;s &#39;PRAGMA AUTONOMOUS_TRANSACTION&#39;.</p>
<p>				According cust with &#39;Events&#39; he cannot capture its return, but with Oracle&#39;s &#39;PRAGMA AUTONOMOUS_TRANSACTION&#39; he can.</p>
<p>				Checking the SQL Anywhere 10 manual, we can see:</p>
<p>				Event errors are logged to the database server console.</p>
<p>				After each execution of an event handler, a COMMIT occurs if no errors occurred. A ROLLBACK occurs if there was an error.</p>
<p>				Event handlers execute on a separate connection, with the permissions of the event owner. To execute with authority other than DBA, you can call a procedure from within the event handler: the procedure executes with the permissions of its owner. The separate connection does not count towards the ten-connection limit of the personal database server.</p>
<p>				So, cust request to us open a feature request to implement at SQl Anywhere a feature like Oracle&#39;s &#39;PRAGMA AUTONOMOUS_TRANSACTION&#39;.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539807">539807</a></td>
<td>On Mac OS X systems, if the server was started on a non-default port (i.e. other than 2638), and with an IPv6 address as the value for the MyIP option, a UDP listener would not have been started on the default port. As a result, the server would not have been able to locate the server via broadcasts unless the sever&#39;s port was explicitly specified in the client&#39;s connection string. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539812">539812</a></td>
<td>The MobiLink server name given by the -zs command line option was not shown in the title bar of the MobiLink server window. This problem is corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539813">539813</a></td>
<td>A new command line option (-sv) has been added to the MobiLink Listener to allow for specifying the script version used for authentication. The default value is ml_global.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR539933">539933</a></td>
<td>A newer database release has been supplied that fixes various issues with long-running servers.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540048">540048</a></td>
<td>When attempting to set the non_keywords option to a value that contained a keyword already listed in the current value of the non_keywords option, an invalid option setting error would have been reported. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540071">540071</a></td>
<td>If an application used a prepared statement to insert an empty string via a parameter marker into a long varchar column of a proxy table, then the server may have hung, or have given a strange error. Note that inserting an empty string as a string literal works just fine. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540090">540090</a></td>
<td>After installing SQL Anywhere version 11.0.0 on a non-1252 code page system (such as Chinese, Japanese or Korean), the demonstration database (demo.db) does not contain image data in the Photo column of the Products table. The column values are NULL. This problem has been resolved. The mkdemo.sql script has been revised to use client-side reads (READ_CLIENT_FILE function) to populate the Photo column of the Products table.</p>
<p>				To correct existing demo.db databases:</p>
<p>				1 start demo.db using dbeng11 or dbsrv11</p>
<p>				2 change to the scripts directory of the install</p>
<p>				3 run the following script:</p>
<p>				SET TEMPORARY OPTION allow_read_client_file = &#39;on&#39;;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\TankTop.jpg&#39; )</p>
<p>				WHERE Products.ID=300;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\V-Neck.jpg&#39; )</p>
<p>				WHERE Products.ID=301;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\CrewNeck.jpg&#39; )</p>
<p>				WHERE Products.ID=302;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\CottonCap.jpg&#39; )</p>
<p>				WHERE Products.ID=400;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\WoolCap.jpg&#39; )</p>
<p>				WHERE Products.ID=401;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\ClothVisor.jpg&#39; )</p>
<p>				WHERE Products.ID=500;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\PlasticVisor.jpg&#39; )</p>
<p>				WHERE Products.ID=501;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\HoodedSweatshirt.jpg&#39; )</p>
<p>				WHERE Products.ID=600;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\ZippedSweatshirt.jpg&#39; )</p>
<p>				WHERE Products.ID=601;</p>
<p>				UPDATE Products</p>
<p>				SET Photo=READ_CLIENT_FILE( &#39;adata\CottonShorts.jpg&#39; )</p>
<p>				WHERE Products.ID=700;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540092">540092</a></td>
<td>The Interactive SQL utility could have crashed if a DESCRIBE statement was executed together with an OUTPUT statement that immediately followed it. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540094">540094</a></td>
<td>In rare circumstances, an outgoing mirroring connection attempt to a partner, or to the arbiter, may have hung indefinitely. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540195">540195</a></td>
<td>When a connection attempted to autostart a server, but then failed to connect, the client incorrectly attempted to autostart the server three times in some cases. This has been fixed so that the client will now only attempt to autostart the server once.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540200">540200</a></td>
<td>When running the MobiLink server with minimal verbosity, and using the MobiLink Listener (dblsn), the message &quot;Disconnected from consolidated database&quot; would have appeared in the server log. This has been corrected. The connection used by dblsn will now be reused by the next dblsn client.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540201">540201</a></td>
<td>On Mac OS X systems, an application may have taken a very long time to connect to a server if the server was found through an LDAP server and both the client and the server are IPv6-enabled. On Mac OS X, in order to establish a connection to a link-local IPv6 </p>
<p>				address, the scope (interface) ID must be specified. If a scope ID is not specified, it defaults to 0. A connection attempt where the scope ID is incorrect may take a long time to time out and fail. When a link-local IPv6 address was registered with LDAP, the scope ID was not included in the IP address that was registered. Doing so would not be </p>
<p>				useful, since scope IDs for the same link can vary from machine to machine. If an application obtained such a link-local address from LDAP and attempts to connect to it, in effect it will attempt a connection with a scope ID of 0. This has been fixed so that now an attempt to if the scope ID is 0 is refused on Mac OS X systems, including when the HOST connection parameter is used in the connection string with a link-local IPv6 address with no interface ID specified. </p>
<p>				Note that if the wrong non-zero interface ID is specified, a connection will still be attempted.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540205">540205</a></td>
<td>If a remote server was defined using one of the Remote Data Access JDBC classes, then changing the value of the quoted_identifier option would not have resulted in changing the value of the quoted_identifier option on the remote. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540219">540219</a></td>
<td>If an application called a procedure that references a proxy table, and that procedure was subsequently used in the FROM clause of a SELECT statement along with the WITH clause, then there was a chance the the server would have crashed. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_58.htm#CR540220">540220</a></td>
<td>The server could have hung, or even crashed, if an HTTP or HTTPS connection was cancelled (i.e. the client application closed the socket) while a request was being processed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540227">540227</a></td>
<td>On Linux x86 and Solaris SPARC systems, the encryption libraries have been updated to use Certicom 5.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540263">540263</a></td>
<td>An UltraLiteJ database may have expanded needlessly, especially in the presence of updates, either via SQL statements or synchronizations. The routine to search free space on an existing page was not always recognizing when there was room to contain a row. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540275">540275</a></td>
<td>Incorrect results would have been obtained when evaluating expressions with hexadecimal constants that were larger than integer values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540349">540349</a></td>
<td>The UltraLite Initialize Database utility (ulinit) would have reported a syntax error if the reference database contained a foreign key on a table with the keyword &#39;name&#39;. Ulinit was failing to quote the table name in the foreign key statement generator. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540354">540354</a></td>
<td>UltraLiteJ could have thrown an ArrayIndexOutOfBounds exception during sync if a column in the consolidated could have stored more characters than the remote column. For this fix to be effective mlodbc11.dll must be 11.0.0.1541 or later.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540369">540369</a></td>
<td>If request level logging of procedures was enabled, and a FORWARD TO statement was executed on a remote server from an Open Client or jConnect application, then there was a chance the server would have crashed. This problem did not occur if a non-TDS based client was used, or if request level logging of procedures was not enabled. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540371">540371</a></td>
<td>In rare circumstances, the server could have crashed while disconnecting, if the connection had created temporary procedures. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540380">540380</a></td>
<td>On AIX 5.3 systems, the ApproximateCPUTime connection property could have returned a value that was impossibly large. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540387">540387</a></td>
<td>When an application made an external environment procedure call, and then issued a commit followed by another external environment call, there was a chance the server would have crashed. This problem should not show up if either the original or external connection was accessing a temporary table. It has now been fixed</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540388">540388</a></td>
<td>UltraLite databases restrict the ORDER BY clause, when used with UNION, to referencing select list items by ordinal value rather than by name. Violations of this restriction was not diagnosed correctly in some situations. UltraLiteJ has been corrected to now issue the exception SQLE_INVALID_ORDER, to be consistent with other versions of UltraLite.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540390">540390</a></td>
<td>A comparison between an integer and a BINARY value (in a SQL statement) would have caused a conversion error, &#39;Cannot convert numeric to a binary&#39;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540392">540392</a></td>
<td>Using the Ping utility (dbping) with the -m command line option (use ODBC driver manager)</p>
<p>				to attempt to connect to the Web Edition server would have resulted in the error &quot;This server is not licensed to support &#39;ODBC&#39; connections&quot;. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540393">540393</a></td>
<td>If a DSN pointed to a Web Edition server, the ODBC Administrator would have given the error &quot;This server is not licensed to support &#39;ODBC&#39; connections&quot; when the &quot;Test Connection&quot; button was used. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540407">540407</a></td>
<td>In the dbmlsync log file it was possible for a message to occasionally be omitted, or for two messages to be mixed together. For example, a line like the following might occur in the log:</p>
<p>				E. 2008-08-06 16:24:34. Timed out trying to readTimed out trying to read 7 bytes.</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540530">540530</a></td>
<td>Depending on the language and character set of the operating system, the usage message could have been truncated. Running under an English language locale did not expose this problem. A buffer used for character set translation was under-sized. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540536">540536</a></td>
<td>Certain complex regular expression patterns could have caused the server to hang for a few seconds or more. Patterns which could have caused this problem were unlikely to be used in practice, as they needed to be over 100 characters long and have certain unlikely characteristics. This has been fixed so that regular expression patterns that could have caused the server to hang will now generate the error &quot;Statement size or complexity exceeds server limits&quot; (-890).</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540557">540557</a></td>
<td>If the operating system&#39;s character set did not match the database&#39;s character set, non-ASCII server messages obtained using the system procedure sa_server_messages(), would have been mangled. The server was not converting from the database&#39;s character set to the operating system&#39;s character set before returning the text. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540569">540569</a></td>
<td>Statements using EXISTS() subqueries with INTERSECT and EXCEPT may have returned incorrect results. This would have occurred when at least one of the select lists inside the EXISTS() subquery used &quot;*&quot;. This has now been fixed.</p>
<p>				For example:</p>
<p>				select filename, file_id from t1 where </p>
<p>				(</p>
<p>				exists (select * from t1 except select * from t2)</p>
<p>				OR </p>
<p>				exists (select * from t2 except select * from t1)</p>
<p>				)</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540575">540575</a></td>
<td>When in Profiling Mode in Sybase Central, clicking the Index Consultant, or DBISQL, icon for a statement on the Details tab, could have resulted in a syntax error. The problem was caused by syntax errors in SQL statements used by Sybase Central, which have now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540579">540579</a></td>
<td>Attempting to connect to a partially constructed RIM BlackBerry database could have caused a NULL POINTER exception. It was assumed that an existing RIM BlackBerry database would contain a page[0]. This situation now causes an UltraLiteJ exception to be thrown.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540681">540681</a></td>
<td>Running out of non-cache memory may have caused the server to hang. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540690">540690</a></td>
<td>The &quot;Check for Updates&quot; entry on the Windows Start menu was missing. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540698">540698</a></td>
<td>Calling the OleDbDataReader GetString() method may have failed if the source string had a length of 0, or it may have returned a string that was missing the trailing null termination character when the source string length was greater than or equal to 1 (i.e., &quot;abcde&quot; comes back as &quot;abcd&quot;). This problem has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540703">540703</a></td>
<td>When attempting to execute a query that references a proxy table mapped to a DB2 table, and one of the columns in the DB2 table was of type &quot;varchar for bit data&quot;, there was a possiblility that fetching data from the proxy column would have resulted in data truncation. This problem does not exist for BLOB, &quot;char for bit data&quot; and &quot;long varchar for bit data&quot; DB2 columns. The has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540708">540708</a></td>
<td>If a failover occurred in a mirroring system, automatic checkpoints would not have occurred on the new primary server. Stopping and restarting both servers would have corrected the problem. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540725">540725</a></td>
<td>The Migrate Database wizard could have failed to display messages in the messages dialog if it was connected to two or more databases running on the same server. The wizard was listening for asynchronous messages on the wrong connection. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540729">540729</a></td>
<td>Attempting to cancel the Migrate Database wizard would have caused Sybase Central to crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540789">540789</a></td>
<td>If several connections attempted to concurrently execute CREATE, DROP or ALTER statements for a global temporary table, or its indexes, the server could have crashed. This has been fixed so that a global temporary table and its indexes can no longer be altered or dropped if other connections have previously referenced the table until those connections have disconnected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540797">540797</a></td>
<td>Printing results in landscape orientation did not use the full page area. The print attribute which specified the page margins did not reverse the printing area width and height when printing in landscape. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540800">540800</a></td>
<td>The Interactive SQL utility (dbisqlc) could have incorrectly reported a syntax error when executing an INPUT statement if the user or table name required quoting to be a valid identifier. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540823">540823</a></td>
<td>If a case-sensitive database was created prior to version 10 and was initialized with collation 857TRK, the Unload utility (dbunload) would have failed to unload it correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540826">540826</a></td>
<td>The window which showed long binary column values would have shown incomplete (truncated) data and a corrupt image if the column held a graphic and the result set did not contain the table&#39;s primary key. Now, instead of showing partial data, an error message is displayed which advises users on how to remedy the problem.</p>
<p>				A similar problem affected the display of long text values, and it has also been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540921">540921</a></td>
<td>Attempting to access a remote server defined using one of the JDBC classes, could have caused the server to crash if Java failed to start. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540927">540927</a></td>
<td>Attempting to execute a query that referenced a proxy table mapped to a table in an ADS database with a WHERE clause that contained a timestamp column, could have failed with a conversion error. When generating the remote query, the server was using the wrong format specification for converting the timestamp value to a string value. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540933">540933</a></td>
<td>The passthrough feature is enabled automatically when scripts are found in the ml_passthough_script table. In order to process these scripts Java is used. On Mac OSX, the Java VM is not available for 32-bit applications, causing the MobiLink server to give an error and shut down. On Mac OSX, the MobiLink server no longer checks for these scripts.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540965">540965</a></td>
<td>If a LOAD TABLE statement was executed on a table with an autoincrement column and caused the range of values for the autoincrement column to be exhausted, the server would have crashed. This has been fixed, and a &quot;Column &#39;&lt;column-name&gt;&#39; in table &#39;&lt;table-name&gt;&#39; cannot be null&quot; error is now given.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR540984">540984</a></td>
<td>The Connection page of the property sheets for publications, MobiLink users and synchronization subscriptions, would have ignored an object&#39;s CommunicationType setting and would always have selected the TCP/IP radio button. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541053">541053</a></td>
<td>A query containing an EXITS() predicate and returning distinct rows may have generated an incorrect result set. For this to have occurred the EXISTS predicate must have been able to be flattened into the main query block, and a KEYSET root must have been used for the query. The incorrect result set may contain duplicate rows. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541055">541055</a></td>
<td>Some CONTAINS queries may have intermittently taken much longer than they should (e.g. minutes rather than seconds with a query of several frequently occuring words and 1-2Gb of indexed text). This has been fixed fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541056">541056</a></td>
<td>Using the INSTALL JAVA ... FROM expr statement, or performing an unload and reload of a database that contained Java objects, could have resulted in recovery issues later on. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541059">541059</a></td>
<td>The php driver source code was missing php_sqlany_ver.h on Unix platforms. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541060">541060</a></td>
<td>The server, in rare circumstances, could have hung updating string columns. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541062">541062</a></td>
<td>If an UltraLiteJ synchronization had failed, the next synchronization could have sent the wrong set of last download times. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541072">541072</a></td>
<td>Under rare circumstances, a query plan using the Merge Join algorithm with an GroupBy ordered on the right hand side of the join, could have returned incorrect results. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541073">541073</a></td>
<td>On AIX 6, 64-bit software would not have found the LDAP support libraries, even if they were in the LIBPATH. The location of the LDAP system libraries was changed in AIX 6. The 64-bit library is in:</p>
<p>				/opt/IBM/ldap/V6.1/lib64/libibmldap.a</p>
<p>				and the 32-bit library is in:</p>
<p>				/opt/IBM/ldap/V6.1/lib/libibmldap.a</p>
<p>				This has been fixed.</p>
<p>				Note that you still need to ensure that the directory with the LDAP libraries are in the LIBPATH. For example, for 64-bit libraries: </p>
<p>				export LIBPATH=/opt/IBM/ldap/V6.1/lib64:$LIBPATH</p>
<p>				and for 32-bit libraries:</p>
<p>				export LIBPATH=/opt/IBM/ldap/V6.1/lib:$LIBPATH</p>
<p>				As a work around to use SQL Anywhere LDAP support with AIX 6, create links in /usr/lib as follows (must be root):</p>
<p>				cd /usr/lib</p>
<p>				ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a</p>
<p>				ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541075">541075</a></td>
<td>If the MobiLink Server was processing an invalid upload stream, it was possible for the MobiLink Server to have crashed. The MobiLink Server will now fail the synchronization.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541173">541173</a></td>
<td>The following problems with GIF files have been fixed in the window used to display binary column values:</p>
<p>				1. When inserting a GIF file into a binary column, a thumbnail is now displayed. Previously, the thumbnail remained empty.</p>
<p>				2. The image format and dimensions were not displayed when viewing a binary column value which contained a GIF image.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541175">541175</a></td>
<td>It was possible, although likely rare, for the server to crash on shutdown. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541188">541188</a></td>
<td>When run on Unix systems, the Interactive SQL utility (dbisqlc) would have crashed opening the Options-&gt;Configure menu. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541200">541200</a></td>
<td>Some missing items to the graphical and long plans have been added as follows:</p>
<p>				1 - HAVING predicate was not dumped in the long plan for any GroupBy physical operator. 2 - HAVING predicate was not dumped for GroupBySortedSets physical operators in the graphical plan.</p>
<p>				3 - The number of extension pages was missing in &quot;Table Reference&quot; section of the graphical plan.</p>
<p>				4 - The &#39;Estimated Cache Pages&#39; was missing in the long plan.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541201">541201</a></td>
<td>When running Application Profiling, the start_time and finish_time columns of the sa_diagnostic_request table were incorrectly set. The column start_time was set to the correct start time plus the value from the duration_ms column, while the column finish_time was set to the correct start time plus twice the value from the duration_ms column. This has now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541202">541202</a></td>
<td>Statements using derived tables on the null supplying side of a left outer joins may have returned syntax errors. For this to have occurred, the derived table must have been unflattenable (i.e. it contained GROUP BY, ORDER BY, etc.) and have been used in the null-supplying side of the outer join. There must also have existed a predicate in the ON condition, which was local to the derived table (e.g., &quot;ON .... DT.C = 10 .... &quot;), and referenced the derived table column with a complex expression. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541297">541297</a></td>
<td>If a GRANT or REVOKE of EXECUTE permission for a procedure did not include the procedure&#39;s owner, the entry in the transaction log would also not have included the procedure&#39;s owner. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541310">541310</a></td>
<td>If dbunload was used to attempt reloading a version 9 or earlier database that needed recovery, the dbunload support engine would have failed an assert and shut down. The assert failure has been fixed, but pre-version 10 databases needing recovery still cannot be reloaded with dbunload. If such a reload is attempted, dbunload will now display the error message &quot;Failed to autostart server&quot;. The database will need to be started using using a pre-10 server, and if it then recovers successfully, it can be reloaded after the pre-10 server is shut down.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541313">541313</a></td>
<td>The &#39;blocking&#39; option was not included in the result set of the sa_conn_properties() stored procedure. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541322">541322</a></td>
<td>Use of the NEAR operator in a CONTAINS query may have returned incorrect results. This would have occurred when using a MANUAL or AUTO refresh index that had been refreshed several times. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541333">541333</a></td>
<td>Under concurrent access, a connection may have blocked on row locks waiting for other connections that had long released their row locks. This would only have happened</p>
<p>				if the connection had no changes to commit. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541335">541335</a></td>
<td>Windows that display long text result values did not consistently warn that only a portion of the value was being displayed. Specifically, if the value was longer than 65536 characters, but the maximum trunction length was set even higher, no warning was displayed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541420">541420</a></td>
<td>In very rare circumstances, likely under heavy concurrency, the iAnywhere JDBC driver could have crashed. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541439">541439</a></td>
<td>Certain SQL statements would have returned null after being prepared. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541470">541470</a></td>
<td>If a procedure or view was created containing an expression that included subtraction of a negative constant, the procedure or view would not have been stored correctly. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541478">541478</a></td>
<td>The table name was not reported for SQLE_PRIMARY_KEY_NOT_UNIQUE when this error was encountered during a synchronization. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541575">541575</a></td>
<td>When RSA encryption was in use by the server or client on Mac OS X systems, a crash was likely under very low memory conditions. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541576">541576</a></td>
<td>When RSA encryption was in use by the server or client on Mac OS X systems, memory could have been leaked. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541586">541586</a></td>
<td>If a CREATE EVENT statement was executed without including the owner name for the event, the statement recorded in the transaction log did not include the current user&#39;s name as the owner. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541591">541591</a></td>
<td>After installing the SQL Anywhere software on a non-1252 code page Windows operating system (such as Chinese, Japanese or Korean), the demonstration database (demo.db) has a 2K page size. On 1252 code page systems, the demonstration database has a 4K page size which is expected. Some examples in the documentation may not work on non-1252 systems as a result. In particular, if a database is started on a server that has a 2K page size, databases that have larger page sizes can not be started on the same server.</p>
<p>				To work around this issue, the demo.db database can be recreated using the dbinit, dbisql and the Scripts\mkdemo.sql script. Alternatively, the dbunload tool with the -ap option can be used to rebuild the database.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541594">541594</a></td>
<td>The default for the Relay Server Outbound Enabler (RSOE) command line option -cr url_suffix was the Windows path, even on Unix. Now the RSOE default url_suffix on UNIX is /srv/iarelayserver as documented.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541615">541615</a></td>
<td>If an application made a remote procedure call to a procedure that returned a result set with unsigned data types, there was a possibility that the call would have failed with a conversion error. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541622">541622</a></td>
<td>If a Transact-SQL CREATE PROCEDURE statement appeared within a BEGIN ... END block, the syntax error given would have been &quot;Syntax error near &#39;end&#39; on line nnn&quot;, where nnn was the line corresponding to the end of the block. Now the error points to the first point at which the server detected a dialect conflict.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541630">541630</a></td>
<td>Queries using the CONTAINS search conditionwith phrases longer than three words, or adjacent NEAR operators with more than three words, could have returned false matches. This happened if all of the pairwise conditions match, but in different places in the string. For example, for the phrase &quot;a b c&quot; the pairwise conditions are the existence of &quot;a b&quot;, &quot;b c&quot; and &quot;a * c&quot; where * means any word. Therefore, the string &#39;a b x b c x a x c&#39; will match this phrase even though it should not. The problem is now fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541734">541734</a></td>
<td>The Service utility (dbsvc) now supports creating services for the Relay Server (rshost) and the Outbound Enabler (rsoe) using &quot;-t rshost&quot; and &quot;-t rsoe&quot; respectively.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541736">541736</a></td>
<td>Under some rare, timing-dependent circumstances, the Interactive SQL utility (dbisql) could have crashed after closing one of the windows used to view long result values. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541739">541739</a></td>
<td>When deploying a synchronization model for an UltraLite remote database to a SQL file, then using Interactive SQL to run the SQL file, errors could have occurred for DROP statements if the object did not exist, or CREATE statements if the object already existed. A user would have had to choose to ignore these errors. This has been fixed. Now, the generated SQL file uses Interactive SQL options to suppress errors that can be ignored.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541742">541742</a></td>
<td>Virtual tables were considered non-updatable, which was incorrect. The server may have crashed if an UPDATE statement targeted a virtual table. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541744">541744</a></td>
<td>If a CREATE EXISTING TABLE command was used to create a proxy table to a remote server using one of the JDBC remote server classes, then the server would have leaked memory. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541747">541747</a></td>
<td>The sample stoplists, the list of terms to ignore when building a text index, were corrupted for some languages. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541756">541756</a></td>
<td>When an application used one of the C External Environments to return a result set back to the server, returning a NULL value would have either resulted in a conversion error or a crash of the external environment. This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541767">541767</a></td>
<td>The system function next_connection() could have returned temporary connections (eg. those with connection IDs greater than 1000000000). This has been fixed so that the only temporary connections that will now be displayed are event connections.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541770">541770</a></td>
<td>If an application connected to a database with a multi-byte character set made a remote procedure call using one of the JDBC remote server classes, then there is a chance the server could have either hung or crash. For this to have occurred, the remote procedure must return a result set containing long character columns, and the proxy procedure must not have initially been defined with a proper result clause, This problem has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541772">541772</a></td>
<td>Calling the system function property(&#39;FunctionMaxParms&#39;,0) would have returned NULL, instead of the correct value 0. This has been fixed. This corresponds to the maximum number of arguments for the abs function.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541783">541783</a></td>
<td>Calls to the sqlany_get_column() function in the C API library used by the data access modues for the various scripting languages (for example, PHP, PERL, Python, etc.) would have returned an incorrect value for the length field when fetching A_BINARY or A_STRING column information. This problem only affected 64-bit platforms. The length field is a size_t pointer and was being set to a 32-bit value, but on 64-bit platforms, size_t is a 64-bit value. This was fixed so that the length field points to the correct 64-bit or 32-bit value.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541857">541857</a></td>
<td>Transactions blocked on a row lock placed by an INSERT, UPDATE, or an isolation level 2 or 3 FETCH, may have waited on the wrong connection, or may have waited indefinitely (until the transaction was forcibly aborted). For this to have occurred, the connection holding the lock must have been in the process of disconnecting when the transaction blocked. While correctness was not affected, application performance could have suffered. This has now been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541861">541861</a></td>
<td>The server when run on Solaris systems, had poor performance compared to previous versions. Specifically, the TCP/IP communication was slower. Serveral changes have been made to correct this.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541870">541870</a></td>
<td>Some versions of Windows Vista are misidentified as Windows Server 2008. Among other places, this would have shown up in the server console window, and with the &#39;platform&#39; property. The GetVersion system call is unable to distinguish between Server 2008 and Windows Vista. This was corrected by changing the Getversion function to GetVersionEx.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR541908">541908</a></td>
<td>For some forms of simple DELETE statements on tables with computed columns, the server may have returned the following error:</p>
<p>				*** ERROR *** Assertion failed: 106104 (...) Field unexpected during compilation (SQLCODE: -300; SQLSTATE: 40000)</p>
<p>				This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542016">542016</a></td>
<td>When rebuilding a pre-10.0 database using the Unload utility (dbunload) with the -an or -ar command line options, dbunload could have hung under very rare conditions on certain Windows systems. This problem has only ever been observed on a few machines configured as Domain Name Servers (DNS), but the hang could have occurred under other conditions as well. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542139">542139</a></td>
<td>Sybase Central would have reported errors when attempting to browse a database that had the quoted_identifier option set to Off. SQL statements sent to the database had reserved words that were used as system table columns quoted (for example, SYS.SYSTAB.&quot;encrypted&quot;). This did not work if the quoted_identifier option was Off, so the plug-in now temporarily sets it to On.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542175">542175</a></td>
<td>The names of objects in the transaction log were not being qualified with owner name for some statements. Now, object names in the transaction log will be qualified with the owners names when the latter are not specified for the following :</p>
<p>				- the REFERENCES clauses of CREATE and ALTER TABLE statement</p>
<p>				- the TABLE, [MATERIALIZED] VIEW, PRIMARY KEY, COLUMN and INDEX clauses of the COMMENT ON statement</p>
<p>				- DROP and ALTER INDEX statements</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542185">542185</a></td>
<td>When the properties of the visual or non-visual version of the Dbmlsync ActiveX Component were examined from a development environment, it would incorrectly have been described as &quot;iAnywhere Solutions Dbmlsync ActiveX Component 9.0.1&quot;. The string has now been changed to properly reflect the true version of the component.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542186">542186</a></td>
<td>Under rare circumstances, diagnostic tracing could have failed to record some cursor information for statements within procedures, for example, information about cursor close time and the graphical plan. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542199">542199</a></td>
<td>Attepting to start the Interactive SQL utility (dbisql), or any of the other Java administration tools, may have failed with a error that it could not load MSVCR71.DLL. This occurred if the machine does not already have MSVCR7.DLL in the path. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542208">542208</a></td>
<td>A query using a CONTAINS search condition over a MANUAL or AUTO refresh index that searched multiple columns, would never have returned rows where the first search column was NULL, even if the others were not NULL and had matches. This is fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542213">542213</a></td>
<td>Executing queries with temporary tables may have caused the database to grow unbounded. Row pages and schema pages were not bing properly released for temoporary tables. This has been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542239">542239</a></td>
<td>If the Admin Mode Connection Script wizard was used to create event scripts for handle_UploadData and handle_DownloadData events, they would get an &quot;unknown event&quot; error when syncing. The problem was that the event scripts were created with the names &quot;handle_uploaddata&quot; and &quot;handle_downloaddata&quot; (note the differences in case). This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542342">542342</a></td>
<td>If a conversion error occurred while constructing the string to be executed by EXECUTE IMMEDIATE within a procedure, the error might not have been reported, possibly leading to a server crash. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542344">542344</a></td>
<td>In a SQL Anywhere SOAP response, Column &quot;string&quot; data greater than 250 bytes in length may have contained garbled characters if the data was character set converted. This has been fixed.</p>
<p>				Example:</p>
<p>				SA running iso-8859-2 database receiving a SOAP request with an Accept-Charset: UTF-8 HTTP request header will character set convert its response from ISO-2 to UTF-8.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542349">542349</a></td>
<td>Executing an SQL query batch using the Perl, PHP or Python drivers, that contained a SELECT statement in addition to other SQL queries that did not return a result set, could have returned the error: -180 &#39;Cursor not open&#39; error. This has now been fixed.</p>
<p>				For example:</p>
<p>				IF EXISTS( ... ) then</p>
<p>				DROP ...</p>
<p>				ENDIF;</p>
<p>				CREATE PROCEDURE ( ... )</p>
<p>				BEGIN</p>
<p>				SELECT ...</p>
<p>				END;</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542356">542356</a></td>
<td>A query with a GROUP BY clause that referenced the same alias at least twice, would have incorrectly returned a syntax error.</p>
<p>				For example:</p>
<p>				SELECT item = &#39;abc&#39;</p>
<p>				FROM product p LEFT OUTER JOIN sales_order_items </p>
<p>				GROUP BY</p>
<p>				item,</p>
<p>				item</p>
<p>				This has been now been corrected.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542397">542397</a></td>
<td>The DISH service does not set the HTTP Content-Type response header, which has occasionally caused Internet Explorer 7 to fail to render the WSDL. This has been fixed so that the response headers now include Content-Type: text/xml; charset=&quot;utf-8&quot;.</p>
<p>				Note, the charset qualifier is not included in 9.0.2 since its output is in database character set. This change is in accordance with the WSDL 1.1 specification, see http://www.w3.org/TR/wsdl#_Toc492291097.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_59.htm#CR542482">542482</a></td>
<td>On Mac OS X systems, if the path specified in the &quot;Database&quot; field of the &quot;New Server&quot; dialog in DBLauncher contained spaces, the server would have failed to start the database. This has been fixed.</td>
</tr>
<tr>
<td><a href="https://www.dbainfo.net/wp-content/uploads/CR/asa_60.htm#CR542514">542514</a></td>
<td>In a SQL Anywhere SOAP response, binary data types greater than 250 bytes in length were not base64 encoded. This has been fixed, and applies to SQL Anywhere SOAP services that have been defined with DATATYPE ON or DATATYPE OUT.</td>
</tr>
</tbody>
</table>
<p>--EOF--</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">https://www.dbainfo.net/sap-asa-cr-number-4.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/sap-asa-cr-number-4.htm">SAP SQL Anywhere的所有已知BUG列表（4）</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-10.htm" title="SAP PB Enterprise的所有已知BUG列表（10）">SAP PB Enterprise的所有已知BUG列表（10）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-9.htm" title="SAP PB Enterprise的所有已知BUG列表（9）">SAP PB Enterprise的所有已知BUG列表（9）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-8.htm" title="SAP PB Enterprise的所有已知BUG列表（8）">SAP PB Enterprise的所有已知BUG列表（8）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-7.htm" title="SAP PB Enterprise的所有已知BUG列表（7）">SAP PB Enterprise的所有已知BUG列表（7）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-6.htm" title="SAP PB Enterprise的所有已知BUG列表（6）">SAP PB Enterprise的所有已知BUG列表（6）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-5.htm" title="SAP PB Enterprise的所有已知BUG列表（5）">SAP PB Enterprise的所有已知BUG列表（5）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-4.htm" title="SAP PB Enterprise的所有已知BUG列表（4）">SAP PB Enterprise的所有已知BUG列表（4）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-3.htm" title="SAP PB Enterprise的所有已知BUG列表（3）">SAP PB Enterprise的所有已知BUG列表（3）</a> (0)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-2.htm" title="SAP PB Enterprise的所有已知BUG列表（2）">SAP PB Enterprise的所有已知BUG列表（2）</a> (1)</li><li>2015-03-08 -- <a href="https://www.dbainfo.net/sap-pb-cr-number-1.htm" title="SAP PB Enterprise的所有已知BUG列表（1）">SAP PB Enterprise的所有已知BUG列表（1）</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/sap-asa-cr-number-4.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
