远程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:657208
CR Number:   657208
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3055 01 Feb 2011 Fixed
12.0.0 2566 01 Feb 2011 Fixed
Description
The MobiLink server now requires the ASE ODBC driver from Sybase SDK 15.5 ESD #4, which contains a few bug fixes, especially for the ASE cluster edition. The ASE ODBC driver from Sybase 15.0 SDK ESD #16 that was recommended for 12.0.0 GA is no longer recommended.



CR:657210
CR Number:   657210
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3053 01 Feb 2011 Fixed
Description
The MobiLink server now supports two new named system parameters, 'new_username' and 'new_remote_id'. They are available in the authenticate_user and begin_synchronization connection scripts, and the begin_synchronization table script for every sync table. The format of these two named parameter is the same as that for all other named system parameters, that is:

{ml s.new_username} and {ml s.new_remote_id}



These new named parameters are not available through question marks (?) in any MobiLink server events.



The values of the s.new_username and s.new_remote_id parameters would be the MobiLink user name (used for user authentication) and the remote ID, respectively, if the user name and remote ID are new in the consolidated database (they are not in the ml_user and ml_database tables). Otherwise, their values will be NULL: more precisely, the s.new_username will be NULL if the MobiLink user name is already in the ml_user table, and the s.new_remote_id will be NULL if the remote_id is already in the ml_database table.



CR:657228
CR Number:   657228
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3052 01 Feb 2011 Fixed
Description
A new system procedure has been added, st_geometry_load_shapefile, which will make it easier to load ESRI shape files. The procedure creates a table and loads data from an ESRI shape file into the new table. The created table's columns are based on those in the shape file and shape file attributes. This system procedure is for use with the spatial feature.



Syntax



st_geometry_load_shapefile( shp_filename

, srid

, table_name

[, table_owner [, shp_encoding ] ] )



Arguments



- shp_filename A VARCHAR(512) parameter that identifies the location of the ESRI shape file. The file name must have the extension .shp and must have an associated .shx and .dbf file with the same base name located in the same directory. The path is relative to the database server, not the client application.

- srid An INTEGER parameter that identifies the SRID for the geometries in the shape file.

- table_name A VARCHAR(128) parameter the specifies the name of the created table.

- table_owner An optional VARCHAR(128) parameter the specifies the owner of the created table. The default owner is the current user.

- shp_encoding An optional VARCHAR(50) parameter that identifies the encoding to use when reading the shape file. The default encoding is ISO-8859-1.



Remarks



The st_geometry_load_shapefile system procedure first creates the table "table_owner"."table_name" using the column names a types from the ESRI shape file. Then the procedure loads the data from the shape file into the new table. If loading the data from the shape file fails, the created table remains.



This procedures makes use of the sa_describe_shapefile system procedure and the LOAD TABLE ... FORMAT SHAPEFILE statement.



Permissions



RESOURCE authority is required.

If the -gl option has been set to DBA, DBA authority is required.

If the -gl option has been set to NONE, loading the data will fail.



Side effects



Automatic commit



See also



sa_describe_shapefile

LOAD TABLE

Admin tools load shapefile wizard



Example



The following examples creates the table "esri_load" with spatial reference system 1000004326 and loads the data from c:\esri\shapefile.shp:

call st_geometry_load_shapefile( 'c:\\esri\\shapefile.shp', 1000004326, 'esri_load' );



CR:657284
CR Number:   657284
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   6.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3284 04 Feb 2011 Fixed
12.0.0 2641 04 Feb 2011 Fixed
11.0.1 2558 04 Feb 2011 Fixed
Description
The MobiLink Server log file viewer in Sybase Central might not have listed all synchronizations in a given log file separately if the log file contained messages from more than one run of the MobiLink Server. This has been fixed.



CR:657297
CR Number:   657297
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3053 02 Feb 2011 Fixed
Description
The MobiLink Replay utility can now repeatedly replay recorded protocol. A new option, -rep <num_repetitions>, has been added to specify how many times each simulated client should replay the recorded protocol. Each repetition can be customized if a replay DLL/shared object is used. The following callbacks are called per repetition:



GetUploadTransaction (this callback may be called several times based on how many syncs and upload transactions appear in the recorded protocol file being replayed)

GetDownloadApplyTime

ReportEndOfReplay

DelayStartOfReplay



The purpose of the above callbacks has not changed with the addition of this new feature. The differences are the repetitionNum and numRepetitions parameters will no longer always be 1 and GetUploadTransaction may now be called concurrently.



Another new option has been added as well, -ls, which tells the Replay utility to log statistics about each simulated client. In particular, using the 杔s option will log the total running time, the total time spent replaying, and the total number of repetitions completed successfully, failed, or skipped for each simulated client. The Replay utility will still log a summary just before exiting containing the total number of repetitions completed successfully, failed, or skipped, as well as the total time spent replaying and the total running time, even when the 杔s option is used.



CR:657301
CR Number:   657301
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3017 02 Feb 2011 Fixed
Description
Synchronization models using SQL Anywhere, Sybase IQ, IBM DB2 LUW and MySQL consolidated databases can now use timestamp-based downloads without having to use triggers to maintain timestamp columns. Instead of triggers, column default values can be used to automatically update the timestamp column in a row when the row is inserted or updated. This can improve performance, since such column defaults are less costly than triggers in the consolidated database.



A new "Use column default instead of a trigger" option has been added to both the Timestamp Download Options page of the Create Synchronization Model Wizard and the Download Type tab of the Table Mapping Editor.



This feature is required for Sybase IQ and is now the default option for SQL Anywhere. DB2 and MySQL only allow one automatic timestamp column per table, so the default for those consolidated database types is to use triggers.



The following column defaults are used:

- For SQL Anywhere and Sybase IQ: DEFAULT TIMESTAMP

- For DB2: GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP

- For MySQL: DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP



Note that a trigger must be used if a shadow table is used to hold the timestamp column.



CR:657306
CR Number:   657306
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3052 02 Feb 2011 Fixed
Description
Synchronization Models can now be created with Sybase IQ consolidated databases. For IQ tables, table mappings are download-only by default. If the table mapping for an IQ table is changed to bi-directional or upload-only, a warning is given to ensure that uploads are

serialized. The requirement for serializing uploads with Sybase IQ is described in the following topic:



MobiLink - Server Administration

Using MobiLink server technology

MobiLink consolidated databases

Sybase IQ consolidated database



CR:657311
CR Number:   657311
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3059 02 Feb 2011 Fixed
Description
The spatial predicate ST_WithinDistanceFilter is now supported for geometries in round earth spatial reference systems. In addition, predicates involving ST_WithinDistance or ST_Distance will now make use of a spatial index if one exists.



CR:657314
CR Number:   657314
Product Name:   UltraLite
Product Component:   UltraLite.NET
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3060 02 Feb 2011 Fixed
Description
Several new methods have been added to the UL.Net API to support asynchronous synchronization.



public delegate void ULSyncProgressedDlg( IAsyncResult result, ULSyncProgressData data )



This method is invoked during synchronization to provide progress information. Unlike the SyncProgressed method of the ULSyncProgressListener interface, the synchronization is not being held up during calls to this method and it is safe to do GUI work or make UL.NET API calls.



public IAsyncResult ULConnection.BeginSynchronize()



Creates a new thread to do a synchronization and then returns immediately.



public IAsyncResult ULConnection.BeginSynchronize( Control control, ULSyncProgressedDlg dlg, object state )



Creates a new thread to do a synchronization and then returns immediately. The ULSyncProgressedDlg method is invoked on the provided Control object regularly during sync to provide progress information.



public void ULConnection.CancelSynchronize( IAsyncResult asyncResult )



Tells the synchronization thread to terminate and then returns immediately.



public void ULConnection.EndSynchronize( IAsyncResult asyncResult )



Blocks until an asynchronously launched synchronization terminates. A ULException is thrown if the sync failed.



public bool ULSyncProgressData.IsFinalSyncProgress



This property is true if this is the final sync progress message for a sync.



CR:657317
CR Number:   657317
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3060 02 Feb 2011 Fixed
Description
Tables in UltraLiteJ can now be marked as download-only. Changes to the table on the consolidated database are downloaded during synchronizations, but local changes are not sent up to MobiLink. Tables are set to download-only by specifying "SYNCHRONIZE DOWNLOAD" for the sync constraint clause of the "CREATE TABLE" and "ALTER TABLE" SQL statements. As with other tables that are synchronized, client-side uncommitted changes may result in download conflicts. XML format for unloaded databases now includes the sync="download" attribute on tables.



Note, opening a database with 12.0.1 will upgrade the database so that it is no longer compatible with 12.0.0.



CR:657324
CR Number:   657324
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3285 08 Feb 2011 Fixed
12.0.0 2643 08 Feb 2011 Fixed
Description
Installations created by the Deployment wizard were to be missing the following files from the assembly\v2\ directory:

iAnywhere.Mobilink.Client.dll

iAnywhere.QAnywhere.Client.dll

iAnywhere.QAnywhere.Resources.dll

iAnywhere.QAnywhere.ws.dll



These files were being installed in the Global Assembly Cache (GAC), but an additional copy was not also put in the assembly\v2 directory. This has been corrected so that these files are now installed in both locations.



CR:657341
CR Number:   657341
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3066 02 Feb 2011 Fixed
Description
Substantial performance improvements have been made for the following spatial operations:

- Loading of (multi)polygons belonging to round earth spatial reference systems.

- Loading of complex (multi)polygons (i.e., polygons defined by many rings or rings containing many points)

- Spatial set operations (e.g., ST_Union, ST_Intersection, etc.) applied to complex geometries

- Spatial predicates (e.g., ST_Contains, ST_Intersects, etc.) where one of the geometries is complex

- Spatial predicates where one of the geometries is a point



CR:657343
CR Number:   657343
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3055 02 Feb 2011 Fixed
Description
The MobiLink Server can now automatically adjust the number of database worker threads based on load, with the goal of maximizing throughput. The existing -w option has been slightly changed, and the -wm option has been added, as follows:



-w <count> set the initial number of concurrent database worker threads (up to -wm)

-wm <count> set the maximum number of concurrent database worker threads



Notes:

- The -w option has been changed to be the _initial_ number of concurrent database worker threads

- The -wm option now defaults to -w, ie. no automatic adjustment will occur when -wm is unset. In other words, the automatic adjustment is triggered by the presence of the -wm option

- The number of database worker threads is now automatically adjustable anywhere between the initial (-w) value and the -wm value

- The -wu value is not automatically adjusted, and its meaning remains basically the same, with one important difference: If not specified, uploads may be applied on any or all database worker threads (which is now a variable number). If specified, uploads may only be applied concurrently on the given number of database worker threads. So by default, when feature attempts to ramp up the number of database worker threads in an attempt to increase throughput, contention may increase in the short term until it is detected and the thread-count is eventually decreased.

- The automatic adjustment means that some customers may find optimal throughput only when -wu is set explicitly, because leaving it unset causes download throughput to be artificially limited by the contention of the uploads. Setting -wu is most likely to be required in high-load environments where uploads are constantly intermixed with download-only synchronizations.

- If contention in the consolidated is the cause of throughput degradation, then this new feature will reduce the number of worker threads REGARDLESS of the cause of the contention (eg. other syncs vs. a contentious batch process outside of syncs).

- Each ML server in a farm makes thread-count decisions independently. Over time, on average, each server in an ML farm should end up at the same thread-count number assuming a uniform load distributed evenly across the farm.



CR:657397
CR Number:   657397
Product Name:   MobiLink
Product Component:   scripts
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3284 04 Feb 2011 Fixed
12.0.0 2642 04 Feb 2011 Fixed
Description
When the consolidated database was running on an Oracle server, the MobiLink server could have displayed the error: 'ORA-00001: unique constraint ... violated' and then refused further synchronization requests. This would have occurred when the MobiLink server schema in the consolidated database was upgraded from a version earlier than 11.0.0, and the synchronization request was for a new MobiLink user and/or MobiLink remote database.

This problem has been fixed in the upgrade scripts for Oracle.



The following steps can be used to correct the problem if the Oracle consolidated database had already been upgraded with the old upgrade scripts:

1) Shut down all MobiLink servers;

2) Execute the SQL file against the Oracle consolidated database with the following command line:

sqlplus LoginID/Password@TNSServerName @%SQLANY12%\MobiLink\Upgrade\fix_ora.sql



Replace the LoginID, Password, and TNSServerName in the above command line with your own login information.
Workaround Description
 Reg already provided a work-around to the customer. The customer needs to recreated the sequences in a similar way, like Reg demonstrated by executing the following statements in SQL*Plus:



SQL> select max(user_id) from ml_user;



MAX(USER_ID)

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

7



SQL> drop sequence ml_user_sequence;



Sequence dropped.



SQL> create sequence ml_user_sequence start with 8 increment by 1 nomaxvalue;



Sequence created.



SQL> select max(rid) from ml_database;



MAX(RID)

----------

6



SQL> drop sequence ml_database_sequence;



Sequence dropped.



SQL> create sequence ml_database_sequence start with 7 increment by 1 nomaxvalue;



Sequence created.



CR:657409
CR Number:   657409
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3050 03 Feb 2011 Fixed
Description
Predicates of the form 'T.X IS NOT NULL' are now treated as sargable predicates by the SQL Anywhere Optimizer. Hence, this type of predicates can be used for partial index scans interpreted as "T.X > NULL".



For example:

create index idx1 on T(C1, C2);



select * from T where T.C1 = 10 and T.C2 IS NOT NULL



The query Q may have, depending on the selectivity of the predicates "T.C1 = 10" and "T.C2 IS NOT NULL", the following plan:



T<idx1>



where the partial index scan on <idx1> is set as follows:

idx1:

c1 = 10

NULL < c2



CR:657410
CR Number:   657410
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3050 03 Feb 2011 Fixed
Description
One of the conditions for a query to be considered for bypassing the optimizer was to have no computed columns defined for the base table referenced in the FROM clause. This restriction has been removed. Common sub-expression elimination process using computed columns is done for bypassed queries similar to the queries using the Optimizer.



CR:657411
CR Number:   657411
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3067 03 Feb 2011 Fixed
Description
When adding table mappings to a Synchronization Model in the Create New Table Mappings window, the option to add corresponding tables to the remote schema is now selected by default.



CR:657413
CR Number:   657413
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3055 03 Feb 2011 Fixed
Description
Improvements to the MobiLink Server required some changes to system objects in the consolidated database. Upgrade scripts have been provided for every consolidated database type MobiLink supports. The upgrade script file is named with the following format:

upgrade_x.sql

where x can be sa, ase, mss, ora, db2, and mys; and represent upgrade scripts for SQL Anywhere, Sybase ASE, Microsoft SQL Sever, Oracle, DB2, and MySQL, respectively. These upgrade script files can be found in MobiLink\Upgrade\x.y.z of the SQL Anywhere installation, where x.y.z stands for the earlier version that is currently in use. For instance, when upgrading from MobiLink version 9.0.2 to version 12.0.1 with an Oracle consolidated database, the upgrade script needed is upgrade_ora.sql that can be found in the directory, MobiLink\Upgrade\9.0.2 in the SQLAnywhere 12.0.1 installation.



CR:657415
CR Number:   657415
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3066 03 Feb 2011 Fixed
Description
Performance of index maintenance on IMMEDIATE REFRESH text indexes has been substantially improved. The improvement observed will depend on the particular workload, as well as the

document and text index content. Text indexes indexing long documents will benefit the most from this improvement.



CR:657416
CR Number:   657416
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3100 03 Feb 2011 Fixed
Description
The USING clause of a CREATE SERVER statement can now contain "{varname}". Similarly, the AT clause for CREATE EXISTING and CREATE PROCEDURE statements can also contain "{varname}". When a connection to the remote server is established, or when the proxy table or proxy procedure is utilized, the "{varname}" in the USING or AT clause will get replaced with the contents of the connection variable named "varname". Note that the connection variable "varname" must be a CHAR, VARCHAR or LONG VARCHAR variable. All other datatypes will be rejected. Utilizing the "{varname}" feature will allow for creating dynamic remote data access servers, proxy tables and proxy procedures.



The following example gives a better idea of how this new feature can be used. Note that this example uses a directory access server for demonstration but this new feature is not at all restricted to the type of remote data access server.



SSuppose a dba has a database that is sometimes started on machine A with the server name server1 and at other times the database is started on machine B with the server name server2. Now suppose the dba wants to set up a directory access server that points to the local drive d:\users on machine B which is also the network driver w:\users on machine A.

In addition, the dba wants to set up a single proxy table that all users can use to get the listing of their own directory located at users\userM. With the addition of variables in the USING and AT clause, the dba can now accomplish everything needed with a single directory access server and a single proxy table as follows:



First, with the database running on machine B connect as dba and execute the following in DBISQL



-- define the directory access server with variables in the using clause

-- the two variables in this example are for the root of the directory access server and the subdirectory level

create server dir class 'directory' using 'root={@directory}\\users;subdirs={@subdirs}';



-- next create explicit extern logins for each user that will be allowed to use the directory access server

create externlogin dba to dir;

create externlogin user1 to dir;

create externlogin user2 to dir;

...

create externlogin userM to dir;



-- now use one of the user accounts to create the single proxy table that all users will use

create variable @directory long varchar;

set @directory = 'd:';



create variable @subdirs varchar(10);

set @subdirs = '7';



create variable @curuser varchar(128);

set @curuser = 'user1';



create variable @server varchar(128);

set @server = 'dir';



-- this will now create a proxy table that points to @directory\users\@curuser on directory access server @server

create existing table dbo.userdir at '{@server};;;{@curuser}';



-- we no longer need the variables so clean them up

drop variable @curuser;

drop variable @subdirs;

drop variable @directory;



-- we also no longer need an extern login mapping for dba

drop externlogin dba to dir;



-- now create a procedure that all users will use to view the contents of their individual user directory

create procedure dbo.listmydir()

begin

declare @directory long varchar;

declare @subdirs varchar(10);

declare @server varchar(128);

declare @curuser varchar(128);



-- for this example we always use the "dir' remote data access server

set @server = 'dir';



-- the root directory is based on the SQL Anywhere server the user is connect to

set @directory = if property('name') = 'server1' then 'w:' else 'd:' endif;



-- the subdir limit is based on the connected user

set @curuser = user_name();

-- all users get a subdir limit of 7 except user2 who gets a limit of 1

set @subdirs = convert( varchar(10), if @curuser = 'user2' then 1 else 7 endif);



-- now we are all set to go

-- with all the variables set above the proxy table dbo.userdir now points to @directory\@curuser and has a subdir limit of @subdirs

select * from dbo.userdir;

end



grant execute on dbo.listmydir to public;



If userN where userN is not in (user1, user2, ... userM) attempts to use dbo.listmydir(), the select statement will fail due to the fact that userN does not have an extern login mapping for directory access server "dir".



If, on the other hand, users userI and userJ where userI and userJ are both in (user1, user2, ... userM) attempt to use dbo.listmydir(), then userI will get a listing of his/her own directory located at users\userI and userJ will get a listing of his/her own directory located at users\userJ even though both query the exact same dbo.userdir proxy table. In addition, if the database now moves from machine B to machine A, then all will continue to work since the @directory variable in the USING clause will now get set to "w:\users" instead of "d:\users".



CR:657417
CR Number:   657417
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3050 03 Feb 2011 Fixed
Description
The 'TOP limit START AT startat' and 'LIMIT limit OFFSET offset' constructs now support simple arithmetic expressions for 'limit', 'offset', 'startat' arguments; and TOP supports the 'ALL' limit indicating that all rows are to be returned after the specified 'startat'; and the maximum value for (limit + offset) is now 9223372036854775807 = 2^64-1



The new grammar is as follows:



TOP range_expression range_offset



TOP T_ALL range_offset



LIMIT range_expression [OFFSET range_expression]





range_expression:

integer_or_var

| '(' simple_expression ')'



;



simple_expression:

integer_or_var



| simple_expression '+' simple_expression





| simple_expression '-' simple_expression







| simple_expression '*' simple_expression







| '(' simple_expression ')'





;





range_offset: /* empty */



| T_START T_AT range_expression



CR:657423
CR Number:   657423
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3073 03 Feb 2011 Fixed
Description
The first page of the Deploy Synchronization Model wizard now has an option when deploying to a remote database to initialize the wizard with settings appropriate for creating remote tasks for central administration of remote databases. This option is selected by default.



When the "Initialize with settings for central administration of remote databases" option is selected, the defaults are changed for the following deployment settings:

- On the New SQL Anywhere Remote Database page, the "Create a remote SQL Anywhere database" option is not selected.

- On the New UltraLite Remote Database page, the "Create a remote UltraLite database" option is not selected.

- On the Existing Remote Database page, the "Connect to the remote database to directly apply the changes" option is not selected.

- On the MobiLink User and Synchronization Profile page (formerly MobiLink User or MobiLink User and Subscription) the following are changed:

- The user name is set to {ml_username}.

- The password is set to {ml_password}.

- The "Register this user in the consolidated database for MobiLink authentication" option is not selected.



With this option selected, deployment with create a remote database SQL file that can be used in a remote task. The {ml_username} and {ml_password} macro values are replaced with the MobiLink user and password being used by the MobiLink Agent when the SQL is executed on the remote database.



CR:657427
CR Number:   657427
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3083 03 Feb 2011 Fixed
Description
On Windows systems, the behavior when clicking Help in SQL Anywhere ODBC administrator dialogs has been changed so that

. the help topics are displayed using the master help file sqlanywhere_[LL]12.chm when full HTMLHelp documentation is installed, or

. if sqlanywhere_[LL]12.chm is not found, the help topics are displayed using context sensitive help file sacshelp12.chm, or

. if sacshelp12.chm is also not found, the help topics are displayed in DocCommentXchange with system's default internet browser



Please note that before this change, the Help buttons used dbco[LL]12.chm, which was installed in the bin32 folder by the main software installer. Now dbco[LL]12.chm is longer be provided.



[LL] is the language code of the help files.



CR:657445
CR Number:   657445
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3090 03 Feb 2011 Fixed
Description
A new function GetParameterID has been added to the programming interface for C and C++ programming. The method returns the base-one ordinal for a named host variable in a SQL statement. The ordinal may be subsequently used to set the value of a host variable.



CR:657448
CR Number:   657448
Product Name:   SQL Anywhere Monitor
Product Component:   SQL Anywhere Monitor
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3284 04 Feb 2011 Fixed
12.0.0 2641 04 Feb 2011 Fixed
Description
The aggregated time increment used to calculate the following metrics were not divided by the request count increment before plotting to the graphs:

"Average Request time"

"Average Backend server processing time"

"Average Response time"

"Average Request Completion time"



The problem has been fixed.



CR:657459
CR Number:   657459
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3148 03 Feb 2011 Fixed
Description
The SQL Anywhere OLE DB provider now supports the DBTYPE_DBTIMESTAMPOFFSET data type. DBTYPE_DBTIMESTAMPOFFSET (146) is an OLE DB type that supports the TIMESTAMP WITH TIME ZONE (or DATETIMEOFFSET) data type. Support for this data type facilitates transfer of data tables between SQL Anywhere databases and other database management systems (include SQL Anywhere).



CR:657471
CR Number:   657471
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3284 04 Feb 2011 Fixed
12.0.0 2641 04 Feb 2011 Fixed
11.0.1 2558 04 Feb 2011 Fixed
Description
The PHP external environment and the PHP driver now support PHP versions 5.3.3, 5.3.4, and 5.3.5.



CR:657518
CR Number:   657518
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3073 04 Feb 2011 Fixed
Description
When deploying a Synchronization Model to a remote database, a synchronization profile is created to hold several deployment options. For a SQL Anywhere remote database, the created synchronization profile contains the subscription name and the MobiLink password. For an UltraLite remote database, the synchronization profile contains the stream type and stream options, the MobiLink user name and password, the publication, and the script version.



The Deployment Wizard's MobiLink User and Subscription page (for SQL Anywhere databases) and MobiLink User page (for UltraLite remote databases) have been merged into the MobiLink User and Synchronization Profile page, which has an option to specify the synchronization profile name. For SQL Anywhere remote databases, the same name is used for the synchronization subscription. The default name combines the publication name and MobiLink user name, since the profile is linked to the publication and user. It is automatically updated to be of the form <publication name>_<MobiLink user name> when the mobilink user name is changed, but is uncoupled when it is directly edited. The deployment option to name the synchronization profile replaces the option to name the subscription for a SQL Anywhere remote database that was added in version 12.0.0. This feature removes the need to manually create a synchronization profile after deploying a synchronization model to use with central administration of remote databases.



CR:657519
CR Number:   657519
Product Name:   MobiLink
Product Component:   Monitor
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3070 04 Feb 2011 Fixed
Description
The MobiLink collector for the SA Monitor now supports an additional metric: "Is Consolidated Available?". This value will be true if the MobiLink server can connect to the consolidated database. If the consolidated database becomes unavailable, a "Consolidated database unavailable" alert will be raised. Also, the "Bytes Read Rate" and "Bytes Written Rate" have been renamed to "TCP Bytes Read Rate" and "TCP Bytes Written Rate".



CR:657520
CR Number:   657520
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)
12.0.1 3285 04 Feb 2011 Fixed
12.0.0 2643 04 Feb 2011 Fixed
11.0.1 2558 08 Feb 2011 Fixed
9.0.2 4003 08 Feb 2011 Fixed
Description
In very rare cases, the server asserts with assertion error 102300 "File associated with given page id is invalid or not open" if request level debugging is turned on and includes plan logging and there are schema changes around. This has been fixed. To work around the problem plan caching can be turned off (option Max_plans_cached = 0) or plan logging can be turned off (switch -zr without "plan" and "all").



CR:657526
CR Number:   657526
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3100 04 Feb 2011 Fixed
Description
A new stored procedure called sp_forward_to_remote_server( IN @server_name varchar(128), IN @sql long varchar ) has been added. This stored procedure allows an application to execute a SQL statement on a remote server and retrieve any result sets generated by the statement. It should be noted that the SQL statement gets sent verbatim to the remote server; hence, it is not necessary for the SQL statement to be parseable by SQL Anywhere. This new stored procedure is in addition to the already existing FORWARD TO statement; but unlike the FORWARD TO statement, this new stored procedure can be used within procedures; however, since the schema of the remote result sets is completely arbitrary, this stored procedure cannot be used within the FROM clause of a SELECT statement. You can, nevertheless, declare a cursor within a stored procedure on this stored procedure and fetch the remote result sets that way. Note that if the SQL statement returns multiple result sets, then this stored procedure will return each remote result set in turn.



The server must be defined with the CREATE SERVER statement to use this system procedure. TThe arguments are as follows:



@server_name Use this CHAR(128) parameter to specify the server the SQL statement will be executed on.

@sql Use this LONG VARCHAR parameter to specify the SQL statement to execute on the remote server.



Note that an ALTER DATABASE UPGRADE is required to get the new stored procedure.



Permissions: None



Side effects: There are no local side effects to executing this stored procedure; however, since the SQL statement that gets executed on the remote is completely arbitrary, there may be side effects on the remote server.



Example:



The following very simple example uses the sp_forward_to_remote_server() stored procedure and a local function to determine the number of tables that a remote SQL Anywhere 12 database has.



-- create the remote data access server

create server rem class 'saodbc' using 'driver=SQL Anywhere 12;...';



-- assume extern logins are not needed



-- create the local function that in turn calls sp_forward_to_remote_server

create function fetch_num_remote_tables(in server char(128) ) returns int

begin

declare num_tables int;

declare curs cursor for call sp_forward_to_remote_server( server, 'select count(*) from sys.systable' );

open curs;

fetch next curs into num_tables;

close curs;

return num_tables;

end



-- fetch the number of tables from the remote server

select fetch_num_remote_tables( 'rem' )



CR:657528
CR Number:   657528
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3071 04 Feb 2011 Fixed
Description
UltraLite will now grow its database file cache when warranted in response to database operations and as available memory allows. The application can also resize the cache explicitly (typically in cases where the application is requested to reduce its memory usage). The 'cache_size' connection parameter is now only the initial size. Since the cache will grow on demand, the default value for 'cache_size' is smaller than it was previously - in particular, the runtime will no longer try to cache the entire file initially.



New connection parameters to control the cache size limits are:



'cache_min_size' - The minimum cache size, in bytes, with k and m suffixes as with 'cache_size'.



'cache_max_size' - The maximum cache size, in bytes, with k and m suffixes as with 'cache_size'.



There are platform and memory size-specific defaults for these values. The default maximum size is limited to 20Mb for devices and 50Mb for desktops. Normally, the application should not have to specify any cache-size parameters.



The new database option 'cache_allocation' is used to explicitly resize the cache. The value is a percentage of the minimum-to-maximum range. A value of zero means the minimum size, and a value of 100 means the maximum size. The 'cache_allocation' property returns the current cache size as a percentage value.



CR:657530
CR Number:   657530
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3100 04 Feb 2011 Fixed
Description
The restrictions on the type of argument datatypes that are allowed in remote procedure calls has now been relaxed considerably. In particular, a remote procedure call can now contain IN parameters of type long varchar, long nvarchar and long binary. In addition, varchar, nvarchar and binary parameters are no longer restricted to 255 bytes. As a result, when defining and using a proxy procedure, you can now use any datatype for IN arguments. However, long varchar, long nvarchar, long binary, numeric and decimal datatypes are still not allowed for OUT parameters, INOUT parameters or RETURN values.



CR:657536
CR Number:   657536
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3141 04 Feb 2011 Fixed
Description
This change introduces a new performance metric to track the time connections have been connected, adds user-defined performance counters, and changes the scope of some existing performance counters so that they are now available at the connection, database, and server level. These changes improve the ability to monitor a database server running more than one database.



Property for Connection Time



A new connection property, ConnectedTime, returns the total length of time in seconds that a connection has been connected. There are also database and server-level versions of the same name; these return the total time that all connections to the database/server have been connected. Two notes of caution for the database and server versions:

The database and server level properties are updated only when a request completes for the connection or the connection disconnects. The database/server properties can therefore lag behind for connections that are idle or busy executing for a long time in the server. The property is updated only at the end of the operation to reduce the overhead needed to maintain the property.

The database and server level properties include time accrued by any connection, and this includes database events and background server connections (such as the cleaner)



User-Defined Counters



The SA performance counter mechanisms provides a way to monitor statistics in a running server. In some cases, a database application has similar statistics that would be useful to measure when monitoring a performance issue. To that end, new user-defined counters are defined. These are not set by the server, and must be set or incremented explicitly by calling one of two new functions. The counters can be read using any of the methods supported for performance counters (property functions, dbo.sa_performance_statistics(), performance monitor).



There are two classes of counter, RAW and RATE. The RAW counters are displayed as an absolute value in the performance monitor, while RATE counters are shown by measuring the change of the counter during a measurement interval. For example, a RAW counter would be appropriate for showing the current number of keys remaining in a key pool; this value would fluctuate up and down over time. Alternatively, a RATE counter would be appropriate for showing how quickly keys are being used from a key pool. The counter would increase monotonically over time as keys are used, and the performance monitor would show the rate that keys are used per second.



The new counters are named UserDefinedCounterRaw01, ..., UserDefinedCounterRaw05 and UserDefinedCounterRate01,...,UserDefinedCounterRate05. These counters are recorded at the scope of connection / database / server.



Two new functions are provided to increment these values or set them to a new absolute value:



create function dbo.sa_user_defined_counter_add(

in counter_name varchar(128),

in delta bigint default 1,

in apply_to_con int default 1,

in apply_to_db int default 1,

in apply_to_server int default 1 )

returns int

internal name 'sa_user_defined_counter_add'



The sa_user_defined_counter_add() system procedure adjusts a user-defined counter by an amount (delta). The counter_name parameter is the text name of the counter to adjust. By default, the counter is adjusted by 1 at the connection, database, and server scopes. The parameters apply_to_con, apply_to_db, and apply_to_server can be either 0 (do not apply) or 1 (do apply) to control the scopes where the delta is applied. To accomodate future expansion, the delta parameter is declared as a bigint. However, values outside of the range of an int generate an error. The function returns 1 if the delta was applied, otherwise 0.



create function dbo.sa_user_defined_counter_set(

in counter_name varchar(128),

in value bigint,

in apply_to_con int default 1,

in apply_to_db int default 0,

in apply_to_server int default 0 )

returns int

internal name 'sa_user_defined_counter_set'



The sa_user_defined_counter_set() system procedure changes a user-defined counter to a new value. The counter_name parameter is the text name of the counter to adjust. By default, the counter is set to the specified value at the connection, database, and server scopes. The parameters apply_to_con, apply_to_db, and apply_to_server can be either 0 (do not apply) or 1 (do apply) to control the scopes where the value is applied. To accomodate future expansion, the value parameter is declared as a bigint. However, values outside of the range of an int generate an error. The function returns 1 if the value was applied, otherwise 0.



Concurrent access to counters are applied atomically so it is safe to increment a counter from multiple concurrent requests or to set a counter from concurrent requests.





New scope for properties:



The following properties were previously maintained for a single connection only. In version 12.0.1, these properties are accumulate to the database and engine level, and they can now be retrieved using database_property() and property():

ApproximateCPUTime -- approximation of CPU time spent by connection/db/server

ReqCountXXX -- count of times connection entered state XXX={Unscheduled,Active,BlockIO,BlockLock,BlockContention}

ReqTimeXXX -- total time connection spent in state XXX={Unscheduled,Active,BlockIO,BlockLock,BlockContention}



The accumulation for these properties is done at the end of a request; this means that executing requests don't update the database/server properties until the request completes.



New scope for counters:



Perviously, some performance counters were defined at scope "con" or "con/eng". In version 12.0.1., these are instead defined as "con/db/eng" so that the property can be attributed to a particular database when the server is running more than one database.



Bytes_Received

Bytes_Received_Uncomp

Bytes_Sent

Bytes_Sent_Uncomp

Carver_Heap_Pages

Client_Stmt_Cache_Hits

Client_Stmt_Cache_Misses

Client_Stmt_Track_Mem

Client_Stmt_Tracked

Commit

Cursor

Heaps_Carver

Heaps_Locked

Heaps_Query

Heaps_Relocatable

Open_Cursor

Packets_Received

Packets_Received_Uncomp

Packets_Sent

Packets_Sent_Uncomp

Query_Heap_Pages

Query_Mem_Active_Curr

Query_Mem_Grant_Failed

Query_Mem_Grant_Granted

Query_Mem_Grant_Requested

Query_Mem_Grant_Waited

Query_Mem_Grant_Waiting

Requests_Received

Rollback

Statement



With this change, these counters can now be retrieved using property(), db_property(), or connection_property().



CR:657540
CR Number:   657540
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3072 04 Feb 2011 Fixed
Description
The documentation for UltraLite does not specify any side effects for the SET OPTION statement. In version 12.0.0 and earlier, UltraLite always commits as a side effect of setting any option (using the SET OPTION statement or SetDatabaseOption method). As of version 12.0.1, setting an option will only commit for permanent options. These are:

global_database_id

ml_remote_id



Options which are temporary or connection-based by nature do not have a commit side effect. These are:

commit_flush_timeout

commit_flush_count

isolation_level

cache_allocation



CR:657542
CR Number:   657542
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3286 09 Feb 2011 Fixed
11.0.1 2560 09 Feb 2011 Fixed
Description
The results of an Entity DAta Model query could have been non-deterministic. For example, having a GridView with the properties "AllowPaging" and "AllowSorting" set to "True", would have returned a "Result is non-deterministic" warning (SQLCODE 122). This has been fixed by adding an ORDER BY clause to the generated SQL.



CR:657551
CR Number:   657551
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3110 04 Feb 2011 Fixed
Description
The SQL Anywhere plug-in's support for viewing and editing permissions has been redesigned for version 12.0.1. Permissions are now viewed and edited from tabs in the right pane of the main Sybase Central window, rather than from property sheets. In addition, the permissions editors for tables, columns and views now distinguish between permissions that were granted by different grantors.



CR:657555
CR Number:   657555
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3109 04 Feb 2011 Fixed
Description
Web procedures that use HTTPS are now supported on Windows CE. Note that the CE server still does not support HTTPS as a server protocol (i.e. -xs https), this is only for secure web procedures (i.e. a procedure that consumes a web service from a remote server).



CR:657557
CR Number:   657557
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3127 04 Feb 2011 Fixed
Description
HTTP and HTTPS synchronizations are now done using persistent connections by default.



CR:657560
CR Number:   657560
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3121 04 Feb 2011 Fixed
Description
Dynamic multiprogramming level (MPL) network server command line options (-gna,

-gns, -gnl, and -gnh) will now generate an error if they are used on the personal server. For 12.0.0, these options were silently ignored, now for 12.0.1 using any of these options on the personal server will generate the following warning:



Warning: option X is ignored by Personal Server.



X can be one of -gna, -gnh, -gnl, or -gns



CR:657586
CR Number:   657586
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3284 07 Feb 2011 Fixed
12.0.0 2642 07 Feb 2011 Fixed
11.0.1 2558 07 Feb 2011 Fixed
Description
If a call was made to the Java external environment, and the stored procedure had an argument of type tinyint and a NULL value was passed in for the tinyint argument, then the server would have failed the request with a NullPointerException. It should be noted that the Java VM would continue to run in this situation and the connection was still able to make subsequent Java external environment calls. This problem has now been fixed such that passing a NULL tinyint value to a Java external environment call will result in a byte with zero value being passed down to the Java method.



CR:657621
CR Number:   657621
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3289 15 Feb 2011 Fixed
12.0.0 2646 15 Feb 2011 Fixed
11.0.1 2562 15 Feb 2011 Fixed
Description
If a server (S2) acting as mirror saw a dropped connection to the primary server (S1) after a temporary network outage, it could have attempted to become primary while S1 was still running. S2 would then have failed during startup because S1 still owned the alternate server name for the database. This error would also have caused S2 to shut down. If S1 needed to restart, it would have been unable to take ownership of the database because S2 was unavailable and the arbiter's state had been updated to indicate that S2 was the owner.



Also, when a server acting as primary (S1) accepted an inbound connection from the mirror (S2), S1 attempted to make an asynchronous outbound connection to S2 if one did not already exist. If this connection attempt failed, S2 would have failed to receive updates from S1.



These problems have now been fixed.



CR:657712
CR Number:   657712
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3287 08 Feb 2011 Fixed
12.0.0 2644 08 Feb 2011 Fixed
11.0.1 2561 08 Feb 2011 Fixed
Description
Additional information is now saved for graphical and long plans. This additional information includes:

- Known values for expressions are now dumped in the plans. For example, a stored procedure parameter known at the optimization time is dumped as 'parm1[100]' if its name is 'parm1' and its known value is '100'.



- For long plans generated by the application profiling, extra information related to the optimization process is now dumped. For example, 'Plan [ Total Cost Estimate: 3.5657, Costed Best Plans: 1, Costed Plans: 13, Optimization Time: 0.074541, Estimated Cache Pages: 590 ]' This type of information is already present for long plans generated by calling the explanation() function.



- Information related to the cached plan of a statement is now dumped in its long plan.



- Predicates used to generate fence posts for a partial index scan are now dumped in the long plans generated by the application profiling. This type of information is already present for long plans generated by calling the explanation() function.



Also, graphical plans with statistics saved during tracing did not actually contain any statistics. This has been fixed.



CR:657720
CR Number:   657720
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
29 Jul 2011 Fixed
Description
The following enhancements have been made to the events generated by the MobiLink client API:



1) The DBSC_Event structure now has a new integer field 'val3'. As with the other data fields in the structure, the meaning of the value in the val3 field depends on the type of event.



2) The event, DBSC_EVENTTYPE_DOWNLOAD_COMMITTED now has 2 parameters. In the DBSC_Event structure for the event, val1 contains the number of rows inserted or updated during the download. val2 contains the number of rows deleted by the download.



3) The new event, DBSC_EVENTTYPE_UPLOAD_START event has been added. The event is generated when dbmlsync begins to send the upload to the MobiLink server.



4) The new event DBSC_EVENTTYPE_UPLOAD_SENT event has been added. The event is generated when dbmlsync completes sending the upload to the MobiLink server. For synchronizations that use transactional or incremental upload (where the upload is sent as more than 1 segment) a separate UPLOAD_SENT event is generated after each segment is sent. In the DBSC_Event structure for the event, val1 contains the number of insert operations contained in upload, . val2 contains the number of update operations contained in the upload and val3 contains the number of delete operations contained in the upload.



5) The new event, DBSC_EVENTTYPE_DOWNLOAD_START event has been added. The event is generated when dbmlsync begins to process the download.



These event changes will apply to the C++ and .NET version of the API. They will also appear in the synchronize_results and synchronizae_parameters tables when the SYNCHRONIZE SQL statement is used.



All of these new events can be enabled/disabled by using the SetProperty method to set the 'enable status' property.



CR:657721
CR Number:   657721
Product Name:   MobiLink
Product Component:   iAS Branded ODBC Drivers
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 22 Feb 2011 Fixed
12.0.0 2648 22 Feb 2011 Fixed
11.0.1 2564 22 Feb 2011 Fixed
Description
There was a memory leak in the iAS ODBC driver for Oracle. The memory leak would have occurred when an application tried to make a connection but the ODBC driver was not able to obtain a valid database connection. This problem has now been fixed.



CR:657748
CR Number:   657748
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.1 2560 08 Feb 2011 Fixed
10.0.1 4181 08 Feb 2011 Fixed
Description
When using the Microsoft ODBC Data Source Administrator, an attempt to create a DSN that used a FIPS Certificate may have resulted in a crash. The has been fixed.



CR:657812
CR Number:   657812
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3287 11 Feb 2011 Fixed
12.0.0 2644 11 Feb 2011 Fixed
Description
A number of read-only scale-out issues have been fixed.



1) The server could have crashed or otherwise failed in rare cases when one or more read-only scale-out children were added to a node. This could have occurred if one node was stopped or restarted.



2) If a parent node was restarted and had a lower log offset than it's child, the child could have shutdown with the message "Database server shutdown due to incompatible files for database mirroring." Restarting the child node after the parent caught up to primary would succeed. Now the child node no longer stops and the child node will start applying log changes once its parent gets to a higher log offset.



3) If a parent copy node was started with child nodes already running, a child node and possibly other nodes could have hung.



4) If a copy node was connected to it's alternate parent, and then it's alternate parent stopped, the copy node may have stopped applying updates. The copy should have connected to the primary server to receive updates but was actually not receiving updates. Note that sa_mirror_server_status may show that the node which is not receiving updates is connected, when in fact it was not. Now the copy node will connect to the primary server if neither the parent nor alternate parent servers are available.



5) An ALTER MIRROR SERVER statement that only changed the alternate parent was ignored until the server being altered was restarted. For example, if ServerC had parent ServerB:

ALTER MIRROR SERVER 'ServerC' AS COPY FROM SERVER 'ServerB' OR SERVER 'ServerA'

was ignored by ServerC until it was restarted. Now the alternate parent is effective on the server being altered once it has applied the log offset with the ALTER MIRROR SERVER statement.



6) Attempting to SET MIRROR OPTION auto_add_server to the alternate server name for the primary server incorrectly resulted in an error.



7) If read-only scale-out copy nodes had a primary server as their root node, and the primary server failed over to the mirror server, then all client connections to all copy nodes were incorrectly dropped.



CR:657823
CR Number:   657823
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3291 16 Feb 2011 Fixed
12.0.0 2647 16 Feb 2011 Fixed
11.0.1 2563 16 Feb 2011 Fixed
10.0.1 4185 16 Feb 2011 Fixed
Description
The fix for Engineering case 620136 did not handle the situation where there was no declared Primary Key in the primary table but there were table, or column, (not nullable) Unique Constraints that permit the addition of foreign keys. This problem has been corrected.
Workaround Description
 short of adding a primary key [changing U.C. or Col. U.C. into a pkey say]

or reverting to an ODBC driver from an older ebf there would seem to be no workaround



CR:657826
CR Number:   657826
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3286 08 Feb 2011 Fixed
12.0.0 2643 08 Feb 2011 Fixed
11.0.1 2560 08 Feb 2011 Fixed
10.0.1 4181 08 Feb 2011 Fixed
9.0.2 4003 08 Feb 2011 Fixed
Description
When using the Microsoft ODBC Data Source Administrator, a crash may have resulted if an encrypted password had been specified and the "Test Connection" button was used. This has been fixed.



CR:657869
CR Number:   657869
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3286 09 Feb 2011 Fixed
12.0.0 2643 09 Feb 2011 Fixed
Description
If the MobiLink Server's memory use grew more than 4GB in less than 5 minutes, the TRACKED_MEMORY ppv value would have been incorrect. As a consequence, for all 12.0.1 platforms and non-Windows 12.0.0 platforms, the MobiLink server cache could have erroneously shrunk and not recovered. This has been fixed. A work around is to use a larger -cinit option value, and if the problem persists to disable dynamic cache resizing by specifying the same value for -cmax and -cmin.



Also, on 12.0.0 for Windows, the cache could have failed to stabilise. This has also been fixed.



CR:657970
CR Number:   657970
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3782 27 Aug 2012 Fixed
Description
As of 12.0.1, a version 12.0.1 EBF can be applied to a version 12.0.0 installation, as long as certain conditions are met. In this case, any 12.0.0 components are upgraded to version 12.0.1. This was happening without warning the user that they will be upgrading to a newer version, rather than just a newer build number. This has been fixed. The installer now warns that the software will be upgraded and asks if the user would like to continue.



CR:657979
CR Number:   657979
Product Name:   MobiLink
Product Component:   Monitor
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3286 10 Feb 2011 Fixed
12.0.0 2644 10 Feb 2011 Fixed
11.0.1 2560 10 Feb 2011 Fixed
Description
The MobiLink Monitor's Zoom To Selection menu or toolbar button might not have panned to the selected synchronization until it was used a second time. This has been fixed.



CR:657987
CR Number:   657987
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3287 10 Feb 2011 Fixed
12.0.0 2644 10 Feb 2011 Fixed
11.0.1 2561 10 Feb 2011 Fixed
10.0.1 4183 10 Feb 2011 Fixed
Description
The server could have crashed, or failed assertion 200114, when processing a LIKE predicate. This has been fixed.



CR:658114
CR Number:   658114
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3290 15 Feb 2011 Fixed
12.0.0 2646 15 Feb 2011 Fixed
11.0.1 2563 15 Feb 2011 Fixed
10.0.1 4185 15 Feb 2011 Fixed
Description
The server would have crashed if a SELECT statement useed the FOR XML EXPLICIT clause, and a null value was used for the CDATA directive. This has been fixed



CR:658121
CR Number:   658121
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3287 10 Feb 2011 Fixed
12.0.0 2644 10 Feb 2011 Fixed
11.0.1 2561 10 Feb 2011 Fixed
Description
On some Windows machines, attempting to make a TCP connection to a Personal Server on the same machine may have failed. This has been fixed.



CR:658130
CR Number:   658130
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)
12.0.1 3287 11 Feb 2011 Fixed
Description
SQL Anywhere web client procedures were not able to proxy https requests. This has been fixed.



The following example routes an https request destined for 'securehost' (default port 443) through a proxy host named 'squid' listening on port 8080:



create or replace procedure test()

URL 'https://securehost/service'

TYPE 'HTTP:GET'

PROXY 'http://squid:8080';



CR:658169
CR Number:   658169
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3281 11 Feb 2011 Fixed
11.0.1 2554 11 Feb 2011 Fixed
12.0.0 2645 11 Feb 2011 Fixed
Description
When using the Service utility (dbsvc) for Linux to create an automatic service (when the machine boots) on Linux SUSE 11 for the SQL Anywhere server, the server may have started before the network service had been started. As a result, some applications running inside the SQL Anywhere server may have failed to work properly. This issue would have affected SQL Anywhere Server Monitor deployments. This has been fixed.



CR:658189
CR Number:   658189
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3287 11 Feb 2011 Fixed
12.0.0 2644 11 Feb 2011 Fixed
Description
If a copy node (S3) was starting just as its intermediate node parent (S2) was receiving pages from the root (S1), S3 could have failed to receive some of the pages and would have reported a corrupt transaction log file. This has been fixed.



CR:658302
CR Number:   658302
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3288 11 Feb 2011 Fixed
12.0.0 2645 11 Feb 2011 Fixed
11.0.1 2561 11 Feb 2011 Fixed
10.0.1 4183 11 Feb 2011 Fixed
Description
If many contiguous index entries were removed from an index with no intervening inserts, concurrent snapshot transactions could have seen incorrect results, and in rare circumstances, foreign rows could have been added without matching primary rows. This has been fixed.



CR:658330
CR Number:   658330
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3297 02 Mar 2011 Fixed
12.0.0 2652 02 Mar 2011 Fixed
11.0.1 2569 02 Mar 2011 Fixed
Description
Execution of an INSERT ON EXISTING UPDATE statement, with CASCADE as the foreign key update option, would have resulted in a foreign key constraint violation error when updating values which were logically the same, but had different physical representation. For example, in case insensitive database changing 'EMPLOYEE' to 'employee'. This has been fixed.



CR:658334
CR Number:   658334
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3289 15 Feb 2011 Fixed
12.0.0 2646 15 Feb 2011 Fixed
11.0.1 2562 15 Feb 2011 Fixed
Description
If a database option value contained a single quote, the reload script generated by the Unload utility would have resulted in a syntax error when the database was reloaded. This has been fixed.



CR:658453
CR Number:   658453
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3289 15 Feb 2011 Fixed
12.0.0 2646 15 Feb 2011 Fixed
11.0.1 2562 15 Feb 2011 Fixed
10.0.1 4184 15 Feb 2011 Fixed
Description
When using MobiLink synchronization and timestamp-based downloads with an Oracle Real Application Cluster (RAC) system, there is a chance of missing rows to be downloaded if the clocks of the Oracle cluster nodes differ by more than the time elapsed between the MobiLink server fetching the next last download timestamp and fetching the rows to be downloaded. This problem is unlikely on a RAC system with synchronized node clocks, but the likelihood increases with larger node clock differences. A workaround is to create either a modify_next_last_download_timestamp or modify_last_download_timestamp script to subtract the maximum node clock difference.



Note that at least since version 10i, Oracle has recommended using Network Time Protocol (NTP) to synchronize the clocks on all nodes in a cluster, and NTP typically runs by default on Unix and Linux. With cluster nodes properly configured to use NTP, their clocks should all be within 200 microseconds to 10 milliseconds (depending on the proximity of the NTP server). Since Windows Server 2003, the Windows Time Service implements the NTP version 3 protocol and it runs by default. Also, as of version 11gR2, Oracle Clusterware includes the Oracle Cluster Time Synchronization Service (CTSS) to either monitor clock synchronization or, if neither NTP or Windows Time Service is running, it will actively maintain clock synchronization. However CTSS and Windows Time Service are less accurate than NTP,



To avoid missing rows when Oracle RAC node clocks differ by up to one second more than the time between fetching the next_last_download_timestamp and the rows to be downloaded, now the MobiLink server will subtract one second from the next_last_download_timestamp fetched from the consolidated database, if

1) the Oracle account used by the MobiLink server has execute permission for SYS.DBMS_UTILITY,

2) the consolidated database is an Oracle RAC system,

and (only for MobiLink version 12.0.0 and up)

3) there is no generate_next_last_download_timestamp script.



For Oracle RAC node clocks that may differ by greater amounts, you can avoid the problem by defining a generate_next_last_download_timestamp, modify_next_last_download_timestamp or modify_last_download_timestamp script to compensate for the maximum node clock difference.



CR:658458
CR Number:   658458
Product Name:   SQL Anywhere Monitor
Product Component:   SQL Anywhere Monitor
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3288 14 Feb 2011 Fixed
12.0.0 2645 14 Feb 2011 Fixed
Description
When editing options for configuration, but not editing Data Reduction, a warning message for Data Reduction was displayed. This has been fixed.



CR:658482
CR Number:   658482
Product Name:   MobiLink
Product Component:   Monitor
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3289 15 Feb 2011 Fixed
12.0.0 2646 15 Feb 2011 Fixed
11.0.1 2562 15 Feb 2011 Fixed
Description
When a MobiLink Monitor instance that already had a horizontal scroll bar, was connected to a MobiLink server, the Utilization Graph time scale (if Utilization Graph was enabled) would have been different than the Chart time scale. After being connected long enough for the horizontal scroll bar to be redisplayed, the scroll bar position would have been incorrect and the Overview Marquee Tool would have fluctuated between the inconsistent time scales. This has been fixed.



A workaround is to use the Marquee Tool, or change the zoom to fix the display, or disable the Utilization Graph to prevent the problem.



CR:658549
CR Number:   658549
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3290 16 Feb 2011 Fixed
12.0.0 2646 16 Feb 2011 Fixed
11.0.1 2563 16 Feb 2011 Fixed
Description
Result set rows could have been presented in an incorrect order when all of the following conditions were present for a SQL query:

- An index existed in which the first column (say col1) was specified to be in descending order

- The query contained a search condition of the form "col1 LIKE expression" where the expression started with non-wildcard characters.

- The query contained an ORDER BY starting with col1



This has been corrected.



CR:658710
CR Number:   658710
Product Name:   MobiLink
Product Component:   Relay Server
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3291 16 Feb 2011 Fixed
12.0.0 2563 16 Feb 2011 Fixed
12.0.0 2647 17 Feb 2011 Fixed
Description
When the Relay Server was being reconfigured, a crash may have occurred in the rs_client.dll, and all http requests served by the same worker process would have failed. The web server would then have replenished the worker pool and the Relay Server would have continued to operate with the new configuration. The issue is highly timing sensitive and is very difficult to reproduce. This crash has now been fixed.



CR:658834
CR Number:   658834
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.0 2647 25 Feb 2011 Fixed
Description
Attempts to apply an EBF install could have erroneously rolled back during the SQL Anywhere Monitor data migration. This has been fixed



CR:658845
CR Number:   658845
Product Name:   UltraLiteJ
Product Component:   Runtime
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3290 16 Feb 2011 Fixed
12.0.0 2646 16 Feb 2011 Fixed
11.0.1 2563 16 Feb 2011 Fixed
Description
Result set rows could have been presented in an incorrect order when all of the following conditions were present for a SQL query:

- An index existed in which the first column (say col1) was specified to be in descending order

- The query contained a search condition of the form "col1 LIKE expression" where the expression started with non-wildcard characters.

- The query contained an ORDER BY starting with col1



This has been corrected.



CR:658849
CR Number:   658849
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 17 Feb 2011 Fixed
12.0.0 2647 17 Feb 2011 Fixed
11.0.1 2564 17 Feb 2011 Fixed
Description
If an application on a Unix system attempted to make a TCP/IP connection to a server that was not running, the connection attempt may have failed with error code -832 "Found server but communication error occurred". This has been fixed, the correct error code should be

-100 "Database server not found".



CR:658860
CR Number:   658860
Product Name:   MobiLink
Product Component:   Java Plugin for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3291 17 Feb 2011 Fixed
12.0.0 2647 17 Feb 2011 Fixed
11.0.1 2563 17 Feb 2011 Fixed
Description
Sybase Central would have crashed when using the QAnywhere plugin to define a property for a connector and the property was given both a blank name and value. Now, the creation of properties with blank names is prevented, as these are meaningless in any case. A message box indicating that the property name must not be empty is displayed.



CR:658887
CR Number:   658887
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3291 16 Feb 2011 Fixed
12.0.0 2647 16 Feb 2011 Fixed
11.0.1 2563 16 Feb 2011 Fixed
10.0.1 4185 16 Feb 2011 Fixed
Description
The OLE DB DBSCHEMA_FOREIGN_KEYS rowset returned the following indicated integer values for the UPDATE_RULE or DELETE_RULE referential actions.



CASCADE 0

if referential action is NULL 1

SET NULL 2

SET DEFAULT and RESTRICT 3



These values, derived from the ODBC SQLForeignKeys result set, did not match the following OLEDB constants defined for these referential actions.



DBUPDELRULE_NOACTION = 0x0

DBUPDELRULE_CASCADE = 0x1

DBUPDELRULE_SETNULL = 0x2

DBUPDELRULE_SETDEFAULT = 0x3



Furthermore, the DBSCHEMA_FOREIGN_KEYS rowset should have returned strings rather than integers for the UPDATE_RULE or DELETE_RULE referential actions. The OLE DB specification states:



If a rule was specified, the UPDATE_RULE or DELETE_RULE value is one of the following:

"CASCADE" A <referential action> of CASCADE was specified.

"SET NULL" A <referential action> of SET NULL was specified.

"SET DEFAULT" A <referential action> of SET DEFAULT was specified.

"NO ACTION" A <referential action> of NO ACTION was specified.

Providers should return NULL only if they cannot determine the UPDATE_RULE or DELETE_RULE. In most cases, this implies a default of NO ACTION.



Also, the fix for Engineering case 620136 did not handle the situation when there was no declared Primary Key in the primary table but there were table or column (not nullable) Unique Constraints that permitted the addition of foreign keys.



These problems have been fixed. The Upgrade utility should be used to update the OLE DB schema rowset support in any database used with ADO, ADOX or OLE DB.



CR:658985
CR Number:   658985
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 18 Feb 2011 Fixed
12.0.0 2648 18 Feb 2011 Fixed
11.0.1 2564 18 Feb 2011 Fixed
Description
Unexpected deadlocks could have occurred when using the UPDLOCK hint at isolation level 3. For example, if two transactions issued the statements

SELECT t.c FROM t WITH (UPDLOCK) WHERE t.pk = 1

UPDATE t SET c = 2 WHERE t.pk = 1

concurrently at isolation level 3, a deadlock would have occurred if both connections managed to issue the SELECT before either issued the UPDATE. This has been fixed.



CR:659115
CR Number:   659115
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3309 22 Mar 2011 Fixed
12.0.0 2661 22 Mar 2011 Fixed
11.0.1 2569 22 Mar 2011 Fixed
Description
The server may have crashed if a query block contained an alias definition and the expression of the alias used columns that could be folded as a constant, (in the example below, alias v011 can be folded as a constant if column T2.a2 was created as NOT NULL), and the alias name was used in a subselect of the query block and in the GROUP BY clause of the query block.



For example:



select if T2.a2 is null then 99999 else 11111 endif as v011,

(select count(*) from T1 where T1.a1 = v011) as c

from T2,T3

where T2.a2 = T3.a3

group by v011



This has been fixed.



CR:659138
CR Number:   659138
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3360 25 May 2011 Fixed
12.0.0 2688 25 May 2011 Fixed
11.0.1 2612 25 May 2011 Fixed
Description
In exceptionally rare cases, the server may have crashed if two procedure debuggers had been attached to a database and one of them disconnected while a new connect request for a user to debug was being executed. This has been fixed.



CR:659140
CR Number:   659140
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 18 Feb 2011 Fixed
12.0.0 2647 18 Feb 2011 Fixed
Description
The text completer may not have suggested any matches if there was an empty single quoted string earlier in the statement, or in a previous statement. This has been fixed.



CR:659177
CR Number:   659177
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 18 Feb 2011 Fixed
12.0.0 2647 18 Feb 2011 Fixed
11.0.1 2564 18 Feb 2011 Fixed
Description
If a non-initialized materialized view or text index was selected in the tree and the Data tab was selected in the right-pane, then attempting to switch from one mode (Design, Debug or Application Profiling) to another would have caused a refresh of the materialized view or text index to be prompted for twice. This has been corrected so that there is now only one prompt.



CR:659337
CR Number:   659337
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 18 Feb 2011 Fixed
12.0.0 2648 18 Feb 2011 Fixed
Description
SQL changes in the Plan Viewer and Spatial Viewer windows were ignored if the Editor component had been selected, "Options" was clicked and then dismissed by clicking "OK". This has been fixed.



This issue had at least one other symptom: If a file was opened, "Options" for the editor was selected, either by right-clicking as described above or by opening the Options window, then clicked "OK", subsequent changes in the Editor would not have caused the Interactive SQL utility's window title text to include an asterisk. The asterisk indicates that there are unsaved changes in the editor.



CR:659357
CR Number:   659357
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3281 18 Feb 2011 Fixed
12.0.0 2645 18 Feb 2011 Fixed
11.0.1 2563 18 Feb 2011 Fixed
Description
Running the Deployment wizard when SQL Anywhere had been installed to directory with a path containing multi-byte characters would have caused the generation of the MSI to fail with an error like: "C:\Sy绛剧讲\SQL Anywhere 12\bin32\dblib12.dll (Not Found)". This has been fixed.



CR:659363
CR Number:   659363
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)
12.0.1 3292 22 Feb 2011 Fixed
12.0.0 2648 22 Feb 2011 Fixed
11.0.1 2564 22 Feb 2011 Fixed
Description
The Timeout, SendBufferSize, and ReceiveBufferSize TCP options now have upper limits. Values specified above these limits will result in connection failure (-832). The limits are:

Timeout: 3600 seconds

SendBufferSize: 1048576 bytes (1 MB)

ReceiveBufferSize: 1048576 bytes (1 MB)



CR:659370
CR Number:   659370
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3294 23 Feb 2011 Fixed
12.0.0 2650 23 Feb 2011 Fixed
Description
Inlining of simple functions could have generated unexpected errors or incorrect results. For incorrect results to have occurred, the caller of the function had to have variables defined with the same names as the inlined function. This has been fixed.



CR:659608
CR Number:   659608
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   10.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3342 25 Apr 2011 Fixed
12.0.0 2677 25 Apr 2011 Fixed
11.0.1 2600 25 Apr 2011 Fixed
10.0.1 4218 25 Apr 2011 Fixed
Description
When making an external environment call, if the external environment procedure made a server side request that ended up leaving a cursor on a temporary table open, then the server could have crashed when the connection was closed. This problem has now been fixed.



CR:659615
CR Number:   659615
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3292 22 Feb 2011 Fixed
Description
Some internal optimization algorithms have been generalized and improved. This may change plans for queries.



CR:659631
CR Number:   659631
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)
12.0.1 3294 23 Feb 2011 Fixed
12.0.0 2649 23 Feb 2011 Fixed
11.0.1 2566 23 Feb 2011 Fixed
10.0.1 4188 23 Feb 2011 Fixed
Description
If an application enlisted a connection within a DTC transaction and then subsequently attempted to perform a DTC commit on the transaction after explicitly unenlisting it first, then the application would have hung until the server was shut down. This problem has now been fixed and the commit request will now immediately fail as expected.



CR:659639
CR Number:   659639
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3294 22 Feb 2011 Fixed
12.0.0 2649 22 Feb 2011 Fixed
11.0.1 2566 22 Feb 2011 Fixed
Description
When making a Java external environment call, if the stored procedure had an argument of type char (note that this is a single char value rather than a java.lang.String), and a NULL value was passed in for the char argument, then the server would have failed the request with a Java NullPointerException. It should be noted that the Java VM would have continued to run in this situation and the connection was still able to make subsequent Java external environment calls. This problem has now been fixed such that passing a NULL char value to a Java external environment call will result in a char with zero value being passed down to the Java method. Again, it should be noted that this problem does not affect passing NULL string values to java stored procedures.



CR:659643
CR Number:   659643
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3294 23 Feb 2011 Fixed
12.0.0 2649 23 Feb 2011 Fixed
11.0.1 2566 23 Feb 2011 Fixed
Description
An application could have crashed if it was attempting an Integrated Login or Kerberos connection and the connection to the server was lost. This could have occurred if the server was stopped or terminated during the connection. This has been fixed.



CR:659804
CR Number:   659804
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3294 23 Feb 2011 Fixed
Description
If a proxy table or proxy procedure was defined with variables in the AT clause, then the AT clause would have been incorrectly truncated if the length of the AT clause after variable expansion was greater than the length of the original AT clause. This problem has now been fixed.



CR:659866
CR Number:   659866
Product Name:   UltraLite
Product Component:   UL Java Provider for Sybase Central
Status:   Closed
OS:   Generic
Original Version:   11.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3294 23 Feb 2011 Fixed
12.0.0 2650 23 Feb 2011 Fixed
11.0.1 2566 23 Feb 2011 Fixed
Description
If an invalid value was specified for the "(other)" parameter on the Synchronization Profile property sheet, then it was not possible to clear this invalid value unless the property sheet was closed and F5 was pressed. This has now been fixed.



CR:659870
CR Number:   659870
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3296 28 Feb 2011 Fixed
Description
Empty string values indexed by an IMMEDIATE text index were not counted towards the total number of documents indexed, unless more than one column was indexed and the value in at least one of the columns was neither an empty string nor NULL. This problem caused scores for full text queries to be lower then they should have been if all the documents were correctly counted. Additionally, a memory leak could have occurred in this situation. This has been fixed.



Note, if a text index was created or updated using a server with this problem, it may be necessary to rebuild the index with an updated server if problems are encountered with the index.



CR:659922
CR Number:   659922
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 25 Feb 2011 Fixed
12.0.0 2650 25 Feb 2011 Fixed
11.0.1 2567 25 Feb 2011 Fixed
Description
A syntax error could have been incorrectly generated for an outer reference occurring in a subquery containing another nested subquery, where the outer reference was to the right of the nested subquery. This has been corrected.



CR:660005
CR Number:   660005
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 24 Feb 2011 Fixed
12.0.0 2650 24 Feb 2011 Fixed
Description
If a file was opened in the Interactive SQL utility and then the window was closed, the file would still have been locked by the dbisql process if the "Enable fast launcher" option was on. This has been fixed.



CR:660024
CR Number:   660024
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.1 2567 24 Feb 2011 Fixed
Description
In version 10, web service requests sent to a server acting as mirror would have been redirected to the same port on the primary server. Starting with version 11, this redirection no longer happens. In version 12, the documentation was updated to reflect the change in behavior.



No change in behavior from earlier builds of version 11 should be seen with this software change.



CR:660057
CR Number:   660057
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 25 Feb 2011 Fixed
12.0.0 2650 25 Feb 2011 Fixed
11.0.1 2567 25 Feb 2011 Fixed
Description
If a foreign key was created with both MATCH and CHECK ON COMMIT clauses, and the database subsequently required recovery, recovery would have failed when replaying the statement from the transaction log. This has been fixed.



CR:660190
CR Number:   660190
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   12.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 25 Feb 2011 Fixed
Description
The folder names under %SQLANYSAMP12%\UltraLiteJ\Android\CustDB used mixed case and in some cases were incorrect in the GA release of 12.0.1. This caused Eclipse to fail when building the sample. This has been fixed such that future remastered releases will use the correct case. However, EBF installs will not fix these incorrect folder names. A workaround is as follows:



Before attempting to build the sample in Eclipse, ensure that the sub-directory names are as show below. Note that all names are lower case and that hyphens (-) should be used, not underscores (_), where applicable.

libs

res

src

libs\armeabi

res\drawable-hdpi

res\drawable-ldpi

res\drawable-mdpi

res\layout

res\menu

res\values

src\com

src\com\sybase

src\com\sybase\custdb



CR:660194
CR Number:   660194
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 25 Feb 2011 Fixed
12.0.0 2651 25 Feb 2011 Fixed
11.0.1 2567 25 Feb 2011 Fixed
Description
Execution of a query on a Directory Access proxy table with a WHERE clause that contained a predicate of the form "file_name = variable", may have sometimes run very slowly while running very quickly most other times. This problem has now been fixed such that the query performance is now consistently fast from one run to the next.



CR:660204
CR Number:   660204
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3297 28 Feb 2011 Fixed
12.0.0 2652 28 Feb 2011 Fixed
11.0.1 2567 28 Feb 2011 Fixed
Description
Specifying a TCP timeout value of more than 2147 seconds could have caused connection failures. This has been fixed.



CR:660211
CR Number:   660211
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   12.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 25 Feb 2011 Fixed
12.0.0 2650 25 Feb 2011 Fixed
11.0.1 2592 19 Apr 2011 Fixed
Description
In rare circumstances, calling the system procedures sa_locks, sa_describe_shapefile, st_geometry_dump, sa_list_cursors, or sa_mirror_server_status, could have caused the server to crash, or could have caused unpredictable behaviour. The problem was more likely to have occurred when small cache sizes were used. This problem has been fixed.



CR:660217
CR Number:   660217
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
25 Feb 2011 Fixed
Description
SQL Anywhere's SQL Flagger erroneously flagged various syntactic constructions as errors with specific standards (with either Core or Package functionality).These included:

- the WHILE statement

- a list of DECLARE statements within a batch, procedure, function, or trigger

- UNSIGNED exact numeric types



This has been fixed.



CR:660235
CR Number:   660235
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)
12.0.1 3295 28 Feb 2011 Fixed
12.0.0 2651 28 Feb 2011 Fixed
11.0.1 2567 28 Feb 2011 Fixed
Description
On Windows Vista and later operating systems, whenever a new server executable had to be launched in order to autostart a database, launching the executable may have failed when a relative path to the server executable was specified. For example, dbspawn mybin\dbsrv12.exe -n myserver my.db, or using "...;start=mybin\dbsrv12.exe..." in a connection string, could have fail to launch the server executable. This problem has been fixed.



CR:660248
CR Number:   660248
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3296 28 Feb 2011 Fixed
12.0.0 2652 28 Feb 2011 Fixed
11.0.1 2568 28 Feb 2011 Fixed
Description
If an application connected via jConnect or Open Client and made an external environment call that returned a result set, then the server may have crashed. This problem has now been fixed.



CR:660263
CR Number:   660263
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   11.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
12.0.1 3295 28 Feb 2011 Fixed
12.0.0 2651 28 Feb 2011 Fixed
11.0.1 2568 28 Feb 2011 Fixed
Description
Incorrect results were possible for a deeply nested (at least a depth of three) aggregate subquery. This has been corrected.





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