提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系电话: (微信),QQ: 289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着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:343839
CR Number:   343839
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.2 2209 15 Jan 2004 Deferred
Description
When exported table data in SQL format using the OUTPUT statement, but without specifying "*" as the column list, then importing the resulting .SQL file using the INPUT statement would have failed with an error message.



For example, running the following statements:



CREATE TABLE test ( c1 INTEGER, c2 INTEGER );

INSERT INTO test VALUES( 123, 456 );

SELECT c1, c2 FROM test;

OUTPUT TO test.sql FORMAT SQL;

READ test.sql



would have caused an error message which included the text "Table FROM not found". Note that there must be a blank in the column list -- "c1, c2" -- for the message to have appeared. As well, if the table contained NULL values, dbisql could have reported an internal error. This has now been fixed.



CR:343849
CR Number:   343849
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2209 22 Jan 2004 Fixed
9.0.1 1817 22 Jan 2004 Fixed
9.0.0 1266 22 Jan 2004 Fixed
8.0.3 4894 22 Jan 2004 Fixed
8.0.2 4369 22 Jan 2004 Fixed
Description
When starting the MobiLink Server on Windows with an Internet Explorer older than version 4.0, it would have failed with an error that certain entry points could not be found in wininet.dll. The wininet dependency has now been removed from the server. The same dependency has also been weaken on the client side, so that the relatively up-to-date wininet.dll is required only when automatic dialup is invoked.
Workaround Description
 Upgrade your Internet Explorer installation to at least 4.0



CR:343923
CR Number:   343923
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 1747 19 Jan 2004 Fixed
9.0.0 1263 19 Jan 2004 Fixed
Description
When run on SuSE 9 or RedHat Advanced Server 3.0, the server could have hung on startup. For this hang to have occurred, the asynchronous I/O library '/usr/lib/libaio.so' must have been installed and the Linux kernel had to have support for asynchronous I/O. This hang has now been fixed. A workaround is to user the server command line option -ua, which disables the use of the Linux kernel asynchronous I/O support.



CR:343935
CR Number:   343935
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 2213 03 Feb 2004 Fixed
9.0.1 1818 03 Feb 2004 Fixed
9.0.0 1269 03 Feb 2004 Fixed
Description
The server could have crashed when an attempt was made to calibrate the database server using the ALTER DATABASE statement. The crash was most likely to occur when the temporary dbspace had not yet been written out to disk. This has been corrected.



CR:343936
CR Number:   343936
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 1748 19 Jan 2004 Fixed
Description
When using the MobiLink Monitor to monitor MobiLink synchronizations with a DB2 consolidated database, the Monitor might unexpectedly disconnect from the MobiLink server. This has been fixed.



A work around is to change the ml_table MobiLink system table to not have a value of 0 for table_id (the primary key), by applying the following SQL commands to your DB2 consolidated database when the MobiLink server is not running (and only after verifying that ml_table has a row with table_id of 0):



create table tmp_id(id integer not null)

create table tmp_name(name varchar(128) not null)

insert into tmp_id select max(table_id)+1 from ml_table

insert into tmp_name select name from ml_table where table_id=0

insert into ml_table (table_id, name) select id, '_placeholder' from tmp_id

update ml_table_script set table_id = (select id from tmp_id) where table_id=0

delete from ml_table where table_id=0

update ml_table set name = (select name from tmp_name) where table_id=(select id from tmp_id)

drop table tmp_id

drop table tmp_name

commit



CR:343952
CR Number:   343952
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 22 Jan 2004 Fixed
9.0.1 1816 22 Jan 2004 Fixed
9.0.0 1264 22 Jan 2004 Fixed
Description
Executing a query with the following conditions, would have crashed the server:



1) it had a constant or subselect in the select list of a derived table

2) the derived table was on the null supplying side of an outer join

3) the derived table had another derived table in its FROM clause

4) the second derived table was a query expression (ie UNION, INTERSECT or EXCEPT)

5) one of the branches of the query expression had a constant or subselect as the last item of its select list



For example:



select * from employee left outer join

(select 1 from (select emp_id from employee union select 1) dt) dt1(x) on 1=1



This has been fixed.



CR:343962
CR Number:   343962
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.2 2207 19 Jan 2004 Fixed
9.0.1 2449 12 Oct 2004 Fixed
Description
DBISQL would report an error for valid statements following an actual error.

For example, executing the (following invalid statement:



SET TEMPORARY 123



would result in an error message, which is correct. Then executing the following valid statement:



SELECT CURRENT TIME



would result in a syntax error. The error dialog would contain the two statements run together:



SET TEMPORARY 123SELECT CURRENT TIME



This problem has been fixed.



CR:344018
CR Number:   344018
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)
8.0.2 4406 16 Apr 2004 Fixed
8.0.3 5117 16 Apr 2004 Fixed
9.0.1 1850 16 Apr 2004 Fixed
9.0.2 2282 16 Apr 2004 Fixed
Description
The MobiLink user authentication utility dbmluser would have crashed if it couldn't determine the default collation from the locale setting. The documentation is incorrect, the default collation does not fall back to 1252LATIN1 on single-byte machines and 932JPN on multi-byte machines. The default collation actually would have become 'unknown', (or in some cases 'ISO_BINENG'), which was a collation that dbmluser did not expect.

Now the problem in determining the default collation has been corrected, as well as the cause of the crash.
Workaround Description
 Add -pc switch.

dbmluser -u22 -v -pc iso_1 -c "dsn=Ultralite 8.0 Sample"



CR:344019
CR Number:   344019
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 2207 21 Jan 2004 Fixed
9.0.1 1816 21 Jan 2004 Fixed
9.0.0 1264 21 Jan 2004 Fixed
8.0.3 4890 21 Jan 2004 Fixed
8.0.2 4367 21 Jan 2004 Fixed
Description
Cancelling a CREATE DATABASE or DROP DATABASE statement, could have caused the server to hang, if the cancel occurred concurrently with the cache shrinking. This has been fixed.



CR:344020
CR Number:   344020
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   6.0.00
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 1264 19 Jan 2004 Fixed
8.0.3 4890 19 Jan 2004 Fixed
8.0.2 4367 19 Jan 2004 Fixed
Description
Calls to the db_stop_database function would have failed if the server was not found using the shared memory link, even if the LINKS parameter was specified in the connection string or DSN. The LINKS parameter was being ignored.



CR:344023
CR Number:   344023
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.0 1264 19 Jan 2004 Fixed
Description
If a group-by ordered rollup was used to compute results for a ROLLUP query, the server could have crashed or returned an incorrectresult if the input to the GrByOR was not a sort (for example, a clustered index scan instead). This has been fixed.



CR:344052
CR Number:   344052
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 1747 21 Jan 2004 Fixed
9.0.0 1264 21 Jan 2004 Fixed
Description
Attempting to trigger an event from within Sybase Central, by right-clicking the event and selecting the "Trigger..." menu item, would have caused a syntax error when clicking the Trigger Event dialog's OK button if one or more event parameters were specified and the list of event parameters was not enclosed in parentheses. Now, the parentheses no longer need to be included in the event parameter list, since they are added utomatically.



CR:344063
CR Number:   344063
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 06 Feb 2004 Fixed
9.0.1 1817 06 Feb 2004 Fixed
9.0.0 1271 06 Feb 2004 Fixed
Description
Fully-enumerated plans that included sorts, materialization, etc, may have had incorrect costs reported by the optimization logger. The effect was that plans that were marked as picked by the optimizer, may have had a higher reported cost than plans that had been rejected. This has been fixed.



CR:344137
CR Number:   344137
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 2210 22 Jan 2004 Fixed
9.0.1 1817 22 Jan 2004 Fixed
9.0.0 1266 22 Jan 2004 Fixed
8.0.3 4896 22 Jan 2004 Fixed
8.0.2 4370 22 Jan 2004 Fixed
8.0.1 3147 22 Jan 2004 Fixed
Description
Using the OLEDB driver, a conversion of a value of type DBTYPE_IUNKNOWN to a value of type DBTYPE_STR would have failed.



This problem could have occured if a column was of type adLongVarWChar as in the following Visual Basic example:



If rsTempSource.Fields(strFieldName).Type = ADOR.DataTypeEnum.adLongVarWChar Then

rsTempTarget.Fields(strFieldName).Value = Trim(rsTempSource.Fields(strFieldName).Value)

rsTempTarget.UpdateBatch()

End If



Binding would have failed for a column of this type resulting in a "Count field incorrect" error. This problem has been corrected.
Workaround Description
 Customer can use the Microsoft Provider (MSDASQL) but this is not a long term solution.



CR:344159
CR Number:   344159
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 2208 21 Jan 2004 Fixed
9.0.1 1817 21 Jan 2004 Fixed
9.0.0 1265 21 Jan 2004 Fixed
8.0.3 4893 21 Jan 2004 Fixed
8.0.2 4368 21 Jan 2004 Fixed
Description
A hash join with an IF or a CASE expression with a predicate used in a join condition could have caused a request to fail with the error:



"Run time SQL error -- *** ERROR *** Assertion failed: 102501 (10.0.0.1267)

Work table: NULL value inserted into not-NULL column (SQLCODE: -300; SQLSTATE: 40000)"



This also affected INTERSECT implemented with hash join. This problem has been fixed.



CR:344168
CR Number:   344168
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.2 2208 19 Jan 2004 Fixed
9.0.1 1817 19 Jan 2004 Fixed
9.0.0 1265 19 Jan 2004 Fixed
Description
Multiple error messages could have been reported when attempting to fetch the results of a SQL statement, if the data could not be fetched for any reason. Now, only the first error message is displayed.



Note, this problem was limited to connections that used the iAnywhere JDBC Driver.



CR:344169
CR Number:   344169
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1748 21 Jan 2004 Fixed
9.0.0 1265 21 Jan 2004 Fixed
8.0.3 4893 21 Jan 2004 Fixed
8.0.2 4368 21 Jan 2004 Fixed
Description
The MobiLink ASA client, dbmlsync, and the Log Transfer Manager for ASA, dbltm, may have crashed, if a transaction spanned multiple transaction logs. This has been fixed.



CR:344171
CR Number:   344171
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1748 21 Jan 2004 Fixed
9.0.0 1265 21 Jan 2004 Fixed
8.0.3 4895 21 Jan 2004 Fixed
8.0.2 4368 21 Jan 2004 Fixed
Description
When using Sybase Central's Log Veiwer, the Newest First and Oldest First sort order was reversed. This has been corrected.



CR:344173
CR Number:   344173
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.2 2208 21 Jan 2004 Fixed
9.0.1 1816 21 Jan 2004 Fixed
9.0.0 1265 21 Jan 2004 Fixed
Description
If a new procedure was created after the Breakpoint Creation dialog had been used, it would not have appeared in the drop down list of procedures in the Breakpoint Creation dialog. This has been fixed.



CR:344176
CR Number:   344176
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2208 21 Jan 2004 Fixed
9.0.1 1817 21 Jan 2004 Fixed
9.0.0 1265 21 Jan 2004 Fixed
Description
Sybase Central's Log Viewer dialogs (Filter Events, Find etc) were not closed when the escape key was pressed. The escape key will now close these dialogs.



CR:344180
CR Number:   344180
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2217 10 Feb 2004 Fixed
Description
A new connection property LoginTime has been added. It returns the date and time when a connection was established.



Example:



The login time for all connections can be displayed with:

select connection_property('LoginTime',number)

from sa_conn_info()



CR:344205
CR Number:   344205
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 2215 04 Feb 2004 Fixed
9.0.1 1819 04 Feb 2004 Fixed
9.0.0 1270 04 Feb 2004 Fixed
Description
For a query with a predicate of the form 'EXISTS( subquery)' subquery flattening was always done if the subquery was correlated. However, when the subquery was correlated with the rest of the query only by a Cartesian product, the execution time of the rewritten query could have been much lomger than the execution time for the original query (if the EXISTS subquery had not been flattened). The optimizer now trys to determine if flattening the subquery is beneficial for finding a better plan for the main query block (for example, if the subquery contains equijoins with the tables from the main query block, or it contains sargable or local predicates on the tables from the main query block). The flattening of EXISTS subqueries is now done only if the subquery is correlated and the optimizer can determine that flattening the subquery will result in finding a better access plan for the main query block.



Example of an EXISTS subquery which is not flattened after this fix:



select *

from T

where EXISTS( select 1 from R where R.X LIKE T.X + '%')



CR:344210
CR Number:   344210
Product Name:   UltraLite
Product Component:   Analyser Java Classes
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2240 05 Mar 2004 Fixed
9.0.1 1829 05 Mar 2004 Fixed
9.0.0 1282 05 Mar 2004 Fixed
8.0.3 4938 05 Mar 2004 Fixed
8.0.2 4389 05 Mar 2004 Fixed
Description
For queries with result set expressions of type timestamp, the analyzer could have generated C++ code that would not have compiled. For example, if c1 was a column of type datetime, then C++ code generated for the following query would not have compiled:



SELECT max(c1) FROM T



The C++ code generated included a method on the generated ULResultSet class that returned the columns SQL type (GetColumnSQLType()). The symbol generated for some timestamp expressions would have been SQL_TIMESTAMP_STRUCT which was not defined (the valid symbols are defined in ulapi.h).



This has been fixed so that the column SQL type is now defined as SQL_TIMESTAMP.
Workaround Description
 Edit the generated .cpp file and change SQL_TIMESTAMP_STRUCT to SQL_TIMESTAMP.



CR:344211
CR Number:   344211
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 2209 21 Jan 2004 Fixed
9.0.1 1817 21 Jan 2004 Fixed
9.0.0 1266 21 Jan 2004 Fixed
Description
Subquery flattening is now disallowed in some cases when a procedure call appears in the FROM clause. Specifically, it will not be used when a rowid for a procedure call would be required for a distinct on rowid as in the following example:





CREATE PROCEDURE product_proc()

BEGIN

DECLARE varname integer;

set varname = 1;

SELECT * from product

END;





SELECT description

FROM product_proc() p

WHERE EXISTS

(SELECT *

FROM sales_order_items s

WHERE s.prod_id >= p.id

AND s.id = 2001)

group by description



The symptom was unwanted duplicate rows in the result.



CR:344236
CR Number:   344236
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.2 2209 21 Jan 2004 Fixed
9.0.1 1817 21 Jan 2004 Fixed
9.0.0 1266 21 Jan 2004 Fixed
Description
It was not possible to serialize the class iAnywhere.UltraLite.SQLException like other exceptions. This has been fixed for the full .NET Framework. The .NET Compact Framework does not support serialization of exceptions.



CR:344252
CR Number:   344252
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 1266 21 Jan 2004 Fixed
Description
Calling the method Connection.StopSynchronizationDelete() would have thrown a missing method exception. This has been fixed.



CR:344257
CR Number:   344257
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 2209 22 Jan 2004 Fixed
9.0.1 1817 22 Jan 2004 Fixed
Description
The ordered distinct operator may have returned duplicate rows. For this to have occured, there must have be a sort immediately below the distinct, the distinct must have been beneath a group-by operator, and the distinct must have included rowid expressions (usually due to the presence of a subquery). Because a hash-based distinct is usually selected over an ordered distinct with a sort, the occurance of this problem will be rare.



CR:344274
CR Number:   344274
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 2207 22 Jan 2004 Fixed
9.0.1 1816 22 Jan 2004 Fixed
9.0.0 1263 25 Nov 2004 Fixed
8.0.3 4889 22 Jan 2004 Fixed
8.0.2 4367 22 Jan 2004 Fixed
Description
If a MobiLink server was run as a Windows service, and it had a dependency on an Oracle service that was the consolidated database server, MobiLink may have failed to start. The error would have mentioned being unable to connect to the consolidated database.



Now, the MobiLink server retries connecting on startup. Retries are once a minute for ten minutes. After this, failure to connect results in startup failure.



CR:344289
CR Number:   344289
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 1749 23 Jan 2004 Fixed
Description
When saving a file from the MobiLink Monitor in CSV format, it would have always used commas as the column separators even when the decimal separator (in the start_time column) was also a comma. It would also have used a non-international format for the date part of the start_time column. These problems have been fixed. If the locale's decimal separator is a comma, then the MobiLink Monitor will use semicolons instead of commas for the column separators. (This is consistent with Microsoft Excel behaviour, so that the resulting file can now be read into Excel when Excel is running in a locale that uses comma for the decimal separator.) The MobiLink Monitor now can read either column and decimal separator combination. Also, the start_time column now uses ISO 8601 date and time format (as is used in the rest of the MobiLink Monitor).



CR:344313
CR Number:   344313
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.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
Description
A query would have failed with the error "column ... not found" under the following conditions:



1) it contained an outer join

2) the null-supplying table was a grouped derived table

3) one of the select list items of the derived table was a constant or null-tolerant function

4) one of the tables in the FROM clause of the derived table was a view, that could have been flattened



This has been fixed.



CR:344318
CR Number:   344318
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.0 1266 23 Jan 2004 Fixed
Description
When the MobiLink Synchronization Client dbmlsync was run in such a way that more than one synchronization occurs during a single instantiation, (this occurs when more than one -n option is specified on the command line, scheduling options are being used or the restart parameter of the sp_hook_dbmlsync_end hook is used to restart a synchronization), an operation uploaded during one synchronization might have been uploaded again during a later synchronization in the same dbmlsync instantiation. This problem only occurred when the -urc commandline option was used with a value greater than 200060 and was more likely to have occurred when the -urc value was increased. This behaviour has been fixed.



CR:344321
CR Number:   344321
Product Name:   SQL Remote for SQL Anywhere
Product Component:   Database Tools Interface
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   7.0.4
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
7.0.4 3511 03 Feb 2004 Fixed
Description
If an online transaction log was truncated, just when dbremote started scanning the online log, dbremote may have resent transactions that had been sent in previous messages. This problem is now fixed.



CR:344347
CR Number:   344347
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 2207 23 Jan 2004 Fixed
9.0.1 1817 23 Jan 2004 Fixed
9.0.0 1265 23 Jan 2004 Fixed
8.0.3 4893 23 Jan 2004 Fixed
8.0.2 4368 23 Jan 2004 Fixed
Description
Creating a view with a deeply nested structure (e.g. a large number of UNIONs) could have caused the server to crash. These types of queries will now return the error -890 "Statement size or complexity exceeds server limits".



A work-around is to increase the size of the server's stack using the -gs or -gss commandline options.



CR:344354
CR Number:   344354
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 2210 26 Jan 2004 Fixed
9.0.1 1817 26 Jan 2004 Fixed
9.0.0 1266 26 Jan 2004 Fixed
Description
Version 9.0.0 made changes to the rules for when an index can be used to satisfy a search argument with values of different domains. These changes, required for correctness, prevented an index from being considered for comparisons of the form:

numeric_col <comparison operator> double_value

where numeric_col is a column of type NUMERIC (or DECIMAL), <comparison operator> is one of ( <, <=, =, => > ), and double_value is a value of type FLOAT, REAL, or DOUBLE. The server does such comparisons in the DOUBLE domain. The value of numeric_col is converted to a DOUBLE and compared to the double_value (promoted to type DOUBLE if necessary).



Since DOUBLE is an approximate data type, there are NUMERIC values that can not be precisely represented as a DOUBLE. For example, consider the following:



CREATE TABLE T( id int, n NUMERIC(30,6) );

INSERT INTO T VALUES( 1, 9007199254740992 );

INSERT INTO T VALUES( 2, 9007199254740993 );





CREATE VARIABLE double_value DOUBLE;

SET double_value = 9007199254740992;

SELECT * FROM T WHERE n = double_value;



The correct answer to this query is both rows of the table, because both 9007199254740992 and 9007199254740993 convert to the same DOUBLE value, and therefore compare equal to double_value when compared in the DOUBLE domain.



If, on the other hand, the server was to have used an index scan, it was equivalent to the following query:

select * from T where n = CAST( double_value as NUMERIC )

This latter query returned no rows because the value of CAST( double_value as NUMERIC ) is 9007199254740994. When compared as numerics, neither of the rows of T match this value.



The change to avoid selecting an index for this case guaranteed correct results, possibly at the cost of performance. An enhancement has now been implemented for the rules for determining whether an index can be selected, so that an index can be selected for some cases which are guaranteed to give the correct results. After this change, an index can be used if the following conditions are met:



1 the numeric column has a precision that is 15 or lower

2 the comparison operator is equality (=), or the value double_value is known at query open time and can be converted to a NUMERIC value without loss of precision.



That is, the double can be converted to a NUMERIC with precision and scale limited by the connection options PRECISION and SCALE such that CAST( CAST( double_value AS NUMERIC ) AS DOUBLE ) = double_value.



The value 15 is the DBL_DIG quantity for normalized floating point numbers, and represents the number of decimal digits that can be represented by a double without loss of precision. If a column is declared as NUMERIC with a precision higher than 15, then the column can contain values that can not be represented exactly by a DOUBLE type. Therefore, it is possible for an index scan to return the wrong answer in this case, and the server does not consider using an index for these cases.
Workaround Description
 The workaround is to add the following line to his where statement:



where insure.master_key =cast(:hostvariable as numeric(10,2));



However, this workaround would affect many many lines of code.



CR:344384
CR Number:   344384
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.2 2207 23 Jan 2004 Fixed
9.0.1 1817 23 Jan 2004 Fixed
9.0.0 1265 23 Jan 2004 Fixed
Description
Removing the PUBLIC group from the SYS group by executing the statement, "REVOKE MEMBERSHIP IN GROUP SYS FROM PUBLIC", would have prevented connections to the database from Sybase Central. The workaround is to add the PUBLIC group back to the SYS group

by executing the statement "GRANT MEMBERSHIP IN GROUP SYS TO PUBLIC"



When Sybase Central connects, it executed a query that references the "SYSPROCPARM" table. This query did not qualify the table by the table owner "SYS", which meant it was not found, which caused the query to fail. This problem was fixed by qualifying the reference to "SYSPROCPARM" by adding the owner "SYS".



CR:344414
CR Number:   344414
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 2214 06 Feb 2004 Fixed
9.0.1 1819 06 Feb 2004 Fixed
9.0.0 1271 06 Feb 2004 Fixed
8.0.3 4909 06 Feb 2004 Fixed
8.0.2 4375 06 Feb 2004 Fixed
8.0.1 3149 06 Feb 2004 Fixed
Description
Executing a SQL statement containing a string that was larger than the page size of the database, could have caused the server to crash. This problem has now been corrected.



CR:344415
CR Number:   344415
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 2210 23 Jan 2004 Fixed
9.0.1 1817 23 Jan 2004 Fixed
9.0.0 1266 23 Jan 2004 Fixed
Description
The URL supplied to an HTTP service created with URL ON would have contained HTTP-encoded characters. For example, if there was a space in the URL, the URL supplied to the service would have contained "%20" instead. This has been fixed by removing the HTTP escapes.



CR:344417
CR Number:   344417
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 2210 23 Jan 2004 Fixed
9.0.1 1817 23 Jan 2004 Fixed
9.0.0 1266 23 Jan 2004 Fixed
8.0.3 4896 23 Jan 2004 Fixed
8.0.2 4370 23 Jan 2004 Fixed
Description
If a successful database connection is terminated without first doing a database disconnect, a "connection terminated abnormally" warning message is displayed in the server console. Common reasons for this condition to occur include the application was terminated, the application crashed, or the application ended without correctly closing the connection. If an ESQL app did a db_string_connect or EXEC SQL CONNECT but did not do a db_string_disconnect or an ESQL SQL DISCONNECT, this warning would have occurred. Similarly if an ODBC application did a SQLConnect or SQLDriverConnect without doing a SQLDisconnect this warning would have occurred.



If the connection was a TCP/IP or an SPX connection and the client end of the connection was closed without first disconnecting, and -z wasn't used, the server would have displayed the message "Connection terminated abnormally; SERVER socket shut down" in the console. This has been fixed so that it displays "Connection terminated abnormally; client socket shut down."



CR:344440
CR Number:   344440
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 2210 26 Jan 2004 Fixed
9.0.1 1817 26 Jan 2004 Fixed
9.0.0 1266 26 Jan 2004 Fixed
8.0.3 4896 26 Jan 2004 Fixed
8.0.2 4370 26 Jan 2004 Fixed
Description
If multiple concurrent connections were made to a database that had just been started (e.g., multiple connections autostart the same database), then it was possible for the server to crash. Although the probably of the crash taking place was extremely low. The problem has now been resolved.



CR:344452
CR Number:   344452
Product Name:   UltraLite
Product Component:   Code Generator
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2210 23 Jan 2004 Fixed
9.0.1 1817 23 Jan 2004 Fixed
9.0.0 1266 23 Jan 2004 Fixed
Description
The UltraLite Code Generator, ulgen, could have hung if provided a trusted root certificates file, (via the -r option), which contained PEM objects other than certificates. This has been fixed.



CR:344503
CR Number:   344503
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 2210 26 Jan 2004 Fixed
9.0.1 1817 26 Jan 2004 Fixed
9.0.0 1267 26 Jan 2004 Fixed
Description
CUBE, ROLLUP, and grouping set queries would have had grouping expressions, that appeared in the select list, incorrectly described as not nullable. This has been fixed. (Note that only ROLLUP was available in 9.0.0).



CR:344544
CR Number:   344544
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   8.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2210 26 Jan 2004 Fixed
9.0.1 1817 26 Jan 2004 Fixed
9.0.0 1267 26 Jan 2004 Fixed
8.0.3 4897 26 Jan 2004 Fixed
8.0.2 4370 26 Jan 2004 Fixed
8.0.1 3147 26 Jan 2004 Fixed
Description
When using IBM's DB2 ODBC driver, the MobiLink server may not have been able to insert or update BLOBs bigger than 32K. The error in the MobiLink log (using IBM DB2 version 8.1), would have been:



DIAG [22001] [IBM][CLI Driver] CLI0109E String data right truncation. SQLSTATE=22001 (-99999)



This has been fixed.



CR:344566
CR Number:   344566
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.2 2211 26 Jan 2004 Fixed
9.0.1 1818 26 Jan 2004 Fixed
Description
In some rare situations, it was possible for the method Connection.Synchronize(SyncProgressListener) to have failed without issuing a SyncProgressState.STATE_ERROR or SQLException message. For example, when an application used a large number of connections. It was also possible that the application may have hung. This has been fixed.



CR:344576
CR Number:   344576
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   4.2.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2214 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
9.0.0 1271 05 Feb 2004 Fixed
Description
It was possible that the SQL displayed for a procedure, function, view or trigger could have been corrupted in the right-pane or in a separate editor window. This would only have occurred if the SQL contained comments before the owner and name, or if the SQL for a

procedure or view did not contain an open parenthesis after the name, which might have been the case if the procedure or view took no parameters and was in the Transact-SQL dialect. This has been fixed.
Workaround Description
 Workaround:

When creating the view with template in Sybase Central 4.1.1.1432 (ASA 8.0.2), enclose the view name between double quotes, like this:



create view DBA."viewtemplate"

as select emp_id,emp_fname,emp_lname from DBA.employee



CR:344596
CR Number:   344596
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2211 26 Jan 2004 Fixed
9.0.1 1818 26 Jan 2004 Fixed
9.0.0 1268 26 Jan 2004 Fixed
8.0.3 4900 26 Jan 2004 Fixed
Description
Specifying the -q commandline option (suppress banner) on the Service Creation utility dbsvc, without the -y commandline option (delete or overwrite without confirmation), would not have prevented prompts when modifying or deleting an existing service. The prompts are now suppressed, and the action will not be carried out unless the -y switch is also specified.



CR:344618
CR Number:   344618
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 2211 30 Jan 2004 Fixed
9.0.1 1818 30 Jan 2004 Fixed
9.0.0 1269 30 Jan 2004 Fixed
Description
Executing a query where the optimizer had chosen a hash join, could have caused the server to fail with a fatal error, "dynamic memory exhausted". This has been fixed.



CR:344643
CR Number:   344643
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 28 Jan 2004 Fixed
9.0.1 1818 28 Jan 2004 Fixed
9.0.0 1268 28 Jan 2004 Fixed
8.0.3 4900 28 Jan 2004 Fixed
8.0.2 4371 28 Jan 2004 Fixed
Description
Executing a DROP STATISTICS statement with the database option Blocking = 'OFF', that failed because the table being modified was under use by another connection, could have caused the server to crash. This problem has been fixed.



CR:344647
CR Number:   344647
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.2 2211 27 Jan 2004 Fixed
9.0.1 1818 27 Jan 2004 Fixed
9.0.0 1268 27 Jan 2004 Fixed
Description
When using the Sybase Central Performance Monitor, if a statistic was added to the chart, the chart was displayed, and then another statistic was added from it's property sheet, the chart will not display the second statistic in it's legend list. This has been fixed.



CR:344653
CR Number:   344653
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 27 Jan 2004 Fixed
9.0.1 1818 27 Jan 2004 Fixed
9.0.0 1268 27 Jan 2004 Fixed
Description
When performing an update of a cursor using host variables, or the ODBC SQLSetPos( ..., SQL_UPDATE, ... ) function, the server could have incorrectly returned the error:



-121 "Permission denied: you do not have permission to update ... "



if the select list referenced columns of an updatable view. This problem has been fixed.



CR:344703
CR Number:   344703
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 2212 27 Jan 2004 Fixed
9.0.1 1818 27 Jan 2004 Fixed
9.0.0 1268 27 Jan 2004 Fixed
Description
Queries using predicates with subqueries containing outer joins might have returned incorrect result sets, when the following conditions were true:

(1) the subquery qualifyed for being flattened

(2) the subquery contained an outer join.

(3) the preserved side of the outer join didn't have a join predicate with the null-supplying side beside the ON condition of the outer join.

(4) the preserved side of the outer join had a semijoin (i.e., JE or JHE) in the access plan for the query



For example:

If the following query had the plan: T<seq> JE R<seq> JNLO S<seq> incorrect result set might have been returned for certain instances of the tables T, R, and S.



select *

from T

where exists( select 1

from R left outer join S ON (R.x = S.x)

where S.y is NULL or S.y = T.y )



This has now been fixed.



CR:344705
CR Number:   344705
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 2212 30 Jan 2004 Fixed
9.0.1 1818 30 Jan 2004 Fixed
Description
The system function db_property( 'name' ) could have returned garbled data if the database character set was not equal to the OS character set, but only if the database was created on the command line or autostarted. Databases started by the 'START DATABASE' statement were unaffected.



There were numerous other instances where the character set of various strings was not tracked, converted, or maintained correctly. The following properties were also corrected:



db_property( 'alias' )

db_property( 'file' )

db_property( 'logname' )

db_property( 'logmirrorname' )

db_property( 'tempfilename' )

property( 'name' )



Also, cursor names were not being converted to database charset, but were left in the application's charset. The database name sent for a dbstop request was also left in the application's charset. The database name for a STOP DATABASE statement was left in the database charset, rather than the required OS charset. When autostarting a database, the database filename (DBF connection parameter) was converted to the database charset, rather than OS charset.



These problem have now been corrected.



CR:344712
CR Number:   344712
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2212 02 Feb 2004 Fixed
9.0.1 1818 02 Feb 2004 Fixed
Description
If a named connection was forcibly dropped by the server, due to a liveness or idle timeout, the next attempt by the same application to make a connection with the same name would have failed. This has been fixed.



CR:344732
CR Number:   344732
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2270 05 Apr 2004 Fixed
9.0.1 1844 05 Apr 2004 Fixed
9.0.0 1295 05 Apr 2004 Fixed
8.0.3 4968 05 Apr 2004 Fixed
8.0.2 4402 05 Apr 2004 Fixed
8.0.1 3157 05 Apr 2004 Fixed
Description
If a row was added to a recordset with an autoincremented primary key, the new autoincremented value was not updated in the recordset. This has been fixed for server-side keyset and dynamic cursors. The following server-side cursors support refetching of column values: keyset, dynamic, and static. Forward-only cursors are not supported. Due to the way ADO interacts with the OLEDB provider, no client-server cursors support refetching of the columns.



CR:344761
CR Number:   344761
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 3511 03 Feb 2004 Fixed
Description
A java class, running in the server's VM, that attempted to read more columns from a resultset than were available, would fail with an exception. This is expected, but when the class terminated, the server would fail with the assertion "Cursor not being unlocked". This is now fixed, the assertion will no longer occur.



CR:344829
CR Number:   344829
Product Name:   SQL Anywhere
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.0 1269 03 Feb 2004 Fixed
Description
Reloading a database may have failed, if a server with ASLANG=german (or GE) was used by dbunload to created the reload.sql file. The problem was due to an incorrect comment character, one dash was missing. This has been fixed
Workaround Description
 manually edit reload.sql



CR:344838
CR Number:   344838
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 2225 18 Feb 2004 Fixed
9.0.1 1752 18 Feb 2004 Fixed
9.0.0 1275 18 Feb 2004 Fixed
8.0.3 4925 18 Feb 2004 Fixed
8.0.2 4381 18 Feb 2004 Fixed
7.0.4 3513 04 Mar 2004 Fixed
Description
Performance of the 8.0.2 server when run on Solaris 9 or 10 machines, was poor compared to the server running on Solaris 6, 7 or 8, especially

with large databases. The problem was due to dynamic cache sizing not being enabled for servers running on Solaris 9 or 10, thus the server never grew the cache to accomodate large databases. This has now been fixed, dynamic cache sizing is now enabled when the server is run on Solaris 9 or 10. A work around is to start the server with a sufficiently large cache.



CR:344861
CR Number:   344861
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 1752 05 Feb 2004 Deferred
9.0.0 1271 05 Feb 2004 Fixed
8.0.3 4907 05 Feb 2004 Fixed
8.0.2 4373 05 Feb 2004 Fixed
Description
When run on Mac OS X, HP-UX and Compaq Tru64 platforms, the server was not listening to the correct UDP ports, which could have caused applications to fail to find the server when attempting to connect.



The server listens to UDP ports and responds to requests on these ports so that applications can locate the server by server name, even if the server starts on a TCP/IP port other than the default port (2638). Since Mac OS X, HP-UX, and Compaq Tru64 platforms do not allow multiple processes to bind to the same UDP port, connections to server running on these platforms, must specify the TCP/IP port number (via ServerPort) if the server is not using the default TCP/IP port (2638).



If the server's TCP/IP port number is 2638 (the default), the server listens to UDP port 2638, otherwise the server should listen to the same UDP port as the TCP/IP port. For the Mac OS X, HP-UX, and Compaq Tru64 platforms, the server should NOT listen to UDP port 2638, even though servers on other platforms do additionally listen to UDP port 2638. The reason servers on these platforms should not listen to UDP port 2638 is if a second server starts on TCP/IP port 2638, the UDP port 2638 must remain available for the second server.



Note that in order to connect over TCP/IP to a server using a TCP/IP port other than 2638 running on the Mac OS X, HP-UX or Compaq Tru64 platforms, the client must specify the port of the server.



For example, if the server is started with the command "dbsrv8 -n MyASAServer asademo.db", a client on the same subnet can find the server using the connection parameters "eng=MyASAServer;links=tcpip".

If the server is started on Mac OS X, HP-UX or Compaq Tru64 with the command "dbsrv8 -n SecondASAServer -x tcpip(port=7777) asademo.db", a client on the same subnet can find the server using the connection parameters "eng=SecondASAServer;links=tcpip(port=7777)". Note that if the server was running on a different platform, then the client would not need to specify the port TCP/IP parameter.



Additionally, on Mac OS X, HP-UX and Compaq Tru64 platforms, if a server was already using port 2638, and a second network server was started without the ServerPort parameter, this second network server should fail to start. Before this change the second network server would have chosen a different port and started. The reason the network server should fail to start in this case is so that user can specify the server's port number which all clients must also specify (if the server were allowed to start, the port number could change if the second server was restarted, causing clients to fail to connect in the future). Note that personal servers will start even if port 2638 is in use, since shared memory is normally used to connect to personal servers.



This has been fixed so that on Mac OS X, HP-UX and Compaq Tru64, servers listen to the correct UDP ports, and network servers fail to start if TCP/IP port 2638 is in use and no port is specified.



CR:344946
CR Number:   344946
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   4.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2214 30 Jan 2004 Fixed
9.0.1 1821 16 Feb 2004 Fixed
9.0.0 1273 16 Feb 2004 Fixed
8.0.3 4918 16 Feb 2004 Fixed
8.0.2 4379 16 Feb 2004 Fixed
Description
Large or complicated statements could have caused the server to crash with a stack overflow error, or to return a fatal error "memory exhausted". Both situations would have lead to the server failing to respond to further requests.



For example, a statement of the following form could have caused the problem:

select 1

+ (1+1+...+1) -- 10,000 '1' literals in the expression

+ ...

+ (1+1+...+1) -- above parenthesized expression repeated 11 or more times, depending on cache size



Requests could also fail with error -890 - "Statement size or complexity exceeds server limits", if the main heap grew to be near <maximum cache size>/<number of workers>.



These problems have now been fixed.



CR:344958
CR Number:   344958
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 2215 04 Feb 2004 Fixed
9.0.1 1819 04 Feb 2004 Fixed
9.0.0 1271 04 Feb 2004 Fixed
Description
This is an addendum to the original fix for issue 344313.



Description from issue 344313:

A query would have failed with an incorrect error message, under the following conditions:



1) it contained an outer join

2) the null-supplying table was a grouped derived table

3) one of the select list items of the derived table was a constant or null-tolerant function

4) one of the tables in the FROM clause of the derived table was a view, that could have been flattened



CR:344976
CR Number:   344976
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.2 2213 30 Jan 2004 Fixed
9.0.1 1818 30 Jan 2004 Fixed
9.0.0 1269 30 Jan 2004 Fixed
Description
On the last page of the Sybase Central Index Consultant, the button 'Run Script' was active, regardless of whether there was a script to run or not. If no indexes had been recommended for creation or dropping, clicking the button would have caused the server to report a syntax error, but have no other effect. This has now been fixed so that the button is disabled if no recommendations have been made, which is consistent with the ISQL Index Consultant.



CR:345015
CR Number:   345015
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2245 09 Mar 2004 Fixed
9.0.1 1830 09 Mar 2004 Fixed
9.0.0 1285 09 Mar 2004 Fixed
8.0.3 4943 09 Mar 2004 Fixed
8.0.2 4390 09 Mar 2004 Fixed
8.0.1 3153 09 Mar 2004 Fixed
Description
When a CHAR or VARCHAR column contained the empty string (a string of length 0) and the data was fetched into a variant of type BSTR, the OLEDB provider did not convert the result into a proper null-length BSTR. The pointer to the string value would have been uninitialized and this could have resulted in an application crash. This has now been fixed.
Workaround Description
 None.



CR:345060
CR Number:   345060
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.2 2213 30 Jan 2004 Fixed
9.0.1 1818 30 Jan 2004 Fixed
9.0.0 1270 30 Jan 2004 Fixed
Description
When in the Code Details panel for a procedure while in debug mode, if the connection was disconnected, a NullPointerException would have been reported. This has been fixed.



CR:345076
CR Number:   345076
Product Name:   SQL Remote for SQL Anywhere
Product Component:   Database Tools Interface
Status:   Closed
OS:   Generic
Original Version:   6.0.00
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 1270 04 Feb 2004 Fixed
8.0.3 4904 04 Feb 2004 Fixed
8.0.2 4373 04 Feb 2004 Fixed
Description
If a transaction log directory contained many files that were not transaction log files, or the directory contained some files that were not transaction log files and dbremote was run many times in non-hover mode, dbremote may have reported the errors: "too many open files" or "missing transaction log files" and then stop. Everything would have been fine when restarted. This problem is fixed now.



Note, this problem also affected MobiLink's dbmlsync.



CR:345109
CR Number:   345109
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   7.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2213 03 Feb 2004 Fixed
9.0.1 1818 03 Feb 2004 Fixed
9.0.0 1270 03 Feb 2004 Fixed
8.0.3 4904 03 Feb 2004 Fixed
Description
When a Windows WM_DESTROY message was posted to any of the application listed below, the process would not have shutdown and the console for the process would have stopped responding. Although the process was shutdown properly when a Windows WM_CLOSE message was received. It is unusal for a WM_DESTROY message to be posted before a WM_CLOSE message. This problem is now fixed.



Executables affected:

dbmlsync.exe,

dbremote.exe,

ssremote.exe,

ssqueue.exe,

dbltm.exe,

dblsn.exe,

qaagent.exe,

dbmlsrv9.exe



CR:345171
CR Number:   345171
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
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 1824 20 Feb 2004 Fixed
9.0.0 1276 20 Feb 2004 Fixed
8.0.3 4927 20 Feb 2004 Fixed
8.0.2 4382 20 Feb 2004 Fixed
Description
If an application called ResultSet.isLast() prior to calling ResultSet.next() or ResultSet.first() on a ResultSet object, then calling ResultSet.next() afterwards would have incorrectly returned FALSE. This problem has now been fixed.



CR:345174
CR Number:   345174
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 2216 10 Feb 2004 Fixed
9.0.1 1819 10 Feb 2004 Fixed
9.0.0 1271 10 Feb 2004 Fixed
8.0.3 4911 10 Feb 2004 Fixed
8.0.2 4376 10 Feb 2004 Fixed
Description
Complex expressions used in DISTINCT and ORDER BY clauses were not correctly matched, resulting in the syntax error -152 "Invalid order by specification". This has now been fixed.

As a general rule, for query blocks using both ORDER BY and DISTINCT clauses, the ORDER BY expressions must reference only the expressions from the select list with DISTINCT clause.



For example:

select distinct emp_lname, isnull (city, ' ') as address

from employee

order by upper(address)



CR:345185
CR Number:   345185
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 2216 09 Feb 2004 Fixed
9.0.1 1819 09 Feb 2004 Fixed
9.0.0 1271 09 Feb 2004 Fixed
8.0.3 4911 09 Feb 2004 Fixed
8.0.2 4376 09 Feb 2004 Fixed
Description
If the system procedure sa_validate, was called in unchained mode (ie the database option CHAINED='off'), then no information is returned. This problem was most noticeable when using a jConnect or Open Client application. This was due to the local temporary table declared in sa_validate to hold the results, did not have the ON COMMIT PRESERVE ROWS clause. This problem has now been fixed for newly created databases. To correct this problem for existing databases, modify the sa_validate procedure so that the temporary table result_msgs, has the clause ON COMMIT PRESERVE ROWS.



CR:345195
CR Number:   345195
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 2224 10 Feb 2004 Fixed
9.0.1 1823 10 Feb 2004 Fixed
9.0.0 1271 10 Feb 2004 Fixed
Description
Queries with predicates of the form "constant NOT IN (uncorrelated subquery)" may have taken longer to evaluate in 9.0, compared to earlier versions. This has been fixed.



Example:

select *

from R

where '123' NOT IN (select T.x

from T)



CR:345202
CR Number:   345202
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.2 2214 03 Feb 2004 Fixed
9.0.1 1819 03 Feb 2004 Fixed
9.0.0 1271 03 Feb 2004 Fixed
Description
When using Sybase Central to modify a table by adding or removing columns, or changing the size of one or more existing columns, the maximum row width displayed on the Miscellaneous page of the table's property sheet would not have been updated accordingly. This has been fixed.



CR:345221
CR Number:   345221
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.2 2214 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
9.0.0 1271 05 Feb 2004 Fixed
8.0.3 4907 05 Feb 2004 Fixed
8.0.2 4374 05 Feb 2004 Fixed
Description
If the AsaClient was in the process of issuing an error, a native error exception would have been thrown, if a codepage corresponding to the database's charset was not available. Now, if the code page of the database is not available, the AsaClient always returns an English error message to the application.



CR:345223
CR Number:   345223
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 2214 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
9.0.0 1271 05 Feb 2004 Fixed
8.0.3 4907 05 Feb 2004 Fixed
8.0.2 4374 05 Feb 2004 Fixed
Description
If a procedure, trigger or view was created with redundant quotes around the object name and the next token started immediately after the trailing quote, the saved source for the object would have contained no separation between the object name and the next token.



For example:

create procedure "p"as begin return end

would have been saved as:

create procedure pas begin return end



This has been fixed.



CR:345234
CR Number:   345234
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)
30 Mar 2004 Fixed
Description
For some complex expressions used in outer join queries, NULL could have been returned inappropriately, or a non-NULL value could have been returned in place of NULL, due to a non-matching row in the outer join. This has been fixed.



For example, the following query would have given wrong results of this nature:



SELECT T1.*

FROM ( select row_num C1, row_num*1 C2 from rowgenerator) T1

LEFT JOIN ( systable T key join syscolumn C) ON T1.C2=0



CR:345236
CR Number:   345236
Product Name:   MobiLink
Product Component:   Charset Conversion (UNILIB)
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2233 26 Feb 2004 Fixed
9.0.1 1752 26 Feb 2004 Fixed
9.0.0 1279 26 Feb 2004 Fixed
8.0.3 5117 26 Feb 2004 Fixed
8.0.2 4386 26 Feb 2004 Fixed
Description
Microsoft Windows, for Asian (multi-byte) languages, allows a user to define their own characters, including the glyph that is displayed. As part of defining a character, the user picks an unused code point in the character set. MobiLink and ASA were not aware of this new code point, and character set conversion would substitute the "invalid character" for any user-defined characters.



Now, the mappings for user-defined characters in cp950 (Traditional Chinese) are included.



CR:345284
CR Number:   345284
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 2215 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
Description
If the database used a multi-byte character set (eg. UTF8), and a different character set was requested by an HTTP client, the HTTP interface could have returned some characters in the database character set. This has been fixed.



CR:345325
CR Number:   345325
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2215 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
9.0.0 1271 05 Feb 2004 Fixed
Description
The Information utility, dbinfo, could have returned incorrect results if another table named DUMMY was in the namespace of the connected user, (specified using the -c switch on the DBINFO command line). This has been fixed, by qualifying an unqualified reference to the table DUMMY with the user SYS.



CR:345409
CR Number:   345409
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2213 05 Feb 2004 Fixed
9.0.1 1819 05 Feb 2004 Fixed
Description
If the MobiLink Listener could not be found (ie not installed or not in the path), then the QAnywhere Client qaagent would have output an error message when it was launched, but then would have hang and not terminate. A work-around is to use the qaagent command line option -push_notifications "disabled", in which case qaagent will not attempt to invoke dblsn. This problem did not occur on supported CE platforms. This hang will now not occur when the QAnywhere Client cannot find the Listener.



CR:345439
CR Number:   345439
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 1745 04 Feb 2004 Fixed
9.0.0 1262 04 Feb 2004 Fixed
Description
This is an addendum to the original fix for issue 339759.



The initial fix introduced a potential incompatibility with older versions of DBISQL. Specifically, when connecting using the iAnywhere JDBC Driver, the values of the following options were always being set as indicated, regardless of the PUBLIC or per-user setting (if any):



Option Value

---------------- ---------

Date_format yyyy-mm-dd

Date_order ymd

Time_format hh:nn:ss

Timestamp_format yyyy-mm-dd hh:nn:ss.sssss



Now, the values of these options are taken from the per user setting (if set), or the PUBLIC setting (if there is no per user setting). If a custom login procedure has been created, these options are NOT explicitly modified by DBISQL.



CR:345450
CR Number:   345450
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 2211 04 Feb 2004 Fixed
9.0.1 1818 04 Feb 2004 Fixed
9.0.0 1269 04 Feb 2004 Fixed
Description
An unintended side-effect of the changes for issue 332134 to prevent a server crash, was to disallow correlated subselects in COMPUTE and CHECK expressions. This restriction has now been removed.



CR:345558
CR Number:   345558
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 2218 16 Feb 2004 Fixed
9.0.1 1820 16 Feb 2004 Fixed
9.0.0 1273 16 Feb 2004 Fixed
8.0.3 4916 16 Feb 2004 Fixed
8.0.2 4378 16 Feb 2004 Fixed
Description
If an UPDATE statement included an assignment to a local variable and the value being assigned was not of the same type as the variable, a server crash could have resulted. This has been fixed.



CR:345571
CR Number:   345571
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 2216 06 Feb 2004 Fixed
9.0.1 1819 06 Feb 2004 Fixed
9.0.0 1271 06 Feb 2004 Fixed
8.0.3 4910 06 Feb 2004 Fixed
8.0.2 4376 06 Feb 2004 Fixed
Description
In very rare situations, the server could have hung when stopping a database.



CR:345634
CR Number:   345634
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2219 17 Feb 2004 Fixed
9.0.1 1821 17 Feb 2004 Fixed
9.0.0 1274 17 Feb 2004 Fixed
8.0.3 5117 17 Feb 2004 Fixed
8.0.2 4379 17 Feb 2004 Fixed
Description
If the server issued an error message in response to committing changes, the error message would not be displayed if the commit was a side-effect of shutting down DBISQL. This situation could occur if the dbisql option Wait_for_commit was 'On'. Now the message is always displayed.
Workaround Description
 None.



CR:345642
CR Number:   345642
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 2217 06 Feb 2004 Fixed
9.0.1 1819 06 Feb 2004 Fixed
9.0.0 1271 06 Feb 2004 Fixed
Description
The HTML generated for a server generated HTTP error, was partially in the US-ASCII character set and partially in the character set requested by the client. This has been

fixed. Now the entire body of the reply will be in the requested character set.



CR:345644
CR Number:   345644
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.2 2210 09 Feb 2004 Fixed
9.0.1 1819 09 Feb 2004 Fixed
Description
Dynamic SQL statement errors produced a SQLException with the text "Syntax error near '-n/a-' -n/a-", as the position of the syntax error was not being substituted into the error message.



This has been fixed. The first "parameter" of the error message is now replaced with the token where the error took place, and the second parameter is now replaced with the offset into the SQL statement string.



CR:345723
CR Number:   345723
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.2 2210 09 Feb 2004 Fixed
9.0.1 1819 09 Feb 2004 Fixed
Description
Dynamic SQL statement errors produced a SQLException with the text "Syntax error near '-n/a-' -n/a-", as the position of the syntax error was not being substituted into the error message.



This has been fixed. The first "parameter" of the error message is now replaced with the token where the error took place, and the second parameter is now replaced with the offset into the SQL statement string.



CR:345734
CR Number:   345734
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 2223 16 Feb 2004 Fixed
9.0.1 1822 16 Feb 2004 Fixed
9.0.0 1274 16 Feb 2004 Fixed
8.0.3 5117 16 Feb 2004 Fixed
8.0.2 4380 16 Feb 2004 Fixed
Description
If a predicate qualified to be pushed into a view, then the process of inferring new predicates in the view query block, might not have used this pushed predicate. This may have resulted in less than optimal access plans, due to the fact that useful sargable predicates were not inferred. This has been fixed.



The following conditions must have been met for a query to have exhibited this problem:

(1) the main query block was a grouped query on a view V1

(2) the main query block contained a local view predicate on V1 (e.g., "V1.col1 = constant")

(3) the view V1 contained other predicates that, with the help of the pushed predicate, could have been used to infer sargable predicates on base tables (e.g., "col1 = T.x")

(4) the view V1 was grouped as well





Example:

select V1.col2, count(*)

from V1

where V1.col1 = c

group by V1.col2



V1: select V2.col3, count(*)

from V2, T

where V2.col1 = T.x

group by V2.col3



V2: select *

form R1

UNION ALL

select *

from R2



CR:345761
CR Number:   345761
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.3 4923 16 Feb 2004 Fixed
8.0.2 4380 16 Feb 2004 Fixed
Description
If a multi-variable SELECT ... INTO was executed in a procedure and the query returned no rows, calling the procedure simultaneously from several connections could have caused the server to crash. For this to have occurred, the SELECT statement must have been followed by another statement involving a query or expression. The problem was unlikely to occur on single-processor machines. This has been fixed.



CR:345777
CR Number:   345777
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2227 20 Feb 2004 Fixed
9.0.1 1824 20 Feb 2004 Fixed
9.0.0 1277 20 Feb 2004 Fixed
Description
The system procedure sa_validate would have returned an empty result set, instead of an error, when run against a version 8 database that had errors. This has been fixed to correctly return the error in the result set.



CR:345783
CR Number:   345783
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2216 09 Feb 2004 Fixed
9.0.1 1819 09 Feb 2004 Fixed
Description
If no "automatic" rule was specified in the transmission rules file, then it was assumed that no messages were filtered. This meant that even if scheduled rules were specified, they would have had no effect. The work-around is to create an automatic rule of the form "automatic=1=2" to ensure all messages would be filtered, except those satisfying scheduled conditions.



Now there is an implicit rule associated with each user mentioned in the rules file that causes all messages to be filtered, except those explicitly allowed.



Example:



Before this change a rules file containing:



[someUser]

start time '12:00:00' every 6 hours = myPriority in ( 'low', 'medium' )



would have been equivalent to a rules file containing



[someUser]

automatic=



To get the correct behaviour previously, the rules file would have had to have been:



[someUser]

automatic = 1 > 2

start time '12:00:00' every 6 hours = myPriority in ( 'low', 'medium' )



Now, the rules file can be simply:



[someUser]

start time '12:00:00' every 6 hours = myPriority in ( 'low', 'medium' )



Note that before this change, the following rules worked as expected:



[someUser]

automatic = myPriority = 'high'

start time '12:00:00' every 6 hours = myPriority in ( 'low', 'medium' )



That is, there was only a problem when scheduled rules were used without automatic rules.



CR:345785
CR Number:   345785
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 13 Feb 2004 Fixed
9.0.1 1819 13 Feb 2004 Fixed
9.0.0 1273 13 Feb 2004 Fixed
Description
If a procedure executed by an HTTP connection called sa_set_http_header( 'CharsetConversion', 'OFF' ), the Content-Type header would still have contained the requested character set, even though the data was not converted. This has been fixed, the Content-Type header will now contain the correct character set.



CR:345790
CR Number:   345790
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2216 09 Feb 2004 Fixed
9.0.1 1819 09 Feb 2004 Fixed
Description
If a transmission rule contained a syntax error, then an error report would have been written to the MobiLink log file, and the rule would have been ignored. Now, the behaviour has been changed so that rules containing errors detected on server start-up are reported and forcing the MobiLink server to fail to start.



CR:345795
CR Number:   345795
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2216 10 Feb 2004 Fixed
9.0.1 1819 10 Feb 2004 Fixed
Description
If a client-side transmission rule contained a syntax error, an error report would have been written to the QAnywhere log file and the rule would be ignored. Now, the behaviour has been changed such that if errors are detected, they are reported and QAnywhere client will fail to start.



CR:345855
CR Number:   345855
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 2208 17 Feb 2004 Fixed
9.0.1 1822 17 Feb 2004 Fixed
9.0.0 1275 17 Feb 2004 Fixed
8.0.3 4913 17 Feb 2004 Fixed
8.0.2 4382 17 Feb 2004 Fixed
Description
A message statement with a comma-separated list of expressions, could have caused a server crash, (ASA 8.0.x) or a syntax error, (ASA 9.0.x), if the first expression

did not contain a table reference and a subsequent expression did contain a table reference.



For example:

message 'Version: ',string(( select @@version ))



This has been fixed.



CR:345901
CR Number:   345901
Product Name:   UltraLite
Product Component:   UltraLite for AppForge MobileVB
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.0 1274 16 Feb 2004 Fixed
Description
For queries with multiple occurances of "column = value" in the WHERE clause, in which the same column occured more than once, and that column was the first item in an index, Ultralite dynamic SQL could have attempted to free memory more than once. This has been corrected.



CR:345909
CR Number:   345909
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.2 2217 10 Feb 2004 Fixed
9.0.1 1820 10 Feb 2004 Fixed
9.0.0 1271 10 Feb 2004 Fixed
8.0.3 4910 10 Feb 2004 Fixed
8.0.2 4376 10 Feb 2004 Fixed
8.0.1 3149 10 Feb 2004 Fixed
Description
There was a change in the a_sync_db structure in version 9.0.1, which meant that any application built with 9.0.0, would have failed with an Access Violation crash, when calling the 9.0.1 DBSynchronizeLog function. This problem has now been corrected.



To work around this problem, the 9.0.0 application must be rebuilt with 9.0.1 software. In particular, it is important to specify the correct version of the DBTOOLS library when setting up the a_sync_db structure:



dbSyncStruct.version=9000; // is the wrong way to initialize this field

dbSyncStruct.version=DB_TOOLS_VERSION_NUMBER; // is the correct way



This problem affects any application built with 9.0.0 and deployed with 9.0.1 installed, and any application built with 9.0.1 and deployed with 9.0.1 installed if the wrong version number is specified in the a_sync_db structure. These applications must be re-built with the 9.0.1 dbtools library and they must specify the correct DBTOOLS version number as shown above.



CR:345916
CR Number:   345916
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2228 16 Feb 2004 Fixed
9.0.1 1824 16 Feb 2004 Fixed
9.0.0 1277 16 Feb 2004 Fixed
Description
Any attempt to create a procedure, function, trigger or event using the wizards, would have failed if the database was running on a version 7.0.x server. The was due to the wizards creating code templates with BEGIN...END blocks containing only a comment. This syntax was not valid on a version 7.0.x server. Now, if the database is running on a version 7.0.x server, the BEGIN...END block will contain a PRINT statement instead.



CR:345925
CR Number:   345925
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2217 10 Feb 2004 Fixed
9.0.1 1820 10 Feb 2004 Fixed
Description
With UltraLite dynamic SQL, IN, ANY, ALL, or EXISTS search conditions that contained subqueries with DISTINCT, GROUP BY, or ORDER BY clauses, may have produced incorrect results. This has been fixed.



CR:345927
CR Number:   345927
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 2217 10 Feb 2004 Fixed
9.0.1 1820 10 Feb 2004 Fixed
Description
Queries containing subqueries with DISTINCT aggregates, may have returned incorrect result sets,when the following conditions existed:

- subquery was used in a conjunct of the form 'expr theta (subquery)"

- subquery was a grouped query with DISTINCT aggregates

- subquery referenced only one base or derived table, or view T

- the same object T was used in the main query block

- the access plan chosen for this query used WINDOW operator



This has been fixed.





For example:



Select *

from T, R

where T.z = R.z and T.Y = (select sum(distinct T.X) from T)



The access plan must use WINDOW operator: R<seq> JH* Window [ T<seq>]



CR:345936
CR Number:   345936
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2219 16 Feb 2004 Fixed
9.0.1 1821 16 Feb 2004 Fixed
9.0.0 1273 16 Feb 2004 Fixed
8.0.3 4917 16 Feb 2004 Fixed
8.0.2 4379 16 Feb 2004 Fixed
Description
If an Embedded SQL or ODBC application connected with an ENG connection parameter containing a dot, and after the dot, a back slash, forward slash, semicolon, or ampersand, the application would have crashed. This has be fixed



CR:345949
CR Number:   345949
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 2244 18 Mar 2004 Fixed
9.0.1 1836 18 Mar 2004 Fixed
9.0.0 1289 18 Mar 2004 Fixed
Description
If a query contained an IF expression with an ANY, ALL, or IN predicate in the select list, and a keyset-driven (scroll) cursor was opened over the query, the server could have crashed, or returned incorrect results, when fetching from the cursor. This has been fixed.



For example, the following query demonstrates the problem:



create table SQScroll(

pk int primary key,

x char(10),

y int

);

insert into SQScroll

select row_num, row_num, row_num from rowgenerator;



SELECT pk, x,

IF x IN ( SELECT ''||row_num FROM rowgenerator R WHERE S1.pk = R.row_num ) THEN '1' ELSE '0' ENDIF b_in,

IF x = ANY ( SELECT ''||row_num FROM rowgenerator R WHERE S1.pk = R.row_num ) THEN '1' ELSE '0' ENDIF b_any,

IF x = ALL ( SELECT ''||row_num FROM rowgenerator R WHERE S1.pk = R.row_num ) THEN '1' ELSE '0' ENDIF b_all

FROM SQScroll S1

ORDER BY 2,3,4,5
Workaround Description
 No workaround for this customer since these are

generated call. But obviously taking the default

cursor type or specifying something other than

dynamic cursors for catalog functions should

prevent the crash ... until this bug is fixed.



CR:345968
CR Number:   345968
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 2219 16 Feb 2004 Fixed
9.0.1 1821 16 Feb 2004 Fixed
9.0.0 1273 16 Feb 2004 Fixed
Description
Attempting to cut or copy a procedure, trigger or view to the clipboard, would have caused Sybase Central to appear hung. In actual fact, it was simply taking a very long time to perform the cut or copy operation. This has been fixed.



Note that this problem would only have occurred if the actual object was cut or copied from the Procedures and Functions, Triggers or Views folder, but would not have occurred if the object's source was simply copied from the editor in the right-pane.





--------------------------------------华丽的分割线-------------------------------------------------------------------------

Sybase SQL Anywhere数据库恢复工具ReadASADB:

之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。
此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。

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,16.x,17.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使用介绍

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

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

Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:

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
7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page
8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back


-------------------------------------------------------------------------------------------

Sybase ASE数据库恢复工具READSYBDEVICE:

一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!
能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。

Sybase ASE数据库恢复工具READSYBDEVICE的主要功能:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复;
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3. 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4. delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
  5. 各种Sybase内部系统表损坏、索引错误的修复;
  6. master数据库损坏而无法正常运行情况下的恢复;
  7. Sybase数据库被标记为可疑,不可用等情况的恢复;
  8. Sybase数据库中数据文件内部出现坏块情况下的恢复;
  9. Sybase数据库无数据文件但有日志文件的情况下的恢复;
  10. Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11. Sybase数据文件被误删除情况下的碎片提取恢复;
  12. 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
  13. 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14. Sybase数据库还原数据库出现失败情况下的恢复;
  15. Sybase数据库只剩下损坏的备份文件情况下的恢复。

Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:

Sybase ASE 11.0.x,11.5.x,11.9.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.x


-------------------------------------------------------------------------------------------

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具SQLRescue的主要功能:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
  2. 断电导致数据库文件损坏情况下的恢复;
  3. 硬盘坏道造成数据库损坏情况下的恢复;
  4. 数据文件内部存在坏页情况下的恢复;
  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
  7. 无法读取并闩锁页sysindexes失败情况下的修复;
  8. 数据文件被误删除情况下的碎片提取恢复;
  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
  10. master数据库损坏而无法正常运行情况下的恢复;
  11. 数据文件无法附加情况下的数据恢复;
  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;
  13. 数据库sysobjects等系统表损坏情况下的恢复;
  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
  16. 数据库被误格式化等情况下的数据库恢复;
  17. 日志收缩造成数据库损坏情况下的恢复;
  18. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------