远程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:420743
CR Number:   420743
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)
10.0.0 2024 09 Feb 2006 Fixed
9.0.2 3262 09 Feb 2006 Fixed
Description
The QAnywhere Agent could have taken several minutes to shutdown after the Shutdown button is clicked, if the MobiLink server was unreachable. This has been fixed. Now, the QAnywhere Agent shuts down immediately when the Shutdown button is clicked.



CR:420745
CR Number:   420745
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)
10.0.0 2024 09 Feb 2006 Fixed
9.0.2 3262 09 Feb 2006 Fixed
Description
If a database that had been running on a network server with about 100 concurrent connections or more, required recovery, attempting to recover the database on a personal server would have failed assertion 104901 - "Allocating Stream object for temporary connection failed". This has been fixed.



A workaround is to use the network server to recover the database.



CR:420747
CR Number:   420747
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   4.3.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2025 10 Feb 2006 Fixed
9.0.2 3262 10 Feb 2006 Fixed
9.0.1 2134 10 Feb 2006 Fixed
Description
When the UltraLite statement property sheet was used to change an UltraLite statement's SQL statement, its code segment setting would have been cleared. This has been fixed so that the plug-in now re-applies the code segment setting whenever the SQL statement changes.



CR:420749
CR Number:   420749
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)
10.0.0 2024 09 Feb 2006 Fixed
9.0.2 3262 09 Feb 2006 Fixed
Description
On Linux and Solaris systems, the server command line option -ui ("automatically choose UI") was not being accepted, and would have resulted in the usage screen being displayed.

This has been fixed, and the switch now behaves as specified in the documentation.



CR:420752
CR Number:   420752
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)
10.0.0 2023 09 Feb 2006 Fixed
9.0.2 3261 09 Feb 2006 Fixed
Description
When run on Microsoft CE devices, the QAnywhere Agent could have crashed when invoked with command line parameters in a file, ie. qaagent @file. This has been fixed.



CR:420807
CR Number:   420807
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3264 15 Feb 2006 Fixed
9.0.1 2135 15 Feb 2006 Fixed
Description
If the optimizer chose a query execution plan with a "Hash Table Scan" operator, for a query that returned a string column, it was possible that a server crash could have occurred. This has now been fixed.



CR:420864
CR Number:   420864
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)
10.0.0 2025 10 Feb 2006 Fixed
9.0.2 3262 10 Feb 2006 Fixed
8.0.3 5360 10 Feb 2006 Fixed
Description
While a database upgrade is in progress, event execution is not allowed. If a scheduled

event did fire during a database upgrade it was correctly not executed, but it was also incorrectly not scheduled for its next execution. This meant that the event would not have been executed again until the database was restarted. This has been fixed, so that now the event is rescheduled for the next execution.



CR:420898
CR Number:   420898
Product Name:   UltraLite
Product Component:   UltraLite.NET
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3349 26 Jul 2006 Fixed
Description
In certain cases, with download acknowledgements turned off synchronization through ActiveSync 4.x could have failed, even though the same sync would have worked through ActiveSync 3.x. The reason for the failure is that with ActiveSync 4.x, the internal proxy will time out the connection 15 seconds after the server has finished sending the data and closed its side of the connection, while with ActiveSync 3.x, the proxy would wait indefinitely for the client to finish reading all the data before closing the connection. Microsoft has indicated that this change was intentional, in order to avoid resource leaks. A change has been made to improve download performance which will increase the likelyhood that the client will finish reading the download before the time out expires.



CR:420924
CR Number:   420924
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2030 17 Feb 2006 Fixed
9.0.2 3264 17 Feb 2006 Fixed
Description
After calling the C# API QAManager Close() method, future calls to the QAManager did not throw exceptions as expected. This has been fixed. They now throw an exception as documented.



CR:420933
CR Number:   420933
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2031 17 Feb 2006 Fixed
3264 17 Feb 2006 Fixed
Description
The GetQueueDepth() method of QAManager returned a count which included messages that were already acknowledged. This has been fixed so that GetQueueDepth() now includes only pending messages in the QueueDepthFilter.OUTGOING case.



CR:420934
CR Number:   420934
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2059 24 Feb 2006 Fixed
9.0.2 3274 07 Mar 2006 Fixed
Description
Opening a QATransactionalManager and putting a message onto a queue without committing, creates an index lock on ml_qa_repository_client. This was preventing any other application from sending or receiving messages until the transactional manager executed a commit or rollback. This has been fixed by changing the view used by the QAnywhere client to get messages, ml_qa_messages_client, to use the WITH (READPAST) functionality recently added to the server, (see Engineering case 422513). The order of insert statements in QAManagerBase.putMessage was also changed to prevent another blocking issue.



CR:421009
CR Number:   421009
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 3263 13 Feb 2006 Fixed
Description
If a certificate was directly specified in a web procedure (i.e. using "certificate 'certificate=...'"), then it was possible that the connection would have failed with the error "Error parsing certificate file". This has been fixed. A workaround is to remove all whitespace in the certificate data.



CR:421137
CR Number:   421137
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3267 14 Feb 2006 Fixed
Description
Database validation will now detect if the number of pages allocated to a particular table matches what is stored in the system table SYSTABLE(table_page_count). A message will be displayed if these values do not match. Incorrect table page counts could potentially lead to assertion failures in the future. Namely, assertion 200602 could be generated when dropping or truncating such a table.



CR:421142
CR Number:   421142
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Novell NetWare
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3272 03 Mar 2006 Fixed
Description
On NetWare 6.5 with SP2 or later, the server may have abended if the database server displayed a total of approximately 100kB worth of messages to the console. This was due to a bug in the NetWare operating system relating to the scrollable screen feature. To resolve this, the use of the scrollable screen feature has been removed.
Workaround Description
 currently unknown



CR:421161
CR Number:   421161
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)
10.0.0 2029 14 Feb 2006 Fixed
9.0.2 3264 14 Feb 2006 Fixed
Description
If a user accidentally used a dot reference incorrectly, the syntax error resulting from the incorrect use ws not reported properly by the server. For example, if the following query was issued:



SELECT str(table_id).str(creator).length(table_name) from systable



the server would have reported "Syntax error near '' ???". The server will now correctly report "Syntax error near 'length'".



CR:421275
CR Number:   421275
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 3446 08 Feb 2007 Fixed
Description
If a temporary table was declared as NOT TRANSACTIONAL, deleting rows in the table using a DELETE statement did not release the space for re-use. This has been fixed.



CR:421320
CR Number:   421320
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 3264 16 Feb 2006 Fixed
Description
If a partial HTTP request was received by the server, and the socket was then closed, the server would have leaked three handles on Windows systems, or one handle on Unix or NetWare systems. This has been fixed.



CR:421349
CR Number:   421349
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Open
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3262 16 Feb 2006 Fixed
3262
Description
The One-button synchronization feature of UltraLite for M-Business Anywhere did not work correctly if the synchronization stream was HTTPS. The Certicom libraries required were not being linked into ulconnect.exe. This has now been corrected.



CR:421397
CR Number:   421397
Product Name:   UltraLite
Product Component:   UltraLite for AppForge MobileVB
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3265 16 Feb 2006 Fixed
Description
The ApplyFile() method's enumeration constants for state changes had incorrect values, the Error and Done states were reversed. This has been coreected. The correct values for ulUpgradeStateError and ulUpgradeStateDone are 3 an 4 respectively. A successful ApplyFile() call will generate the states 0, 1 or 4. States 2 and 3 are only produced when an error occurs.



CR:421399
CR Number:   421399
Product Name:   SQL Remote for SQL Anywhere
Product Component:   File Messaging for Adaptive Server Anywhere
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3272 03 Mar 2006 Fixed
8.0.3 5369 03 Mar 2006 Fixed
10.0.0 2047 03 Mar 2006 Fixed
Description
It was possible for dbremote to fail to send or receive messages, but no line was written to the SQL Remote log that started with "E", indicating that an error had occurred. This has been corrected so that an error line is now always written to the log after the send or receive of a message fails.



CR:421675
CR Number:   421675
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)
10.0.0 2343 21 Feb 2006 Fixed
9.0.2 3314 21 Feb 2006 Fixed
Description
Interactive SQL would not have consistently reported errors raised from within a stored procedure if connected via jConnect. This has been fixed.



CR:421744
CR Number:   421744
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.1 3616 11 Mar 2010 Fixed
9.0.2 3594 11 Mar 2010 Fixed
Description
For an n-way join query block with a DISTINCT clause, the optimizer can now chose a plan using semijoins instead of inner joins, based on the expressions used in the select list. The inner joins can be executed as semijoins for tables, derived tables, or views whose expressions are not used in the select list. The decision to use inner joins or semijoins is done cost-based during optimization by the SA optimizer.



Examples:

select distinct p.* from product p, (select prod_id, id, count(*) C from sales_order_items group by prod_id, id )

as DT, sales_order as so

where p.id = DT.prod_id and so.id = DT.id



CR:421924
CR Number:   421924
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2037 08 Mar 2006 Fixed
9.0.2 3269 08 Mar 2006 Fixed
Description
With the QAnywhere C# API, calling the Start() method on a QAManager that had been previously Started and Stopped, could have caused the application to hang, or fail to terminate cleanly. This has been fixed.



CR:421944
CR Number:   421944
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2037 22 Feb 2006 Fixed
Description
When using the Create Database wizard with a server older than the version of the Sybase Central SQL Anywhere plug-in, for example, using a 9.x SQL Anywhere plug-in to create a database on a 8.x server, the list of collations provided by the wizard would include those not be supported by the server. Choosing an unsupported collation would then have caused an error to be displayed in the Create Database messages dialog. This has been fixed so that now the wizard lists only those collations supported by the selected server.



CR:421957
CR Number:   421957
Product Name:   UltraLite
Product Component:   UltraLite Engine
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2039 28 Feb 2006 Fixed
9.0.2 3268 28 Feb 2006 Fixed
9.0.1 2140 28 Feb 2006 Fixed
Description
When UltraLite Dynamic SQL executed a query with both an ORDER BY clause and a GROUP BY clause, an incorrect ordering could have occurred when there existed an index to satisfy the ORDER BY, but no index existed for the GROUP-BY. This has been corrected.
Workaround Description
 None



CR:421987
CR Number:   421987
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)
10.0.0 2038 23 Feb 2006 Fixed
Description
There was an extremely slight possibility the server could have crashed if a database, which had events running, was shut down. This has been fixed.



CR:421991
CR Number:   421991
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)
10.0.0 2038 24 Feb 2006 Fixed
9.0.2 3268 24 Feb 2006 Fixed
9.0.1 2139 24 Feb 2006 Fixed
Description
The server could have crashed while handling an HTTP request. The improper handling of an HTTP header has been corrected.



CR:422013
CR Number:   422013
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3268 24 Feb 2006 Fixed
9.0.1 2139 24 Feb 2006 Fixed
Description
Comparisons involving NULL constants (such as column-name > NULL) may have produced incorrect results or diagnostics. This has been corrected.



CR:422131
CR Number:   422131
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3268 24 Feb 2006 Fixed
9.0.1 2139 24 Feb 2006 Fixed
Description
UltraLite Dynamic SQL would have handled a column reference incorrectly if an alias name was the same as a column name and that name was used in an IF or CASE statement within the SELECT expression to which the alias was assigned. This has now been corrected.



CR:422133
CR Number:   422133
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 3268 24 Feb 2006 Fixed
Description
The changes for Engineering Case 421320 introduced a handle leak. As a result, if many HTTP connections were received and serviced in a short time, the server could have crashed. This has now been fixed.



CR:422197
CR Number:   422197
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Linux
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2338 07 Mar 2006 Fixed
9.0.2 3270 23 May 2006 Fixed
Description
If a derived table was joined with the rest of the query using a Join Nested Loops operator, the performance of the query may have suffered if the derived table had to be computed many times due to many rows being generated by the left hand side of the Join Nested Loops. The optimizer was choosing such a plan if the estimated number of rows of the left hand side was very small. If this estimation was wrong (e.g., the optimizer estimated one row for the left hand side, but in reality the left hand side had 1,000 rows), the derived table was computed many, many times during execution. This is now fixed by having the optimizer only consider using the Join Hash or Join Sort Merge operators for the derived table, if it is correct to do so.



CR:422213
CR Number:   422213
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)
10.0.0 2039 24 Feb 2006 Fixed
9.0.2 3268 24 Feb 2006 Fixed
Description
At isolation level 1, the last row visited by a keyset cursor scan before finishing (ie a fetch returning 'row not found') would have been left locked until the cursor was closed or moved. This has now been corrected.



CR:422252
CR Number:   422252
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)
10.0.0 2039 28 Feb 2006 Fixed
Description
Interactive SQL could have failed to execute a reload script, if it contained a COMMENT TO PRESERVE FORMAT statement which included a semicolon in its braces. For example:



COMMENT TO PRESERVE FORMAT ON VIEW test IS

{

CREATE VIEW test AS SELECT * FROM myTable;

}



In this example, dbisql would have sent only the portion of the statement "COMMENT ... myTable;" omitting the closing brace. This problem has been fixed.



CR:422487
CR Number:   422487
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1804 03 Mar 2006 Fixed
9.0.2 1804 03 Mar 2006 Fixed
8.0.3 5371 07 Mar 2006 Fixed
Description
If a cursor was opened on a stored procedure call, and the procedure executed a RAISERROR statement, the error was not reported on the OPEN. The value of @@error would have been set to the integer value given in the RAISERROR statement and would have remained set to that value even after other statements were executed, until another RAISERROR was executed or the connection was dropped. This has been fixed so that an error will now be reported to the application on the OPEN.



CR:422513
CR Number:   422513
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)
10.0.0 2039 28 Feb 2006 Fixed
9.0.2 3270 28 Feb 2006 Fixed
Description
The server now supports the READPAST table hint. An example:



Select *

From customer with( readpast )

Where state = 'NY'



READPAST is meaningful only at isolation level 1; it is ignored at all other isolation levels. As with other hints, the READPAST hint is respected only when the correlation name in the FROM clause refers to a base or global shared temporary table. In other situations (views, proxy tables, table functions) the READPAST hint is ignored. Queries within views may utilize READPAST as long as the hint is specified for a correlation name that is a base table.



The READPAST hint directs the server to ignore locked rows (that is, rows write-locked by other connections) rather than blocking. One way to think about READPAST is to pretend that addtiional predicate has been added to the query's WHERE clause; with the example above, akin to



Select *

From customer with( readpast )

Where state = 'NY' and (current row is not write locked by another transaction).



Consequently the READPAST hint is inconsistent with the behaviour of ANSI SQL isolation level 1, as uncommitted changes (locked rows) have an impact on the result set of a statement utilizing READPAST. As such, the use of READPAST can lead to anomalies due to the interaction of locking and predicate evaluation within the server. Subtle differences in this interaction from release to release of SQL Anywhere may yield different behaviours. The precise affect of READPAST may also depend on the optimization strategy determined by the query optimizer, particularly if the hint is specified only on a subset of the tables in the query. For example, consider the outer join query



SELECT * FROM R LEFT OUTER JOIN S (WITH READPAST) ON 1=0



In 9.0.2, a cursor stability lock is placed on the rows of R and S once the join is performed (assume nested loop join, JNLO, in this example). Further, assume that we find a single candidate S row to match the current R row, but that it is dirty (the row is write-locked by another transaction). The lock node will reject it, causing the server to fetch another row from the JNLO. Since the JNLO thinks it has found a match, it will not generate a null-supplied copy of the R row, and the server will fail to preserve the R row in the result. Hence, in this case, the query's result will fail to include all the rows of R, which it would if READPAST was not used.



READPAST can be used with all cursor types. However, KEYSET cursors must be used with caution. When initially populating the keyset through forward FETCH statements, READPAST will ignore locked rows as described above. However, a subsequent refetch of a previously FETCH 'd row may block if that underlying row was write-locked by another connection after the row was originally added to the keyset. The blocking can be avoided through the use of the BLOCKING option, but after receiving the ROW_LOCKED error (SQLCODE -210) the cursor will be in an invalid state.



READPAST can be useful when implementing a queue with a table, and there are multiple producers and consumers of the queue. Using READPAST can significantly improve concurrency in this scenario.



CR:422515
CR Number:   422515
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)
10.0.0 2391 01 Mar 2006 Fixed
9.0.2 3333 01 Mar 2006 Fixed
Description
If there were active client or http requests when the server was shutting down, there was a possibility, although small, that the server could have crashed. If a crash occurred, it would have been after the databases were stopped, so there was no chance of data loss. This has now been fixed.



CR:422774
CR Number:   422774
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)
10.0.0 2055 07 Mar 2006 Fixed
9.0.2 3270 13 Mar 2006 Fixed
Description
If the join predicates of a join involving a derived table, or a null-supplying side of an outer join, contained equality predicates on the same column, the estimated number of rows might have been incorrect. This has been fixed.



For example:



The derived table DT has two equality predicates on the column DT.X. The estimated number of rows of the join of DT with (T join S) is underestimated due to the fact that the selectivity estimations of the predicates 'T.X = DT.X' and 'S.X = DT.X' are multiplied.





select *

from T, S, (select count(*), R.x, R.y from R group by R.X, R.Y ) as DT( C, X, Y)

where T.X = DT.X and S.X = DT.X and T.X = R.X



CR:422775
CR Number:   422775
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)
10.0.0 2055 07 Mar 2006 Fixed
9.0.2 3270 13 Mar 2006 Fixed
Description
The optimizer would have underestimated the cost of using a clustered index if the table pages were partially in the cache (for example, 40% of the table pages were in the cache). This has been fixed.



CR:422828
CR Number:   422828
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3272 03 Mar 2006 Fixed
8.0.3 5369 03 Mar 2006 Fixed
Description
If an sp_hook_dbmlsync_process_exit_code hook was defined and an invalid dbmlsync extended option was specified, then the synchronization client would have crashed. This has been fixed.



CR:422845
CR Number:   422845
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)
10.0.0 2046 07 Mar 2006 Fixed
9.0.2 3272 07 Mar 2006 Fixed
Description
Interactive SQL could have reported an internal error (NullPointerException) when the Import Wizard was opened to import a file and a file was chosen, but the file was deleted (or otherwise became unavailable) after entering the wizard. This has been fixed.



CR:422996
CR Number:   422996
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)
10.0.0 2048 03 Mar 2006 Fixed
9.0.2 3272 03 Mar 2006 Fixed
Description
Embedded SQL applications running on Unix or NetWare systems would not have had the DB_CALLBACK_CONN_DROPPED callback function called when the server was about to drop a connection. This has now been fixed.



CR:423129
CR Number:   423129
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)
10.0.0 2051 07 Mar 2006 Fixed
9.0.2 3272 07 Mar 2006 Fixed
9.0.1 2144 07 Mar 2006 Fixed
8.0.3 5373 10 Mar 2006 Fixed
Description
It was possible, although very rare, for all connections to the server appear to be hung (deadlocked) in the presence of DDL statements, checkpoints, backups, or other operations, if a connection that was executing Java was cancelled. This has now been fixed.



CR:423139
CR Number:   423139
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)
10.0.0 2052 07 Mar 2006 Fixed
9.0.2 3274 07 Mar 2006 Fixed
9.0.1 2144 07 Mar 2006 Fixed
Description
In rare circumstances, the server may have crashed if a DROP PROCEDURE statement failed because the procedure was currently in use. For this to happen there must have been a disconnect in progress at the same time. This problem was more likely to occur if the disconnect had to stop additional Java threads, as would happen when using JDK 1.3. This has been fixed.



CR:423324
CR Number:   423324
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)
10.0.0 2052 07 Mar 2006 Fixed
9.0.2 3274 07 Mar 2006 Fixed
Description
If a dynamic trap was set on a valid entry in the ASA MIB that was under the agent or metadata subtrees, the SNMP agent would have crashed. This has been fixed. Dynamic traps on these OIDs are not supported and they will be ignored by the agent.



CR:423508
CR Number:   423508
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2054 10 Mar 2006 Fixed
9.0.2 3277 10 Mar 2006 Fixed
8.0.3 5373 10 Mar 2006 Fixed
Description
The provider calls the ADO CreateParameter method using the adBSTR datatype. Each time the Execute method was called, memory would have been leaked. The following is a C++ example of the code.



std::wstring strParam1( 84, L'\x9F5F' );



// Create the parameters.

_ParameterPtr param1;

_variant_t val1( strParam1.c_str() );

param1 = cmd->CreateParameter( L"", adBSTR, adParamInput, (long)strParam1.length(), val1 );

cmd->Parameters->Append( param1 );



// Run the command.

_variant_t vtEmpty1( DISP_E_PARAMNOTFOUND, VT_ERROR );

_variant_t vtEmpty2( DISP_E_PARAMNOTFOUND, VT_ERROR );

cmd->Execute( &vtEmpty1, &vtEmpty2, adCmdStoredProc | adExecuteNoRecords );



When a variant BSTR object (val1) was converted to a BSTR object (the bound parameter), a new object was created and the memory for that object was lost. This problem has now been corrected.



CR:423578
CR Number:   423578
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2262 17 Mar 2006 Fixed
9.0.2 3280 17 Mar 2006 Fixed
8.0.3 5376 17 Mar 2006 Fixed
Description
Attempting to OPEN a cursor on a procedure call that returned the SQL warning "Procedure has completed", would not have opened a cursor. The server still created a cursor handle though, which was not freed until database shutdown. This has been fixed so that the server will now return a NULL handle if the cursor has not been opened.



CR:423681
CR Number:   423681
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)
10.0.0 2260 10 Mar 2006 Fixed
9.0.2 3280 10 Mar 2006 Fixed
9.0.1 2147 10 Mar 2006 Fixed
8.0.3 5376 17 Mar 2006 Fixed
Description
The server may have crashed during the second or subsequent executions of a procedure,

if after its first execution, one of the referenced objects (table, view, proxy table, etc) had been dropped and recreated with a changed type. For example, a referenced table was dropped and a view with the same name was recreated. This has been fixed



CR:423730
CR Number:   423730
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2262 20 Mar 2006 Fixed
9.0.2 3280 20 Mar 2006 Fixed
Description
A SOAP web service client procedure did not detect and encode string parameters that contained XML special characters, such as '<', '>' or '&'. A string parameter containing XML that was not well formed would have invalidated the requesting SOAP envelope, causing an error at the web service endpoint. This has been fixed so that Soap client parameters are now always encoded (e.g. '<' becomes <).



CR:423792
CR Number:   423792
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
1301 07 Dec 2007 Fixed
Description
If a relative path name is used in an INPUT statement, and the statement itself appears in a .SQL file, the directory containing the calling file is now searched when resolving the name of the called file. For example, suppose there are two files, "test.sql" and "test.dat", both in "c:\test", and that "test.sql" contains the line:

INPUT INTO myTable FROM 'test.dat';

If the current directory is "C:\home", and the following is run:

DBISQL c:\test\test.sql

the INPUT statement is now able to resolve the relative file name "test.dat" to "c:\test\test.dat" by using the name of the folder which contains "test.sql", the file that contains the INPUT statement. Previously, "test.dat" would not have been found.



The INPUT statement could fail to resolve relative file names if the fast launcher option is turned on. The workaround is to turn off the fast launcher, or to use fully qualified file names in the .SQL files.



CR:423803
CR Number:   423803
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3277 10 Mar 2006 Fixed
Description
The Service Create utility can be used to create and start the Listen utility as a service, much like other ASA servers or agents. However, the status of the service would have remained as "STARTING", even when the listener was up and running properly. Shutting down the listener service was also problematic. These problems are now fixed.



CR:423828
CR Number:   423828
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)
10.0.0 2055 10 Mar 2006 Fixed
9.0.2 3277 10 Mar 2006 Fixed
Description
SOAP v1.1 requires that the URI value of the HTTP SOAPAction header be enclosed within double quotes. In the event that the quotes were missing the server would have closed the HTTP connection without issuing an error response. This has now been fixed so that the server will now respond with a "400 - Bad Request".



CR:423858
CR Number:   423858
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)
10.0.0 2055 10 Mar 2006 Fixed
9.0.2 3277 10 Mar 2006 Fixed
8.0.3 5373 10 Mar 2006 Fixed
Description
Applicatons connected via the CmdSeq protocol, could have crashed if a connection request resulted in a warning. This has been fixed.



CR:423859
CR Number:   423859
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2055 10 Mar 2006 Fixed
9.0.2 3277 10 Mar 2006 Fixed
Description
The Service Creation utility can now create services for the Listener utility, using the '-t dblsn' command line option.



CR:423901
CR Number:   423901
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)
10.0.0 2055 13 Mar 2006 Fixed
9.0.2 3277 13 Mar 2006 Fixed
8.0.3 5373 13 Mar 2006 Fixed
Description
The OLEDB GetRowsByBookmark method, as implemented by the iAnywhere provider, did not work correctly. It was possible to return invalid row handle values. As well, incorrect row status array values were being returned. This has now been fixed.



CR:423911
CR Number:   423911
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)
10.0.0 2055 13 Mar 2006 Fixed
9.0.2 3277 13 Mar 2006 Fixed
8.0.3 5373 13 Mar 2006 Fixed
Description
Insertion of rows into a UTF8 database, using ADO and the OLEDB provider, would sometimes have failed. The following Visual Basic script is an example that reproduces the problem.



recordset.Open "Employees", connection, , , adCmdTable

recordset.AddNew

recordset.Fields.Item("EmployeeID") = 1000

recordset.Fields.Item("GivenName") = "Munroe"

recordset.Fields.Item("Surname") = "Marvin"

recordset.Fields.Item("DepartmentID") = 201

recordset.Fields.Item("Street") = "No fixed Street"

recordset.Fields.Item("City") = "No City"

recordset.Fields.Item("Salary") = 12000.00

recordset.Fields.Item("StartDate") = "2006-01-03"

recordset.Update



This has now been fixed.



CR:424085
CR Number:   424085
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)
12.0.1 3757 16 Jul 2012 Failed
Description
When a computed column is added to a table, the expression used to generate the column values may give an error, the actual error will depend on current option settings and the current connected user. The following examples show ways that a computed column may give an error in some circumstances only:

- Use an unqualified user-defined function (UDF). If the current user does not include the UDF in the lookup path, an error is returned.

- Miss-spell a UDF name. There is no checking done when the column is added. Any use of the table fails.

- Create the column referencing a UDF then drop it. Even if 2. is fixed, there is no dependency tracking to prevent 3.

- Use a cast that gives an error at build time (e.g, TIME -> INT). The table causes an error unless the Conversion_error option is Off.

- As with 1. 2. or 3. , use a sub-select referencing a table, view or procedure that is unqualified or non-existent.

- Use features in the compute expression that cause SQL flagger errors to be returned. If the connection options give a flagger error, the table can not be used.



http://dcx.sybase.com/index.html#1201/en/dbusage/defining-computed-javause.html*d5e620



When the expression for a computed column gives an error, it does so for any query that references the table (even if the table is not modified by the statement.



As a best practice, computed columns should be defined with an expression that is computed in the same way for all connections and all users that have permission to read from the table.



CR:424090
CR Number:   424090
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2058 14 Mar 2006 Fixed
9.0.2 3278 14 Mar 2006 Fixed
Description
When DatabaseMetaData.getColumns() was called on a table that contained a uniqueidentifier column, the datatype returned for the uniqueidentifier column was -11 (i.e. SQL_GUID). If the application then useed -11 as the datatype value in a setNull or setObject call, the iAnywhere JDBC Driver would have returned an invalid datatype error. This problem has now been resolved and -11 is now accepted for setNull and setObject.



CR:424091
CR Number:   424091
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2058 14 Mar 2006 Fixed
9.0.2 3278 14 Mar 2006 Fixed
Description
It was possible for the iAnywhere JDBC Driver to have crashed, or to hang, when creating or preparing a statement. While rare, this was more likely when under a heavy load. This problem has been fixed.



CR:424217
CR Number:   424217
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)
10.0.0 2059 14 Mar 2006 Fixed
9.0.2 3279 14 Mar 2006 Fixed
8.0.3 5375 14 Mar 2006 Fixed
Description
The iAnywhere OLEDB provider was not correctly executing multi-row fetches as a result of calling the GetRowsAt() method. For example, when using GetRowsAt() to fetch rows 1 through 50 of a result set and then fetching rows 26 through 75, the provider would have incorrectly returned rows 51 through 75 on the second fetch. This problem has been fixed.



CR:424219
CR Number:   424219
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3260 14 Mar 2006 Fixed
9.0.1 2144 14 Mar 2006 Fixed
9.0.0 1411 14 Mar 2006 Fixed
Description
A security problem on Unix sytems has been fixed



CR:424344
CR Number:   424344
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)
10.0.0 2260 21 Mar 2006 Fixed
9.0.2 3279 21 Mar 2006 Fixed
9.0.1 2147 21 Mar 2006 Fixed
Description
It was possible, although rare, for the server to crash if multiple requests called the same stored procedure, and the procedure contained statements of the form "select ... into #temp ...". This has been fixed.



CR:424465
CR Number:   424465
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3279 17 Mar 2006 Fixed
Description
Indexes in Java UltraLite databases could have become corrupted in some cases, when a new entry was inserted in to the index page. This has been fixed.



CR:424920
CR Number:   424920
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)
10.0.0 2059 20 Mar 2006 Fixed
9.0.2 3281 20 Mar 2006 Fixed
Description
Attempting to get the graphical plan for a batch, either using the GRAPHICAL_PLAN() function or the Plan tab in Interactive SQL, or calling the REWRITE() for a batch, could in some cases have caused the server to crash. This has been fixed.



CR:424923
CR Number:   424923
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)
10.0.0 2266 21 Mar 2006 Fixed
9.0.2 3281 21 Mar 2006 Fixed
Description
Using an incorrect dot reference in a query that also references proxy tables, would have failed with SQLCODE -660. The text of the error would be from the remote server. This has now been fixed.



CR:424931
CR Number:   424931
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2275 31 Mar 2006 Fixed
9.0.2 3286 31 Mar 2006 Fixed
8.0.3 5381 31 Mar 2006 Fixed
Description
When the OLEDB provider was used with ADO, wide character strings (UTF16/OLECHAR) were written correctly to a database that used the UTF8 collation. However, when fetching the inserted values back from the database, the UTF8 strings were not correctly converted back into UTF16. This has been fixed. The OLEDB provider now does proper conversion from UTF8 strings to UTF16 strings.



CR:425121
CR Number:   425121
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2074 30 Mar 2006 Fixed
9.0.2 3291 30 Mar 2006 Fixed
Description
The call to MessageBox.Show() has been removed when there is an exception thrown inside the QAnywhere Message Listener. Calling MessageBox.Show()was not desired behaviour when in a transactional context environment. For the .NET Compact Framework and the .NET Framework, exceptions that occur in a message listener are now logged to the QAManager log file, rather than shown in a MessageBox. The QAManager log file is set with the "LOG_FILE" QAManager configuration property. It is recommended for all QAnywhere .NET applications to catch ALL exceptions in the message listener delegate, and deal with them appropriately.



CR:425125
CR Number:   425125
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3286 30 Mar 2006 Fixed
Description
If an exception was thrown inside the message listener, the exception text was displayed in the MessageBox.Show() dialog, (see Engineering case 425121 for a change in this behaviour), and the transaction was rolled back. However, the message which caused the exception was then put back on the queue and was then received by the message handler. If the message handler itself then threw an exception, this could have resulted in an infinite loop. There was no method of setting a maximum retry to interrupt this process. So a new message store property "ias_MaxDeliveryAttempts" has been added. When this property is set to a positive integer n by a QAnywhere application, eg. mgr.SetIntStoreProperty( "ias_MaxDeliveryAttempts", 5 ), the QAnywhere client will attempt to receive an unacknowledged message up to n times before setting the status of the message to unreceivable. If the property "ias_MaxDeliveryAttempts" is not set, or is negative, the QAnywhere client will attempt to receive messages an unlimited number of times, which was the behaviour before this change. Also, there is now an integer message property "ias_DeliveryCount" that is set by the QAnywhere client in a message each time it is delivered to the application by a get method. This property is the number of times that the message has been delivered to the application, without being acknowledged.



CR:425141
CR Number:   425141
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 3282 22 Mar 2006 Fixed
Description
The AES_FIPS encryption type is not supported on 64-bit Windows, but attempting to create a database of this type would have resulted in the error -976 "Could not load the encryption DLL dbrsa9f.dll'". This has been fixed - the correct error code -131 "Syntax error near 'encryption algorithm'" is now returned.



CR:425280
CR Number:   425280
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3274 22 Mar 2006 Fixed
Description
Starting with build 9.0.2.3274, pre-generated .CAB files for Windows Mobile 5 will now be shipped which are security-signed by Verisign. These can be installed only on Windows Mobile 5 devices, and will avoid the "unknown publisher" warning displayed when installing un-signed .CAB files.



There is an additional feature: "Signed .CAB files for Windows Mobile 5" in the desktop install.



In the CE deployment installer, there are now up to 5 platforms to choose from:

Build or Deploy a .CAB file for Windows Mobile 5

Build a .CAB file for ARM

Build a .CAB file for ARMV4T

Build a .CAB file for MIPS

Build a .CAB file for Pocket PC 2002 emulator (X86)



Selecting the Windows Mobile 5 option, will also allow the choice of deploying one of the two security-signed .CAB files -- one has support for Compact Framework 1.1, the other for Compact Framework 2.0. Alternatively, a custom .CAB file can still be built, but this will not be security-signed.



CR:425445
CR Number:   425445
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)
07 Apr 2006 Fixed
Description
When executing a SQL query "SELECT commit_txn_id FROM LNK_IQ126..SYS.SYSIQINFO" to access an IQ 12.6 ESD#4 server on Solaris referencing a MS Linked Server based on ASA OLE DB Provider 'ASAProv.90', MS Query (MSQRY32.exe) receives the following error from MSSQL server:



> OLE DB error trace [OLE/DB Provider 'ASAProv.90'

> IUnknown::QueryInterface returned 0x80004005:

> The provider did not give any information about the error.



NB DBISQL, MS SQL Query Analyser and ODBCTest process the same query successfully



CR:425473
CR Number:   425473
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 3283 23 Mar 2006 Fixed
Description
One of the server's recursive union execution strategies had inadvertently become disabled. This could have caused poor performance for some recursive queries and has been fixed.



CR:425513
CR Number:   425513
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)
10.0.0 2268 24 Mar 2006 Fixed
9.0.2 3283 24 Mar 2006 Fixed
Description
Calling an HTTP client procedure with an unsupported data type, may have caused the server to crash. This has been fixed.



CR:425515
CR Number:   425515
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3282 24 Mar 2006 Fixed
Description
An Ultralite application may have crashed when operations were done on tables that were near the 64K row limit. This has been fixed.



CR:425847
CR Number:   425847
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)
10.0.0 2153 27 Mar 2006 Fixed
9.0.2 3284 27 Mar 2006 Fixed
Description
Queries containing expressions involving the GROUPING() function may have returned incorrect results for those expressions. This has been fixed.



CR:425925
CR Number:   425925
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)
10.0.0 2279 03 Apr 2006 Fixed
9.0.2 3285 03 Apr 2006 Fixed
Description
It was possible for the server to crash if a user-defined datatype was dropped while a CREATE TABLE statement, or an ALTER TABLE statement that added a column of this type, was executing. This has been fixed.



CR:425943
CR Number:   425943
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2074 28 Mar 2006 Fixed
9.0.2 3285 28 Mar 2006 Fixed
Description
The SQLError object was missing two error constants: SQLE_INVALID_OPTION_SETTING and SQLE_METHOD_CANNOT_BE_CALLED. This has been corrected.



CR:425955
CR Number:   425955
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)
10.0.0 2074 28 Mar 2006 Fixed
9.0.2 3285 28 Mar 2006 Fixed
Description
The server would have reported an error when attempting to register with LDAP, if the LDAP server was an Active Directory Server and the server was listening on more than one IP address. This has been fixed.



Note, clients with this fix will not be able to connect through LDAP to servers without the fix, and vice versa.



CR:426056
CR Number:   426056
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)
10.0.0 2274 29 Mar 2006 Fixed
9.0.2 3285 29 Mar 2006 Fixed
9.0.1 2153 29 Mar 2006 Fixed
8.0.3 5381 29 Mar 2006 Fixed
Description
Attempting to execute a "SELECT INTO #temporary-table-name" statement, may have caused a server crash in cases where it should have returned the error "Statement size or complexity exceeds server limits". This has been fixed.



CR:426153
CR Number:   426153
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2075 30 Mar 2006 Fixed
9.0.2 3285 30 Mar 2006 Fixed
8.0.3 5381 30 Mar 2006 Fixed
Description
If the MobiLink client was shutdown by clicking the shutdown button on the window, using the stop method on the integrations component or sending a WM_CLOSE message to the dbmlsync window, then it could have hung with 100% CPU utilization. The behaviour would have occurred intermittently, and would have been more likely on machines with multiple processors. This has now been fixed



CR:426165
CR Number:   426165
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)
10.0.0 2275 31 Mar 2006 Fixed
9.0.2 3285 31 Mar 2006 Fixed
Description
If the SOAPAction URL was malformed an error of 400 'Bad Request' or 404 'Not Found' may have been returned. Now, a Malformed SOAPAction URL will always return a 400 'Bad Request', whereas a correctly formed URL trying to access a SOAP endpoint that does not exist will return a 404 'Not Found'. This fix also simplifies the requirements for configuring an SA SOAP client that accesses an SA SOAP service endpoint (client and server cannot be running on the same database server).



The SOAPAction HTTP header is required by SA when a SOAP request is POSTed to a DISH service endpoint. The SOAPAction URL is the 'address' of the SOAP service endpoint for the request. Prior to this change an SA HTTP client was required to provide a namespace clause that defined an appropriate URL containing the database name for the endpoint service. Now it is now possible to access an SA SOAP endpoint by assuming the use of its default database. This only works in the simple case where the SA SOAP web service is not defined within a 'group' of a DISH service. When a soap endpoint is defined within a 'group', the SA SOAP client must specify the namespace to provide the appropriate database and group mapping.



The simple case is described with two services as follows:



create SERVICE "wsdl"

TYPE 'DISH'

AUTHORIZATION OFF

format 'concrete'

USER DBA;



create SERVICE "soapecho"

TYPE 'SOAP'

AUTHORIZATION OFF

USER dba

AS call soapecho_proc( :s1 );



The following are valid SA SOAP client procedure definitions that access the above soapecho service:



1) Access soapecho service directly (note, to stay consistent with the other cases the format clause describes the desired output format):

create procedure soapecho( s1 long varchar )

url 'http://localhost/soapecho'

format 'concrete'

type 'soap:doc';



2) Access indirectly through the wsdl DISH service and specifying the namespace (note, the server is expected to be running the sample.db):

create procedure soapecho( s1 long varchar )

url 'http://localhost/wsdl'

namespace 'http://localhost/sample'

type 'soap:doc';



3) With this change, namespace clause is no longer required:

create procedure soapecho( s1 long varchar )

url 'http://localhost/wsdl'

type 'soap:doc';



The above cases yield the following request characteristics:

CASE HTTP POST SOAPAction Namespace

1) POST /soapecho http://localhost/soapecho http://localhost

2) POST /wsdl http://localhost/sample/soapecho http://localhost/sample

3) POST/wsdl http://localhost/soapecho http://localhost





An example of a more complex case where the namespace clause for an SA SOAP client is required (closely resembles case 2) above):



create SERVICE "wsdl"

TYPE 'DISH'

AUTHORIZATION OFF

format 'concrete'

group 'abc'

USER DBA;



create SERVICE "abc/soapecho"

TYPE 'SOAP'

AUTHORIZATION OFF

USER dba

AS call soapecho_proc( :s1 );



The namespace is required because it identifies both the database and the group for the SA SOAP service endpoint:



create procedure soapecho( s1 long varchar )

url 'http://localhost/wsdl'

namespace 'http://localhost/sample/abc'

type 'soap:doc';



The resulting request is similar to case 2) with the exception that /abc is appended to the SOAPAction URL and the soap envelope namespace URI.



CR:426167
CR Number:   426167
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 3285 03 Apr 2006 Fixed
Description
The http_header() function returned an ASCII 0 control character when the given header had no value. This has been fixed, the return value in this case is now an empty string.



CR:426186
CR Number:   426186
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 3323 08 Jun 2006 Fixed
Description
If an embedded SQL application executed a PUT on a non-updateable cursor with the option ANSI_UPDATE_CONSTRAINTS set to OFF, the server could have crashed. This has been fixed.



CR:426279
CR Number:   426279
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)
10.0.0 2279 03 Apr 2006 Fixed
9.0.2 3286 03 Apr 2006 Fixed
9.0.1 2153 03 Apr 2006 Fixed
Description
The server may have crashed if an INSERT statement had subselects in the VALUES clause that referenced remote tables, and the insert was executed in no passthrough mode.



For example:

insert into T1 values ((select col1 from RemoteT1), (select col2 from RemoteT2))



This has been fixed so that now the server returns the error "Remote server does not have the ability to support this statement", if SET items are subselects in no passthrough mode.



To workaround this problem, the statement can be rewritten as an INSERT ... SELECT.



For example:

insert into T1 select (select col1 from RemoteT1), (select col2 from RemoteT2))



CR:426330
CR Number:   426330
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Solaris
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2294 19 Apr 2006 Fixed
9.0.2 3294 19 Apr 2006 Fixed
Description
Attempting to run two simultaneous archive backups, for different databases, on the same server, could have caused the server to crash. The backup library was being unloaded by the first operation to complete. This has been fixed.



This problem does not affect image backups created with BACKUP DATABASE DIRECTORY or the DBBACKUP utility.



CR:426361
CR Number:   426361
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)
10.0.0 2081 31 Mar 2006 Fixed
9.0.2 3286 31 Mar 2006 Fixed
8.0.3 5381 31 Mar 2006 Fixed
Description
The OLEDB provider was not converting columns of type BIT to DBTYPE_BOOL correctly. A true value 1 should map to a 16-bit integer value equal to -1 rather than to the value 1, as it was. This problem has now been fixed.



CR:426364
CR Number:   426364
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)
10.0.0 2081 04 Apr 2006 Fixed
9.0.2 3286 04 Apr 2006 Fixed
8.0.3 5381 04 Apr 2006 Fixed
Description
When scrolling backwards or forwards through a cursor, the OLEDB provider would have refetched deleted rows. This problem has been fixed.



CR:426377
CR Number:   426377
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)
10.0.0 2279 03 Apr 2006 Fixed
9.0.2 3286 03 Apr 2006 Fixed
9.0.1 2153 03 Apr 2006 Fixed
Description
Attempting to execute an invalid recursive query (ie one that would have failed with error "-921 - Invalid recursive query") could have caused the server to crash, if it referenced remote tables. This has been fixed.



CR:426484
CR Number:   426484
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3342 19 Jul 2006 Fixed
Description
A new MobiLink server HTTP stream option, called session_key, has been added. This option determines how the MobiLink server tracks non-persistent HTTP sessions (i.e. when the MobiLink client specifies 'persistent=0'). The option is used as follows:



dbmlsrv9 ... -x http(...session_key=[cookie|header];...) ...



When the session_key is 'cookie', which is the default, an HTTP cookie with name JSESSIONID is used to track HTTP sessions. When the session key is 'header', an HTTP header is used. The 'header' option is useful if the cookie name of JSESSIONID conflicts with an existing cookie, in which case MobiLink will track HTTP synchronizations using a custom header entry that will not conflict with any other HTTP infrastructure. In order to implement this feature in the MobiLink server, changes were also required to the MobiLink client. Thus to get the new behaviour, clients need to be upgraded as well.



CR:426596
CR Number:   426596
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)
13 Apr 2006 Not a Bug
Description
Query using select col1 = (select sum(columnname) from Tablename) on proxy table never finishes -> "NO PASSTHRU mode"



CR:426611
CR Number:   426611
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)
10.0.0 2279 05 Apr 2006 Fixed
9.0.2 3287 05 Apr 2006 Fixed
Description
Calling connection_property( 'UnschReq' ) may have returned a value larger than it should have been, particularly if multiple DROP CONNECTION statements were issued against a single connection. This has been fixed.



CR:426786
CR Number:   426786
Product Name:   UltraLite
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2086 10 Apr 2006 Fixed
9.0.2 3289 10 Apr 2006 Fixed
9.0.1 2154 10 Apr 2006 Fixed
Description
Some aggregate expressions were not handled correctly by Dynamic SQL when there was no GROUP BY clause.

For example, when table is empty:

SELECT ifnull( sum(x), 0 ) FROM table

This has been corrected.
Workaround Description
 Casting the column to a double data type eliminates the strange result value

as in



select

isnull(sum(idint),0),

isnull(sum( cast(idnumeric as double) ),0)

from table1



CR:426799
CR Number:   426799
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5395 01 May 2006 Fixed
Description
The server could have become deadlocked (it would have appeared to be hung), if non-temporary database pages were updated, then freed, in quick succession. This has been fixed.



CR:426806
CR Number:   426806
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)
11.0.0 1211 24 Apr 2008 Fixed
10.0.1 3683 24 Apr 2008 Fixed
Description
The Index Consultant wizard would have returned syntax errors, and could not work properly, if the statements to be analysed contained column names that were only valid as quoted identifiers. This has been fixed.



CR:426984
CR Number:   426984
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)
10.0.0 2282 05 Apr 2006 Fixed
9.0.2 3289 05 Apr 2006 Fixed
9.0.1 2154 05 Apr 2006 Fixed
8.0.3 5384 05 Apr 2006 Fixed
Description
When upgrading a database, either by executing the ALTER DATABASE UPGRADE statement, or running the Upgrade utility, the upgrade did not run the oleschem.sql. This has now been corrected



CR:427005
CR Number:   427005
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2084 06 Apr 2006 Fixed
9.0.2 3289 06 Apr 2006 Fixed
9.0.1 2154 06 Apr 2006 Fixed
Description
If the Gateway wizard or Property sheet was used to create or modify an SMTP or UDP gateway, then an invalid "ack_timeout" property would have been set. This has been fixed so that the correct property "confirm_timeout" is now set.



This problem would also have prevented the MobiLink server from starting. This has also been fixed by allowing the MobiLink server respect the "ack_timeout" setting as an alias to the "confirm_timeout" property. If both property name are used at the same time, the value associated with "confirm_timeout" will take effect.
Workaround Description
 Connect to the backend database

SELECT * FROM ml_property table

Delete the records with "ack_timeout" that belongs to the SMTP



ack_timeout should've been confirm_timeout



Thank you



CR:427121
CR Number:   427121
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 2283 07 Apr 2006 Fixed
9.0.2 3289 07 Apr 2006 Fixed
Description
Integrated login connections could have failed if INTEGRATED LOGIN was granted to a Windows group, and the Windows group contained the particular user that was connecting as domain\username. This has been fixed so that user 'username' is now successfully logged in, even if they are in the Windows group as 'domain\username'.



CR:427138
CR Number:   427138
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 3289 06 Apr 2006 Fixed
Description
Server run on Unix systems with the -z command line option ("display debugging information"), would have displayed a message indicating that a TCP/IP connection has been received, when an HTTP or HTTPS request had been received. This has been fixed. The message will now indicate that an HTTP (or HTTPS) connection has been received (the same as on other platforms).



CR:427299
CR Number:   427299
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)
10.0.0 1751 17 Apr 2006 Fixed
9.0.2 3140 17 Apr 2006 Fixed
Description
The idle IO timer could have firing before the server was fully initialized, which would have caused the server to crash. This has been fixed by checking that the server has completed it's startup before dispatching the timer.



CR:427456
CR Number:   427456
Product Name:   UltraLite
Product Component:   UltraLite Engine
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3292 17 Apr 2006 Fixed
Description
When the UltraLite generator was run against a schema that included UUID column types, and it was configured to generate the C++ API, it would have generated code that referenced SQL_UUID. This symbol was not defined, causing a compiler error when the code was compiled. This has been fixed by defining the symbol SQL_UUID.



A work around is to add SQL_UUID to the enum listed in ulapi.h just before SQL_MAX_INDEX.



CR:427834
CR Number:   427834
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)
10.0.0 2286 17 Apr 2006 Fixed
9.0.2 3291 17 Apr 2006 Fixed
Description
The QAnywhere Agent command line option -q (quiet) did not work well on Windows CE. In particular, the database server was not started in quiet mode so the server window would pop up briefly before being minimized. This has been fixed so that when the the QAnywhere Agent is run with the -q option, the database server is started with -qi on Windows CE, and with -qw on Windows, as well..





--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------