远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着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信息!

如有问题,请联系我!

QQ :289965371 点击这里给我发消息
Email:
不仅仅包括BUG的详细描述信息,还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程;有些BUG还提供了Workaround来临时解决该BUG带来问题。

 

CR:341764
CR Number:   341764
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 10 Dec 2003 Fixed
9.0.0 1252 10 Dec 2003 Fixed
Description
Shutting down dbisqlc, could have caused it to crash, in situations where character set translation was being done on the client, rather than the server. This is now fixed.



CR:341769
CR Number:   341769
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.02
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 09 Dec 2003 Fixed
9.0.0 1252 09 Dec 2003 Fixed
Description
When Remote Data Access was used to query information from a Lotus Notes database, the column names in queries sent to the Lotus Notes ODBC driver were not always quoted. As a result, querying Notes tables with a column named that was a keyword, would have failed. This problem has now been fixed.



CR:341770
CR Number:   341770
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 09 Dec 2003 Fixed
9.0.0 1252 09 Dec 2003 Fixed
Description
As of 9.0.0, the EXECUTE IMMEDIATE statement supports returning a result set. A side-effect of this change was that procedures that contained an EXECUTE IMMEDIATE statement were marked as returning a result set, even if no result set was returned. This change in behavior has caused compatibility problems for customers moving from prior releases. For this reason, the WITH RESULT SET clause was introduced (see Engineering issue 339798), allowing users to indicate that no result set would be generated. With the present change, the default setting has been changed to OFF, restoring the behavior from earlier versions.



For EXECUTE IMMEDIATE, the new syntax is:



EXECUTE營MMEDIATE燵爀xecute-option燷爏tring-expression

execute-option:

牋WITH燪UOTES燵燨N爘燨FF燷

|燱ITH燛SCAPES爗燨N爘燨FF爙

| WITH RESULT SET { ON | OFF }



Now, if an EXECUTE IMMEDIATE statement is intended to be used to return a result set, it must be specified as follows:



EXECUTE IMMEDIATE WITH RESULT SET ON string-expression



If the "WITH RESULT SET ON" clause is included, the containing procedure is marked as returning a result set. Failure to include this clause will result in an error being reported when the procedure is called if the statement does produce a result set.



CR:341777
CR Number:   341777
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1715 10 Dec 2003 Fixed
9.0.0 1251 10 Dec 2003 Fixed
Description
When performing an index scan to satisfy a predicate, the server may have also evaluated the predicate on the fetched row. The evaluation of the predicate was not necessary and could have lead to slower execution times. Whether or not the redundant predicate evaluation took place, depended upon some non-deterministic criterion. This problem has now been fixed.



CR:341798
CR Number:   341798
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 12 Dec 2003 Fixed
9.0.0 1253 12 Dec 2003 Fixed
Description
If a foreign key was defined with an ON UPDATE or ON DELETE referential action, and DELETEs or UPDATEs on the table were performed while procedure profiling was enabled, it was difficult or impossible to view the profiling information for the system-defined trigger corresponding to the foreign key. Viewing the profiling information for system triggers in Sybase Central could have shown confusing results. This has been fixed. The definitions of sa_procedure_profile and sa_procedure_profile_summary must be updated in the database in order to benefit from this change.



Note, these procedures now return additional columns, as described below.



sa_procedure_profile now has two additional result set columns:

foreign_owner char(128) // owner of foreign table for system triggers

foreign_table char(128) // name of foreign table for system triggers

As well, the object_type column can now have two additional values:

C - indicates that the object is an ON UPDATE system trigger

D - indicates that the object is an ON DELETE system trigger

If object_type is C or D, object_name is the name of the foreign key for which this system trigger was defined.



sa_procedure_profile_summary has two additional result set columns (same as above):

foreign_owner char(128) // owner of foreign table for system triggers

foreign_table char(128) // name of foreign table for system triggers

The object_type parameter to sa_procedure_profile_summary can now have the value 'S'. If this value is used, only rows corresponding to system triggers are returned.



CR:341814
CR Number:   341814
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
7.0.4 3509 16 Dec 2003 Fixed
Description
Creating a foreign key with a different hash size than the primary key it referenced, may have returned the error "No primary key for foreign key..." if the foreign key table already contained rows. This has been fixed



CR:341869
CR Number:   341869
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 10 Dec 2003 Fixed
Description
In a details list, a column of data can be sorted by clicking on the column header, but it was not possible to do this via the keyboard. This has been fixed by adding a new menu option, View->Sort, to allow choosing a column to sort via the keyboard.



CR:341887
CR Number:   341887
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1728 30 Jan 2004 Fixed
9.0.0 1254 19 Dec 2003 Fixed
8.0.3 4873 19 Dec 2003 Fixed
8.0.2 4359 19 Dec 2003 Fixed
Description
It was possible for rows inserted by means of a wide insert to contain string values that were longer than the maximums allowed by the definition of the underlying columns. In other words, the server could have failed to truncate inserted column values, as necessary. These un-truncated values were inserted in both the database and the transaction log. Under normal circumstances, it was not likely that any problems with the database would have been noticed, as these values were properly truncated when they were read back later. However, the un-trancated values in the transaction log could have caused problems for utilities that needed to translate and/or replicate the operations from the transaction log. In order for the corruption to occur, a wide insert with the following characteristics must have occurred for one or more columns:



- The column value in the first row must have been NULL,

- A subsequent row must have contained a string value that did not exceed the maximum size allowed for the column,



These must be then been followed at some point by a row containing a column value that needed to be truncated before insertion. This problem has now been fixed and a new server assertion ( number 100910 ) has been added to prevent this corruption from happening in the future.



CR:341910
CR Number:   341910
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1812 12 Dec 2003 Fixed
9.0.0 1253 12 Dec 2003 Fixed
8.0.3 4865 12 Dec 2003 Fixed
8.0.2 4355 12 Dec 2003 Fixed
8.0.1 3143 12 Dec 2003 Fixed
Description
Calling SQLGetDiagField() with a DiaIdentifier of SQL_DIAG_ROW_NUMBERshould, would have returned the row number in the rowset, not the row number in the result set. For example, after a second SQLFetchScroll (for a rowset of size 1), if a truncation occurred, the record number reported as beaing truncated would have been 2, which was incorrect.



This problem has been fixed, SQLGetDiagField() now returns the rowset number of the row with an error.



CR:341970
CR Number:   341970
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1720 12 Dec 2003 Fixed
9.0.0 1253 12 Dec 2003 Fixed
8.0.3 4865 12 Dec 2003 Fixed
8.0.2 4355 12 Dec 2003 Fixed
Description
Starting a server, with two or more databases specified on the command line, could have caused the server to crash during start-up. This has been fixed.



CR:341989
CR Number:   341989
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 12 Dec 2003 Fixed
9.0.0 1253 12 Dec 2003 Fixed
Description
Starting the Trigger, Procedure or Event wizards, when the Profile page for the corresponding folder was displayed in the right-pane, would have caused an unexpected error when the wizard completed. This has been fixed.



CR:341995
CR Number:   341995
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 15 Dec 2003 Fixed
9.0.0 1253 15 Dec 2003 Fixed
Description
Double-clicking a trigger's profile summary in the Profile tab page in the right-pane, would have done nothing. Now, the trigger is selected in the Triggers folder. This behaviour mirrors what happens when double-clicking the profile summary for a procedure,

function or event.



CR:342000
CR Number:   342000
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2196 16 Dec 2003 Fixed
Description
The system procedure Sa_conn_properties() lists the name, description and value for many properties. Some of the property descriptions were the same as the property name.



Similarly, the system function Property_description() was returning th property name as the description. This function was being used by Sybase Central, so it would have shown the property name instead of a description.



Proper descriptions have now been added for all properties.



CR:342012
CR Number:   342012
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1721 15 Dec 2003 Fixed
9.0.0 1253 15 Dec 2003 Fixed
Description
Error message text could have appeared garbled due to improper character set conversion. This would have occurred whenever all of the following were true:

- ODBC client was being used

- the application was using the "widechar" ODBC interface

- the application did not explicitly set the character set for the connection

- the database character set was not equal to the OS character set of the server

- the client side was capable of translating from database character set to the client's character set



This has now been fixed.



CR:342028
CR Number:   342028
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1721 15 Dec 2003 Fixed
9.0.0 1253 15 Dec 2003 Fixed
8.0.3 4866 15 Dec 2003 Fixed
8.0.2 4356 15 Dec 2003 Fixed
Description
If a scheduled event is created without an ON or EVERY clause, it will be executed at most once, and the server will automatically delete the event definition after its scheduled time. If such an event was created in a database that did not have a user named DBA, the server would crash when it attempted to delete the event. Attempting to restart the database would cause another crash, as the server would again detect that the event should be deleted. This has been fixed. A server with this fix can be used to start a database that was otherwise unusable as a result of this problem.



CR:342035
CR Number:   342035
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1693 15 Dec 2003 Fixed
9.0.0 1253 15 Dec 2003 Fixed
8.0.3 4866 15 Dec 2003 Fixed
8.0.2 4356 15 Dec 2003 Fixed
Description
The MobiLink client (dbmlsync), or an UltraLite application, when running on Windows did not respect the network_leave_open=1 streams parameter. Note, this did not affect Windows CE. This is now fixed.



CR:342036
CR Number:   342036
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4867 16 Dec 2003 Fixed
8.0.2 4356 16 Dec 2003 Fixed
8.0.1 3143 16 Dec 2003 Fixed
Description
The ODBC function SQLGetInfo returns a list of the keywords supported by the database server. The list was incomplete and was missing some recent additions including ROLLUP. This has been fixed.



CR:342125
CR Number:   342125
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 15 Dec 2003 Fixed
9.0.0 1253 15 Dec 2003 Fixed
8.0.3 4867 15 Dec 2003 Fixed
8.0.2 4356 15 Dec 2003 Fixed
Description
When creating a proxy procedure to a Microsoft SQL Server procedure, the creation of the proxy procedure would have failed if the version number of the procedure was included. For example, creating a proxy procedure to the procedure "rem_proc" will work, but creation would have failed when attempting to create a proxy procedure to the procedure "rem_proc;1". This problem was most likely to occur when using Sybase Central to create the proxy procedure. The problem has been fixed.



CR:342134
CR Number:   342134
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4867 16 Dec 2003 Fixed
8.0.2 4356 16 Dec 2003 Fixed
Description
If a CREATE TRIGGER statement included the clause ORDER 0, (this syntax is generated by PowerDesigner), to specify the order in which the trigger was to be fired relative to other triggers on the table, a syntax error would have been generated. This has been fixed.



CR:342139
CR Number:   342139
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1706 16 Dec 2003 Fixed
9.0.0 1247 16 Dec 2003 Fixed
Description
The MobiLink server would have continued to process new HTTP or HTTPS requests even after a shutdown was requested. A continuous series of new synchronization requests could have prevented the server from shutting down. This has been fixed.



CR:342140
CR Number:   342140
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
When running the Index Consultant from a non-English version of Interactive SQL, the 'Show Plan With Virtual Indexes' button was disabled, even if a virtual index had been recommended. This has been fixed.



A workaround is to manually issue the 'CREATE VIRTUAL INDEX' statement and then view the plan from dbisql using Shift+F5.



CR:342144
CR Number:   342144
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4867 16 Dec 2003 Fixed
8.0.2 1253 16 Dec 2003 Fixed
Description
When attempting to create a proxy table to a table on an ASE remote server or migrating from ASE using Sybase Central, querying information about an ASE table or procedure with sp_remote_tables or sp_remote_procedures might have failed with a strange error containing the words "transaction" or "tempdb". The exact error message could have varied. The problem has now been fixed.



CR:342148
CR Number:   342148
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1812 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
The system procedure sa_index_density() could have returned density values for an index that were greater than 1.0 (correct values are between 0 and 1). This has been fixed.



CR:342150
CR Number:   342150
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1813 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4870 16 Dec 2003 Fixed
8.0.2 4357 16 Dec 2003 Fixed
8.0.1 3144 16 Dec 2003 Fixed
Description
The UNIQUEIDENTIFIER data type is stored in the database as a 16 byte binary value. This value was not being stored correctly on little-endian platforms, such as Intel x86. This problem has been corrected in the ODBC and OLEDB drivers.



CR:342151
CR Number:   342151
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1813 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
Positioned update statements could have failed in one of the following ways:

- the server may have crashed when using an aliased expression, subselect or subquery predicate

- an incorrect 'column not found' error when using a view column on the right-side of a SET item

- the wrong table instance may have been updated, when a table was referenced more than once

- no error returned when no row was updated



The exact behaviour of a positioned update was changed between versions 5.5 and version 6.0 and between 7.0 and 8.0 and later. Until now, none of these versions provided the correct semantics. This has been fixed.



Documentation Change:

The following change should be applied to the "UPDATE (positioned) statement [ESQL] [SP]" topic. Note that this describes only Syntax 2



UPDATE update-table, ...

SET set-item, ...

WHERE CURRENT OF cursor-name



update-table :

[owner-name.]table-or-view-name [[AS] correlation-name]



set-item :

[correlation-name.]column-name = expression

| [owner-name.]table-or-view-name.column-name = expression



Each update-table is matched to a table in the query for the cursor as follows:



If a correlation name is used in the update-table, it is matched to a table in the cursor's query that has the same table-or-view-name and the same correlation-name



Otherwise, if there is a table in the cursor's query that has the same table-or-view-name that does not have a correlation name specified or has a correlation name that is the same as the table-or-view-name, then the update table is matched wit this table in the cursor's query



Otherwise, if there is a single table in the cursor's query that has the same table-or-view-name as the update table, then the update table is matched with this table in the cursor's query.



Otherwise, an error is returned.



Each set-item is associated with a single update-table, and the corresponding column of the matching table in the cursor's query is modified.



The expression on the right-hand side of each set-item can refer to columns of the tables identified in the UPDATE list; they may not refer to aliases of expressions from the cursor's query, nor may they refer to columns of other tables of the cursor's query which do not appear in the UPDATE list. Subselects, subquery predicates, and aggregate expressions can not be used in the set-items.



CR:342167
CR Number:   342167
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1722 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4867 16 Dec 2003 Fixed
8.0.2 4356 16 Dec 2003 Fixed
Description
If a proxy procedure was created such that the owner was a user without DBA permission, then executing that proxy procedure could have resulted in a 'permission denied' error. Note that this only happened if the remote procedure returned a result set. This problem has been fixed.



CR:342173
CR Number:   342173
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   5.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1813 24 Dec 2003 Fixed
8.0.3 4874 24 Dec 2003 Fixed
Description
The server was allowing the creation of multiple indexes with the same name on local temporary tables. This problem has now been resolved, the server will now generate an "Item already exists" error in this situation.



CR:342176
CR Number:   342176
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1721 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
Queries with correlated subqueries may have returned incorrect results if one of the following was true:

- The subquery was a single-row group-by subquery computing the LIST() function (in the HAVING clause or the SELECT list).

- The subquery was a single-row group-by without a HAVING clause, and the subquery was used in an EXISTS() or NOT EXISTS() predicate.

- The subquery was a grouped subquery and the correlated expressions were used in equality predicates and had different domains than the expressions being equated.



These problem have now been fixed.



CR:342265
CR Number:   342265
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1726 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
For request made over an HTTP link, the following properties and statistics were not being updated:

BytesReceivedUncomp,

PacketsReceivedUncomp,

BytesSent,

BytesSentUncomp,

PacketsSent,

PacketSentUncomp



These statistics are now updated on HTTP requests.



CR:342273
CR Number:   342273
Product Name:   UltraLite
Product Component:   UltraLite.NET
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.0 1253 16 Dec 2003 Fixed
Description
When using the SyncProgressDialog class, some SyncParms settings were ignored. The problem would also have occurred when an application implemented its own synchronization progress dialog and used SycParms.CopyFrom() to transfer synchronization parameters from one connection to another. This has been fixed.



CR:342291
CR Number:   342291
Product Name:   UltraLite
Product Component:   Native UltraLite for Java
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.0 1253 16 Dec 2003 Fixed
Description
When using the SyncProgressDialog class, some SyncParms settings were ignored. The problem would also have occurred when an application implemented its own synchronization progress dialog and used SycParms.CopyFrom() to transfer synchronization parameters from one connection to another. This has been fixed.



CR:342308
CR Number:   342308
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2218 10 Mar 2004 Fixed
9.0.1 1820 10 Mar 2004 Fixed
Description
On Windows NT, 2000, XP and 2003, when the server is run as a service, or if a fatal error or assertion occurs, one or more message is logged to the Application Event Log.

The Event source could have been "ASA", the server name, or the service name. The error or information message would have been something like:



The description for Event ID ( 1 ) in Source ( ASA ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event:



This message is now better formatted. The Event source is "ASA 9.0", and the message may be prefixed by the server name, or service name. The previous text will no longer be displayed.



Note, when deploying ASA servers to Windows NT, 2000. XP or 2003, the following registry key should be added so that Event Log messages are formatted correctly:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ASA 9.0

and within this key, the REG_SZ value name EventMessageFile and value data <path>\dblgen9.dll. (dblgen9.dll can be used regardless of the language being used).



CR:342309
CR Number:   342309
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1725 16 Dec 2003 Fixed
9.0.0 1253 14 Jun 2004 Fixed
Description
After running the Index Consultant in dbisql, sorting the Summary table by the Value column would have caused an exception and displayed the Stack Trace dialog box. This has now been fixed to sort properly and not cause an exception.



CR:342339
CR Number:   342339
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1726 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
Description
Pressing the HOME key should move the caret to the first non-whitespace character on the current line. Pressing it again should move the caret to column 1. For lines that started with a tab character, pressing the HOME key did not produce the correct results. This has been fixed.



CR:342407
CR Number:   342407
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1726 16 Dec 2003 Fixed
9.0.0 1253 16 Dec 2003 Fixed
8.0.3 4871 16 Dec 2003 Fixed
8.0.2 4358 16 Dec 2003 Fixed
8.0.1 3144 16 Dec 2003 Fixed
Description
Inserting strings that were approximately 256 bytes in length, into a trie-based index, could have resulted in a corrupt index. Searching a trie-based index for strings that were approximately 256 bytes in length could have resulted in an incorrect result being returned. This has been fixed.



CR:342427
CR Number:   342427
Product Name:   MobiLink
Product Component:   Monitor
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1743 13 Jan 2004 Fixed
Description
Hiding the display of the Table or Overview via the keyboard could sometimes disable subsequent keyboard access until the mouse was used to restore focus to the MobiLink Monitor window. This has been fixed.



CR:342519
CR Number:   342519
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1727 18 Dec 2003 Fixed
9.0.0 1254 18 Dec 2003 Fixed
8.0.3 4872 18 Dec 2003 Fixed
8.0.2 4358 18 Dec 2003 Fixed
7.0.4 3509 18 Dec 2003 Fixed
Description
When attempting to connect over the shared memory link, a rare timing dependant situation may have caused the application to hang. This was more likely (although still very rare) to have occurred on multiprocessor machines. This has been fixed.



CR:342538
CR Number:   342538
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1814 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
8.0.3 4878 24 Dec 2003 Fixed
8.0.2 4361 24 Dec 2003 Fixed
Description
After a fatal server error, attempting to stop a server with dbstop would not have stopped the server or would have displayed an error.



Now, dbstop with the -y parameter, but without the -c parameter, will stop a server after a fatal error, as long as the server was started with the -gk command line option set to "all", (this is the default for the personal server). If the -y parameter is not used, dbstop will display the fatal error and prompt if the server should be stopped.



CR:342613
CR Number:   342613
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1729 22 Dec 2003 Fixed
Description
If an outer merge join was used with a base table as one of the inputs, without intervening materialization, the results of the join were incorrect. Too few rows were returned from the base table. While the fault that caused this incorrect behaviour was present since 8.0.0, the incorrect results could not be returned for versions before 9.0.1 because a base table would never have appeared below a merge join operator without intervening materialization. This has been fixed.



CR:342643
CR Number:   342643
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2204 12 Jan 2004 Fixed
9.0.1 1815 12 Jan 2004 Fixed
9.0.0 1260 12 Jan 2004 Fixed
8.0.3 4883 12 Jan 2004 Fixed
8.0.2 4363 12 Jan 2004 Fixed
8.0.1 3145 12 Jan 2004 Fixed
Description
When unloading a database with a Multi-byte Character Set collation, using the Unload utility dbunload, if a database object, (such as a stored procedure, fuction etc) contained a MBCS character with 0x7b or 0x7d as a follow byte, the character would have been mangled. With 7-bit ASCII, the 0x7b and 0x7d correspond to brace characters.



As well, if the opbject contained more than 100 such MBCS characters with 0x7b or 0x7d as follow-bytes, dbunload could have crashed.



These problems have been fixed.



CR:342652
CR Number:   342652
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1728 19 Dec 2003 Fixed
9.0.0 1254 19 Dec 2003 Fixed
Description
If an application connected to the server via a secure link, (ie using the Encryption connection parameter), and then did a db_fini(), followed by another db_init(), any subsequent secure connections would have failed. The client log would have displayed the error, "Could not load the TLS library (dbtls9.dll)". This has been fixed.



CR:342659
CR Number:   342659
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2199 23 Dec 2003 Fixed
Description
If the SUBSTR or BYTE_SUBSTR functions were called with negative Length and positive Start values and Start plus Length was less than zero, the result would have been a substring taken from the end of the string. Also, the behavior when the Start parameter was zero was unspecified.



Now, a negative Length parameter means "return at most nnn <characters | bytes> up to and including the start position". If Start is zero and Length is non-negative, a start value of 1 is used. If Start is zero and Length is negative, a start value of -1 is used.



For example:

select substr('abcdefgh',2,-1) ==> b

select substr('abcdefgh',2,-2) ==> ab

select substr('abcdefgh',2,-3) ==> ab

select substr('abcdefgh',2,-4) ==> ab

select substr('abcdefgh',0,2) ==> ab

select substr('abcdefgh',-2,-3) ==> efg

select substr('abcdefgh',-2,2) ==> gh

select substr('abcdefgh',0,-2) ==> gh



CR:342660
CR Number:   342660
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1729 12 Jan 2004 Fixed
9.0.0 1254 12 Jan 2004 Fixed
8.0.3 4874 12 Jan 2004 Fixed
8.0.2 4359 12 Jan 2004 Fixed
Description
Universally Unique IDentifiers, (UUIDs), consists of a 16 byte structure with the following format:



time_low unsigned long

time_mid unsigned short

time_hi_and_version unsigned short

clock_seq_hi_and_reserved unsigned small

clock_seq_low unsigned small

node character(6)



The server stores the unsigned long and unsigned short fields in big-endian byte order, where as the .NET structure stores the unsigned long and unsigned short fields in little-endian byte order.



This requires the byte order of the unsigned long and unsign short fields to be changed when inserting and retrieving UUID values, which was not being done. This problem has been fixed.



CR:342661
CR Number:   342661
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1813 22 Dec 2003 Fixed
Description
The system procedures sa_index_levels() and sa_index_density() will now provide more information in their respective result sets.



The new columns for the two procedures are:



TableId: table id of the table the index is on

IndexId: index id of the new index

= 0 for Primary Keys,

= SYSFOREIGNKEY.foreign_key_id for Foreign Keys

= SYSINDEX.index_id for all other indexes

IndexType: the type of the index

= "PKEY" for primary keys

= "FKEY" for foreign keys

= "UI" for unique indexes

= "UC" for unique constraints

= "NUI" for non unique indexes



The procedures will continue to behave as before for old databases. It will also be possible to revert to the old behaviour on newly created and/or updated databases by simply dropping the corresponding stored procedure and recreating it with the old result set.



The new columns provide more information and also make the result set much more useful for the purposes of joining with other catalog tables.



CR:342664
CR Number:   342664
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2203 08 Jan 2004 Fixed
Description
The DBTools sample could not be compiled as C++ code. The compile error was: error C2197: 'int (__stdcall *)(void)' : too many arguments for call through pointer-to-function

For more details see the Microsoft document Q117428. This problem has been fixed by renaming the file from main.c to main.cpp.



CR:342684
CR Number:   342684
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1719 22 Dec 2003 Fixed
9.0.0 1252 22 Dec 2003 Fixed
Description
An EBF install would have created the "Sample Applications and Projects" icon in the default "SQL Anywhere 9" folder, even if the original install used a different folder. This has been corrected.



CR:342733
CR Number:   342733
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1729 22 Dec 2003 Fixed
9.0.0 1255 22 Dec 2003 Deferred
Description
Starting the server with the command-line options -t (set quitting time) and -xs (use http or https protocols) could have caused it to hang with 100% CPU usage. The hang was more likely on multiprocessor machines. This has been fixed.



CR:342817
CR Number:   342817
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1814 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
8.0.3 4877 24 Dec 2003 Fixed
8.0.2 4360 24 Dec 2003 Fixed
Description
When using the MobiLink authentication utility (dbmluser), updating a user password may have caused an ODBC error, although the update would have succeeded. This error message is no longer generated.



CR:342821
CR Number:   342821
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1732 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
8.0.3 4877 24 Dec 2003 Fixed
8.0.2 4360 24 Dec 2003 Fixed
Description
If an error occurred while the server was creating the system trigger for a foreign key with a referential action, the server could have crashed. This has now been fixed.



CR:342899
CR Number:   342899
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1814 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
Description
When listing indexes not used by the server during the workload capture step of the Index Consultant, indexes owned by "SYS" and "dbo" could also have been listed. Consequently, 'DROP INDEX' statements would have been added to the generated script for these indexes. The indexes would never actually have been dropped, as the server would have report errors when the script was run. This has been fixed.



A workaround is to delete the 'DROP INDEX' statement in the generated script for system tables.



CR:342900
CR Number:   342900
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2202 06 Jan 2004 Fixed
9.0.1 1815 06 Jan 2004 Fixed
9.0.0 1259 06 Jan 2004 Fixed
8.0.3 4879 06 Jan 2004 Fixed
8.0.2 4361 06 Jan 2004 Fixed
Description
When a cached plan was used in a stored procedure for an UPDATE or INSERT statement, columns marked as DEFAULT TIMESTAMP could have received a stale value from a previous invocation of the statement. This has been fixed.



As a workaround, the database option Max_plans_cached can be set to 0 to get correct behaviour, although this may negatively impact performance.



CR:342902
CR Number:   342902
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1732 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
Description
If a view was created which referenced a stored procedure in the FROM clause, rebuilding the database would have failed. Also, if the procedure name was not qualified with the owner of the procedure, users who were not members of the procedure owner's group would have been unable to reference the view. Now, the catalog definitions of views which reference stored procedures in the FROM clause, will have those references qualified with the procedure owner. An additional calls to dbo.sa_recompile_views() in the reload script will permit views which reference procedures to be recompiled after the procedures have been defined.



CR:342914
CR Number:   342914
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2204 09 Jan 2004 Fixed
9.0.1 1815 09 Jan 2004 Fixed
Description
Two new connection properties have been added, 'ClientPort' and 'ServerPort'. Calling connection_property( 'ClientPort' ) will return the client's TCP/IP port number, or 0 if the connection is not via the TCP/IP link. Calling connection_property( 'ServerPort' ) will return the server's TCP/IP port number, or 0 if the connection is not via the TCP/IP link.



CR:342915
CR Number:   342915
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2213 04 Feb 2004 Fixed
9.0.1 1818 04 Feb 2004 Fixed
9.0.0 1269 04 Feb 2004 Fixed
8.0.3 4903 04 Feb 2004 Fixed
8.0.2 4373 04 Feb 2004 Fixed
8.0.1 3148 04 Feb 2004 Fixed
Description
If Microsoft OLEDB support is not installed, a C++ application that uses the ASA OLEDB driver will fail in the call to CoCreateInstance. The failure code from CoCreateInstance does not give any indication as to the source of the problem.



Below is a sample C++ call to CoCreateInstance to initialize the ASA OLEDB provider.



CLSIDFromProgID(T2COLE(_T("ASAProv")), &clsid);

hr = CoCreateInstance( clsid, NULL,

CLSCTX_INPROC_SERVER,

IID_IDBInitialize,

(void**)&m_pIDBInitialize);



This problem is likely to occur on a Pocket PC 2003 device. The Pocket PC 2003 SDK (eg, \WinCE Tools\wce420\Pocket PC 2003) does not include the Microsoft Data Access 3.1 modules (like msdaer.dll, msdaeren.dll) that are present in older SDKs like the Pocket PC 2002 SDK (e.g., \WinCE Tools\wce300\Pocket PC 2002\dataaccess31\target\arm).



To help diagnose the problem, the ASA OLEDB provider has been changed to display a message box when it cannot access the Microsoft OLE DB Error Collection Service module.



The title of the message box is "Fatal Error".



The interior text of the message box will state something like "CoGetClassObject(CLSID_EXTENDEDERRORINFO) 0x8007007e ProgID: MSDAER.1". The hexadecimal number is the error code returned by CoGetClassObject(). In this example, the programmatic identifier associated with CLSID_EXTENDEDERRORINFO is "MSDAER.1".



The settings for CLSID_EXTENDEDERRORINFO can be examined in the system registry under HKEY_CLASSES_ROOT\CLSID\{C8B522CF-5CF3-11CE-ADE5-00AA0044773D}. Included is the path for the Microsoft OLE DB Error Collection Service module. This information can then be used to help determine if the required module is present on the system.



CR:342927
CR Number:   342927
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1747 19 Jan 2004 Fixed
9.0.0 1263 19 Jan 2004 Fixed
8.0.3 4889 19 Jan 2004 Fixed
8.0.2 4367 19 Jan 2004 Fixed
Description
Describing a column that appeared in both the GROUP BY clause and the null-supplying side of an outer join, may have incorrectly indicated that it is not nullable.



For example, the following query was affected:



select emp_id from employee key right outer join sales_order group by emp_id



This has been fixed.



CR:342929
CR Number:   342929
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1733 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
8.0.3 4878 24 Dec 2003 Fixed
8.0.2 4361 24 Dec 2003 Fixed
Description
An internal error (ArrayIndexOutOfBoundsException) would have been reported when setting column breaks in the Import wizard, if the wizard was to create a new table for the data. This has now been fixed.



CR:342968
CR Number:   342968
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1814 24 Dec 2003 Fixed
9.0.0 1256 24 Dec 2003 Fixed
Description
If a view contained a SELECT list expression which was a CASE expression (syntax 1), then the corresponding expression could have been non-NULL in the query result.



For example:



WITH V AS ( SELECT dept_id, CASE dept_id WHEN 100 THEN 'A' ELSE 'B' END FROM department )

SELECT *

FROM rowgenerator R left outer join V on R.row_num = V.dept_id

WHERE R.row_num IN (99,100)



would have returned 'B' incorrectly instead of NULL for row 99. For the problem to have occurred, a branch of the CASE expression must have returned a non-NULL value when all of the columns from the underlying table were NULL. This problem did not affect Syntax 2 CASE expressions.



Similarly, if a column of a view was a string concatenation of the form " T.x || 'string' ", the resulting column would have been non-NULL, when it should be NULL.



These two problems have been fixed.



CR:342990
CR Number:   342990
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 15 Jan 2004 Fixed
9.0.1 1816 15 Jan 2004 Fixed
9.0.0 1263 15 Jan 2004 Fixed
8.0.3 4888 15 Jan 2004 Fixed
8.0.2 4366 15 Jan 2004 Fixed
7.0.4 3510 15 Jan 2004 Fixed
Description
If two tables had primary keys that included a signed bigint column and dbmlsync scanned operations in a single run on these two tables, where the values for the primary key were identical, it was then possible, (although rare), to lose or mangle operations. When this situation occurred, the two operations would have been interpreted as occuring on the same table, instead of different tables, thus causing the two operations to be merged into a single operation. This has now been fixed.



CR:343042
CR Number:   343042
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1735 05 Jan 2004 Fixed
Description
Messages sent to the application could have been mangled due to incorrect character set translation or unnecessary translation to the OS charset. For example, the progess messages sent to the client machine during the execution of a CREATE DATABASE statement could have been mangled if the client machine's charset was X and the database charset was Y, where X was not equal to Y or, in some cases, where X and Y were the same, but X was not the OS charset. This has been fixed.



CR:343043
CR Number:   343043
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1735 05 Jan 2004 Fixed
Description
Adding an Ultralite statement by calling the system procedure, ul_add_statement(), could have caused a server crash if the third parameter contained a long constant string embedded within the SQL query. This has now been fixed.



CR:343076
CR Number:   343076
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1739 05 Jan 2004 Fixed
Description
Referencing the built-in function PATINDEX() in upper-cas, on a database using the Turkish collation 1254TRK, could have caused the server to crash. This is now fixed.



CR:343084
CR Number:   343084
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1815 06 Jan 2004 Fixed
9.0.0 1259 06 Jan 2004 Fixed
8.0.3 4879 06 Jan 2004 Fixed
9.0.2 2202 06 Jan 2004 Fixed
Description
Set expression queries, (ie UNION, EXCEPT, or INTERSECT), with grouped queries using correlated subselects, may have crashed the server. This has now been fixed.



The crash would have occurred if the grouped query block was an immediate child of a set expression query, the GROUP BY clause contained a correlated subselect and the outer reference of the subselect was an alias defined in the grouped query



For example:

SELECT file_id A1

FROM SYSTABLE T

GROUP BY file_id, ( select row_num from rowgenerator R where R.row_num=A1 )

UNION ALL

SELECT 1

FROM DUMMY



CR:343085
CR Number:   343085
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2226 20 Feb 2004 Fixed
9.0.1 1823 20 Feb 2004 Fixed
9.0.0 1276 20 Feb 2004 Fixed
Description
The UDP listener only processed one message per iteration, rather than processing all queued messages. This is now fixed, so that user will no longer need to adjust to a small interval, even when the notifier send rate can be higher.



A new upper bound of 15 sec is now imposed on the -i polling interval for UDP. So specifying an interval value higher than 15, it will be treated as 15 seconds internally.



CR:343088
CR Number:   343088
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1739 05 Jan 2004 Fixed
9.0.0 1259 05 Jan 2004 Fixed
Description
When using the Import wizard, if the keyboard was used to traverse between the two radio button options on the second page, the controls on the page did not enable and disable correctly. This has been fixed.



CR:343092
CR Number:   343092
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1739 07 Jan 2004 Fixed
9.0.0 1260 07 Jan 2004 Fixed
Description
Queries with multiple EXCEPT clauses could have returned incorrect results. In this case, the EXCEPT clauses were incorrectly being treated as EXCEPT ALL and duplicate rows are not eliminated. This has been fixed.



CR:343130
CR Number:   343130
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2203 07 Jan 2004 Fixed
9.0.1 1815 07 Jan 2004 Fixed
9.0.0 1259 07 Jan 2004 Fixed
8.0.3 4880 07 Jan 2004 Fixed
8.0.2 4362 07 Jan 2004 Fixed
Description
Expression caching is used to avoid re-computing the result of a user-defined function or a subquery within a query. If a function or subquery is evaluated with the identical parameters to a previous invocation, the cache is used to return the previous answer.



Previously, the cache compared arguments for equality using the database comparison rules. For example, in a case-insensitive database, argument 'x' was compared equal to 'X'. This could lead to different answers than expected because the two strings are not identical. Now, arguments to the expression cache are only considered equal if they are identical.



CR:343152
CR Number:   343152
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.2 4364 13 Jan 2004 Fixed
Description
If a "simple query", (see documentation for definition), referenced all primary key

columns in its WHERE clause in a way that the result set could not have had more than one row, then the estimated row count could still have been greater than 1. This has been fixed. Note, estimated row counts are always return as negative numbers.



CR:343155
CR Number:   343155
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 16 Jan 2004 Fixed
9.0.1 1816 16 Jan 2004 Fixed
9.0.0 1263 16 Jan 2004 Fixed
8.0.3 4888 16 Jan 2004 Fixed
8.0.2 4366 16 Jan 2004 Fixed
7.0.4 3510 16 Jan 2004 Fixed
Description
A LOAD TABLE statement, executed as part of a stored procedure or an event, could have crashed the server when run a second time. This has been fixed.



CR:343176
CR Number:   343176
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 15 Jan 2004 Fixed
9.0.1 1816 15 Jan 2004 Fixed
9.0.0 1252 15 Jan 2004 Fixed
8.0.3 4887 15 Jan 2004 Fixed
8.0.2 4366 15 Jan 2004 Fixed
Description
When using the iAnywhere JDBC Driver, calling the method DatabaseMetaData.getURL() would have returned null, instead of the actual URL used to establish the connection. This problem has been fixed.



CR:343177
CR Number:   343177
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1740 07 Jan 2004 Fixed
9.0.0 1259 07 Jan 2004 Fixed
Description
Fetching the server's message text lines via PROPERTY( 'MessageText', line_number ) could have crashed the server, if one of the message lines was 256 bytes or longer in length. Note that connecting from Sybase Central fetches all of the message text lines and hence connecting from Sybase Central could have crashed the server. This has now been fixed.



CR:343253
CR Number:   343253
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 13 Jan 2004 Fixed
9.0.1 1816 13 Jan 2004 Fixed
9.0.0 1263 13 Jan 2004 Fixed
8.0.3 4888 13 Jan 2004 Fixed
8.0.2 4476 20 Sep 2004 Fixed
Description
If the database option "Close_on_endtrans" was set to ON, then the server would have failed to close some cursors when executing a COMMIT.



For example, the second fetch should fail with a "cursor not open" error, but does not:



BEGIN

DECLARE c_fetch CURSOR FOR SELECT 1;

SET TEMPORARY OPTION CLOSE_ON_ENDTRANS = 'ON';

OPEN c_fetch;

FETCH c_fetch;

COMMIT;

FETCH c_fetch;

END;



As well, if the database option "Ansi_close_cursors_on_rollback" was set to ON, then the server could have crashed in some situations where a rollback occurred inside a call to a user defined function.



For example, the following would have caused a server crash:



create function DBA.foo()

returns int

begin

grant select on systable to non_existent_user;

return 1

end



create procedure bar()

begin

set temporary option ANSI_CLOSE_CURSORS_ON_ROLLBACK = 'on';

select foo()

end ;



select * from bar()



Both of these problems have now been resolved.



CR:343308
CR Number:   343308
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2204 12 Jan 2004 Fixed
9.0.1 1815 12 Jan 2004 Fixed
9.0.0 1261 12 Jan 2004 Fixed
8.0.3 4883 12 Jan 2004 Fixed
8.0.2 4363 12 Jan 2004 Fixed
Description
If a query used a blob that was stored in a work table, which was then read from the work table and copied to another expression, and that expression was materialized into a block of rows in memory, then the server could have crashed or reported an assertion failure, when attempting to returning the blob value as part of the result set.



For example, the following query could have generated the failure:



create procedure P_Blob2( @x int )

begin

select @x || repeat('long string',1000) x

from rowgenerator

where row_num = @x

end



select x, sum(row_num)

from (

select row_num, DT.x

from rowgenerator R, lateral( P_Blob2(R.row_num) ) DT

union all

select 1, '' ) DT2

group by x



This has now been fixed.



CR:343343
CR Number:   343343
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1742 09 Jan 2004 Fixed
9.0.0 1260 09 Jan 2004 Fixed
Description
Executing LOAD TABLE ... FORMAT 'ASCII' ..., where ASCII was in quotes and at least one of the 'I's was in upper case, would have failed with a syntax error when executed on a database using a Turkish collation. This is now fixed, but a work-around is to remove the quotes from 'ASCII'.



CR:343380
CR Number:   343380
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2207 12 Jan 2004 Fixed
9.0.1 1816 22 Jan 2004 Fixed
9.0.0 1264 22 Jan 2004 Fixed
8.0.3 4890 22 Jan 2004 Fixed
8.0.2 4367 22 Jan 2004 Fixed
Description
The server runninmg on Windows NT, 2000, XP or 2003 could have hung, with 100% CPU on shutdown. The database file and server name were no longer in use by the hung server, so another server could have been started with the same name and on the same database. The hung server had to have been shutdown using the Task Manager. On machines where this hang occurred, it would have happened every time a server was shutdown.



This problem has been fixed by adding a two second wait for the shutdown event. If this two second timeout is reached, the message "The TCP listener failed to shutdown cleanly within the timeout period" will appear in the server's output log, likely more than once and with more than one listener type (for example TCP and UDP).



This problem occurred when the event which normally signals the listener thread to shutdown was lost, or intercepted by other software running on the machine. For personal servers using only shared memory connections, a workaround to this lost event problem is to use the -x none option.



CR:343401
CR Number:   343401
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 12 Jan 2004 Fixed
9.0.1 1816 12 Jan 2004 Fixed
9.0.0 1263 12 Jan 2004 Fixed
Description
Attempting to query or alter a table with a foreign key that referenced a table in another dbspace, could have caused the server to crash or fail with an assertion error. This has now been fixed.



CR:343445
CR Number:   343445
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 16 Jan 2004 Fixed
9.0.1 1816 16 Jan 2004 Fixed
9.0.0 1263 16 Jan 2004 Fixed
Description
Preparing statements with the WITH <temporary-views> clause and using question marks '?' as place-holders for bound variables, could have caused the error "Syntax error near 'host variable'". This has been fixed.



CR:343454
CR Number:   343454
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   6.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2204 12 Jan 2004 Fixed
9.0.1 1816 19 Jan 2004 Fixed
Description
When starting a database, UltraLite would have overwritten an existing database file, unless it matched exactly the application, this included files which were not databases. The intention was to simplify the upgrade process: when a new application was deployed, the existing database was automatically recreated to match the new application (schema, options, etc). This rule was relaxed for UltrLite applications using encryption, so that an application without encryption enabled would not erase an existing encrypted database. Instead, an error was returned when starting the database. This case requires an explicit drop databse call if desired.



Now, UltraLite will perform additional checks to ensure a file is actually an UltraLite database before proceeding to overwrite it. This means that UltraLite will no longer overwrite or drop a file which is not actually a database.



New errors reported for this case are as follows:



SQLE_INVALID_DATABASE is signaled when the file is not a database. The file is left as is.



SQLE_CANNOT_ACCESS_FILE is signaled when the nature of the file cannot be determined. The file is left as is. This can only happen if there is an I/O error reading the file (unlikely or symptomatic of much larger problems).



This was motivated by a possible security hole where the ActiveX version of UltraLite could be made to erase arbitrary files using a script in a web page. Note, this does not apply to Palm record-based stores.



CR:343460
CR Number:   343460
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2338 14 Jun 2004 Fixed
9.0.1 1876 14 Jun 2004 Fixed
9.0.0 1325 14 Jun 2004 Fixed
8.0.3 5119 14 Jun 2004 Fixed
8.0.2 4434 14 Jun 2004 Fixed
Description
If a combination of inserts and updates existed in the upload stream for a given table, and an error occurred when MobiLink was applying these operations, it was possible for the wrong script contents to be written to the MobiLink log when the error context information was being written. The correct script contents are now written to the log.



CR:343472
CR Number:   343472
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2207 16 Jan 2004 Fixed
9.0.1 1816 16 Jan 2004 Fixed
9.0.0 1263 16 Jan 2004 Fixed
8.0.3 4889 16 Jan 2004 Fixed
8.0.2 4367 16 Jan 2004 Fixed
8.0.1 3146 16 Jan 2004 Fixed
Description
An attempt to insert a null value into a binary column, would resulted in an access violation. This has been fixed.



CR:343503
CR Number:   343503
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2207 19 Jan 2004 Fixed
9.0.1 1816 19 Jan 2004 Fixed
9.0.0 1263 19 Jan 2004 Fixed
8.0.3 4889 19 Jan 2004 Fixed
8.0.2 4367 19 Jan 2004 Fixed
Description
A "Connection was terminated" exception would habe been thrown when executing a command with a pooled connection, if the server was no longer available. This problem has been fixed.



CR:343567
CR Number:   343567
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2212 03 Feb 2004 Fixed
9.0.1 1818 03 Feb 2004 Fixed
9.0.0 1269 03 Feb 2004 Fixed
8.0.3 4902 03 Feb 2004 Fixed
8.0.2 4372 03 Feb 2004 Fixed
Description
A recurring scheduled event could have failed to fire at each of the times specified by its schedule. The interval between scheduled executions needed to exceed one hour for this problem to appear. For servers prior to 8.0.2 build 4335 or 9.0.0 build 1232, the interval needed to exceed one day for the problem to occur. The problem was also dependent upon whether or not the server was restarted between event executions. This has now been fixed.



CR:343573
CR Number:   343573
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2211 03 Feb 2004 Fixed
9.0.1 1818 03 Feb 2004 Fixed
Description
A query that contained an EXISTS subquery with a large number of outer references, could have caused the server to fail with assertion 101505 - "Memory allocation size too large"

Now, such queries fail with the error message: "Statement size or complexity exceeds server limits", (SQLCode -890). This error can be avoided by reducing the number of outer references from the subquery or by increasing the server page size.



CR:343580
CR Number:   343580
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2204 13 Jan 2004 Fixed
9.0.1 1815 13 Jan 2004 Fixed
Description
The SetMessageListener method could have been used to register a message listener delegate function only if the queuename syntax was used. The agentid\queuename syntax is now supported.



CR:343581
CR Number:   343581
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2216 02 Feb 2004 Fixed
9.0.1 1819 02 Feb 2004 Fixed
9.0.0 1268 02 Feb 2004 Fixed
8.0.3 5180 05 Nov 2004 Fixed
8.0.2 4496 05 Nov 2004 Fixed
Description
When a row was inserted into a table with a COMPUTE or CHECK clause that contained a correlated subselect, where the outer references was to a column of the base table, the server may have crashed. This has been fixed.





In the example below, the outer reference T.a is used in a subselect of the COMPUTE clause for the column T.b:



create table T(

a int,

b char(10) not null COMPUTE (left( '0001', (select max(row_num) from rowgenerator where row_num = T.a )) ))





insert into T values (1, '1')



CR:343603
CR Number:   343603
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1744 13 Jan 2004 Fixed
9.0.0 1262 13 Jan 2004 Fixed
8.0.3 4886 13 Jan 2004 Fixed
8.0.2 4364 13 Jan 2004 Fixed
Description
A RESULT clause was added to the definition of a procedure when it was created, if the procedure called another procedure which returned a result set. This made it appear that the RESULT clause was specified explicitly by the creator, and affected how calls to the procedure were handled by dbisql and applications using ODBC. If multiple result sets were returned, the second and subsequent ones may have been missing columns. The RESULT clause is no longer added in this situation.



CR:343613
CR Number:   343613
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1744 13 Jan 2004 Fixed
9.0.0 1252 13 Jan 2004 Fixed
8.0.3 4886 13 Jan 2004 Fixed
8.0.2 4364 13 Jan 2004 Fixed
Description
When using the Data Import wizard to import data into an existing table, an exception could have occurred when selecting a new column in the combobox on page 4 of the wizard. This has been fixed



CR:343618
CR Number:   343618
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2205 14 Jan 2004 Fixed
9.0.1 1816 14 Jan 2004 Fixed
9.0.0 1262 14 Jan 2004 Fixed
8.0.3 4886 14 Jan 2004 Fixed
8.0.2 4364 14 Jan 2004 Fixed
Description
A very long diagnostic message from a communication link could have caused the client or the server to have crashed. In order for this to have occurred, which would have been rare, the LOGFILE connection parameter or -z server option would have had to have been used. This is now fixed.



CR:343619
CR Number:   343619
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2205 14 Jan 2004 Fixed
9.0.1 1816 14 Jan 2004 Fixed
9.0.0 1262 14 Jan 2004 Fixed
8.0.3 4886 14 Jan 2004 Fixed
8.0.2 4366 14 Jan 2004 Fixed
Description
The error message text returned to the application after a server fatal error or assertion may have had "???" where it should have had details of what failed. This was always true on subsequent requests to the server after the fatal error occurred. This has been fixed so that details of the fatal error or assertion are now included in the error message text.



CR:343621
CR Number:   343621
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1743 19 Feb 2004 Fixed
8.0.3 4883 19 Feb 2004 Fixed
8.0.2 4363 19 Feb 2004 Fixed
9.0.0 1261 24 Feb 2004 Fixed
Description
When certain collation names or IDs were passed to SORTKEY or COMPARE, the error 'Invalid parameter' would have been reported. These collations include 'turnocs', 'cyrnocs', 'rusnocs', and 'turnoac'. This has been fixed.



CR:343622
CR Number:   343622
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1744 13 Jan 2004 Fixed
Description
The system function db_name() would have returned a database name truncated to 127 bytes, however, it should have returned a name truncated to 128 bytes. In Sybase Central, it could have appeared as though other databases were present on the server, as the name presented was just the truncated name of the database to which Sybase Central was already connected. This has been fixed.



CR:343623
CR Number:   343623
Product Name:   MobiLink
Product Component:   Monitor
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1744 13 Jan 2004 Fixed
9.0.1 1744 13 Jan 2004 Fixed
9.0.0 1262 13 Jan 2004 Fixed
8.0.3 4886 13 Jan 2004 Fixed
8.0.2 4364 13 Jan 2004 Fixed
Description
Using the Tools->Options->Overview menu and dialog options to change the Overview colors of the system watches, would have had no effect. This has been fixed. As a workaround, the Overview colors of the system watches could be changed under the Watch Manager (Tools->Watch Manager) and editing the watch.



CR:343627
CR Number:   343627
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2207 19 Jan 2004 Fixed
9.0.1 1816 19 Jan 2004 Fixed
9.0.0 1263 19 Jan 2004 Fixed
8.0.3 5465 10 Nov 2006 Fixed
Description
The server could have failed with assertion 100904 during recovery on a database involved in Mobilink synchronization. This is more likely to occur on a blank padded database. This fix will now allow recovery to complete.



CR:343683
CR Number:   343683
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 14 Jan 2004 Fixed
9.0.1 1816 14 Jan 2004 Fixed
9.0.0 1262 14 Jan 2004 Fixed
8.0.3 4887 14 Jan 2004 Fixed
8.0.2 4366 14 Jan 2004 Fixed
Description
It was possible for the server to fail with a "divide by zero" exception. The chances of this failure taking place were very small. The problem has now been resolved.



CR:343686
CR Number:   343686
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 14 Jan 2004 Fixed
9.0.1 1816 14 Jan 2004 Fixed
9.0.0 1262 14 Jan 2004 Fixed
8.0.3 4887 14 Jan 2004 Fixed
8.0.2 4365 14 Jan 2004 Fixed
Description
Starting with version 8.0.0, it was not possible to connect to a database using a userid which had an empty string for a password, when using jConnect and the "Connect" dialog to specify the connection parameters. This was a bug, and has been fixed.



This problem affected only jConnect connections. A workaround is to use the iAnywhere JDBC Driver which did not suffer from this restriction.



Note, this restriction affects the ASA and Mobilink plug-ins for Sybase Central, dbconsole, and dbprdbg as well.



CR:343687
CR Number:   343687
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2209 15 Jan 2004 Fixed
9.0.1 1817 26 Jan 2004 Fixed
9.0.0 1266 26 Jan 2004 Fixed
8.0.3 4894 26 Jan 2004 Fixed
8.0.2 4369 26 Jan 2004 Fixed
Description
An attempt to create column statistics on a server running on a multi-CPU machine, could have caused a server crash if the statistics being generated were also being used by other concurrently running queries. The chance of the crash occurring was proportional to the amount of concurrent access to column statistics taking place. This problem has been resolved.



CR:343689
CR Number:   343689
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2212 28 Jan 2004 Fixed
9.0.1 1818 28 Jan 2004 Fixed
9.0.0 1268 28 Jan 2004 Fixed
Description
If a checkpoint occurred concurrently with the sending of blob data to an application, the server could deadlock. This is now fixed.



CR:343705
CR Number:   343705
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2208 22 Jan 2004 Fixed
9.0.1 1817 22 Jan 2004 Fixed
9.0.0 1265 22 Jan 2004 Fixed
8.0.3 4893 22 Jan 2004 Fixed
8.0.2 4348 22 Jan 2004 Fixed
Description
The Histogram utility dbhist would have generated only "00,000" labels in the Excel Sheet if the Windows decimal separator under Regional Options was a comma. This has been fixed.



CR:343813
CR Number:   343813
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1747 26 Jan 2004 Fixed
9.0.0 1264 26 Jan 2004 Fixed
8.0.3 4890 26 Jan 2004 Fixed
8.0.2 4367 26 Jan 2004 Fixed
Description
If the redirector that is shipped with MobiLink was configured for iAnywhere Wireless Server, the redirector would have failed with the error "ERROR: user requesting redirection to unknown server:iaws". This has been fixed, the redirector can now be configured for either MobiLink or iAnywhere Wireless Server.



CR:343815
CR Number:   343815
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 15 Jan 2004 Fixed
9.0.1 1816 15 Jan 2004 Fixed
9.0.0 1263 15 Jan 2004 Fixed
8.0.3 4888 15 Jan 2004 Fixed
8.0.2 4366 15 Jan 2004 Fixed
Description
If the expression for a COMPUTE or DEFAULT clause was very long, it could have resulted in a server crash. An error message is now given if the expression is longer than is supported by the server. The maximun expression length for a COMPUTE or DEFAULT clause is based on the database page size. It is approximately page_size - 64 bytes.



CR:343820
CR Number:   343820
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2206 16 Jan 2004 Fixed
9.0.1 1816 16 Jan 2004 Fixed
9.0.0 1263 16 Jan 2004 Fixed
8.0.3 4889 16 Jan 2004 Fixed
8.0.2 4367 16 Jan 2004 Fixed
Description
If a subselect that had no outer references, or a non-deterministic function that had no non-constant parameters, was used below a work table and in a prefilter above the work table, as shown in the graphical plan, then the server could have crashed or returned the wrong answer.



For example,the following query shows the problem on the asademo database if the JHO join method is selected:



select ( select '12' from dummy D1, dummy D2 ) SubQ1,

( select '13' from dummy D3, dummy D4 where SubQ1 > 10 ) SubQ2

from rowgenerator R1 left outer join employee E on R1.row_num = E.salary

where (R1.row_num between SubQ1 and 255,100)

and SubQ2 = '13'



This problem has now been fixed.





--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------