Advantage Developer Zone

 
 
 

Advantage Product Download







Advantage Database Server Release 9.1 for Windows x86 32-bit

This release is unsupported. Downloads provided as a courtesy.

Version:          
    9.10.0.35

Notes:
    9.10.0.35 - Advantage Database Server

This Service Update of the Advantage Database Server addresses the following issues:

  1. Fixed a bug in the replication engine that caused invalid connections to be kept in the connection pool. When a connection receives a 6000 class error, it typically cannot be used any more, but the replication engine kept such connections in the pool until they were timed out.


  2. Fixed a bug that allowed tables to be deleted from the data dictionary while the table had active replication queue entries. This could occur if the base table name was longer than 24 characters.


  3. Changed the query engine to handle DOUBLE column definitions with 0, 1, and 2 parameters.


  4. Fixed a bug in the server that could result in the logging of a 9107 error.


  5. Fixed an issue where the server could fire incorrect trigger types if the client had the SHOW DELETED setting on, deleted records existed, and updates were being performed on deleted records.


  6. Fixed an issue where indexes built prior to 9.10.0.21 or 10.0.0.3 but used with aforementioned versions or newer caused 4004 errors.


  7. Fixed a bug in the server that could result in query elements being leaked on the server by calls to sp_WaitForEvent and sp_WaitForAnyEvent. This could result in access violations and 9003 errors when used with .NET clients.


  8. Fixed a bug that could result in 9111 errors when using temporary tables when the physical file path length exceeded the length of the network share path.


  9. Fixed a bug that caused the YEAR AOF function to be incorrectly optimized when used in conditions that were not checking for strict equality (e.g., less than, greater than, etc.).


  10. Fixed a bug in the server that could result in an access violation in the server if some rare conditions were met and the sp_mgKillUser or AdsMgKillUser APIs were used while a connection was in progress.


  11. Fixed a bug that caused incorrect SQL progress information being returned when a "CREATE INDEX ..." statement was part of the SQL script. This bug could lead to an "Invalid floating point operation" error when the SQL script is very large.


  12. Fixed a bug that caused the SHOW PLAN statement to hang when using an IDX (non-structural) index.


  13. Fixed a bug in the Linux server that could result in users being timed out incorrectly. This could result in 7020 errors being logged and possibly 7209 errors being returned to the client.


  14. Fixed a bug in the server that could result in unexpected 5041 errors and possibly a server crash when running triggers on many threads concurrently.


  15. Fixed a 9094 error when executing a stored procedure in a loop using UDP on a network that has packet loss issues.


  16. Fixed a 9066 error caused by canceling an SQL statement that caused an auto-create of an index inside of a transaction.


  17. Fixed a 7028 error when modifying a view statement involving tables opened with compatibility locking.


  18. Fixed an access violation when restoring a data dictionary with the incorrect password.


  19. Fixed an issue where large blob transfers via the TCP protocol could result in 6412 errors on the client, or could cause the server to log a 10055 error and the client to hang.


  20. Fixed a spurious 5068 error when creating referential integrity rules.


  21. Fixed an issue where a malformed UDP login packet could cause the server to crash. This vulnerability could be used in a denial of service attack against Advantage servers. The loss of data or any form of data corruption is not likely. Execution of malicious code is not possible.


  22. Changed a 9046 error into a 5072 error produced when a differential backup destination table or dictionary is read-only.


  23. Fixed a bug that prevented an SQL query with GROUP BY on an expression using a user-defined function from being executed. An example statement that failed to executed was: SELECT fn1( x ) FROM table1 GROUP BY fn1( x )


  24. Fixed a bug that could cause a trigger script to fail if the last statement executed in the script was a SELECT statement.


  25. Fixed a bug that allowed package names to contains spaces.


  26. Fixed a bug in the SQL query engine that caused poor query performance when a view or subquery was used as part of a multi-table join.


  27. Fixed a bug that caused poor SQL query performance when the join condition was only partially optimized.


  28. Fixed a bug that prevented cartesian joins in SQL from being canceled.


  29. Fixed a bug that caused SQL queries to fail when no precision value was specified for the resultant data type when using the CAST() or CONVERT() scalars.


  30. Fixed a bug that caused a 2136 error when using ARC to create a User Defined Function that has a Double type as an input parameter or return value.


  31. Fixed a bug that could lead to a server crash when executing an SQL statement whose WHERE clause included thousands of conditions combined with the OR operator.


  32. Fixed a bug that could cause 2111, "Out of range", error being returned when the CAST() scalar is used to convert a value into SQL_BINARY or SQL_VARBINARY type without specifying the precision of the result.


  33. Fixed a bug that led to an incorrect number of rows being returned for SQL statements of the form "SELECT TOP x PERCENT 'abc' FROM ...". The problem occurred when the select list had only constant or literal values.


  34. Fixed a bug in the SQL engine that caused a failure when a precision numeric value was used as the input parameter for the sqrt(), log(), log10, and atan2() scalars.




9.10.0.21 - Advantage Database Server

This Service Update of the Advantage Database Server addresses the following issues:

  1. Fixed a bug that allowed applications to store invalid IEEE floating point values in fields of type double.


  2. Fixed an issue that could cause a 5035 and 7078 error when multiple local server threads or processes were logging in as ADSSYS at the same time.


  3. Fixed an issue where a subindex build on a shared master index could return a 9071 error if other users modified the master index while the subindex was being built.


  4. Updated the server to not log spurious 7008 and 7039 errors during replication.


  5. Fixed a broken link in the help file "Supported SQL Statements" topic.


  6. Fixed an error logging issue that caused the server to log a 9094 error in a situation caused by a client communication error. 9000 class errors cause the server to produce a crash dump file. It now logs a 7000 class error and continues processing.


  7. Fixed an issue that can lead to a server crash after a corrupt index file is opened.


  8. Enhanced the sp_restoredatabase() procedure to allow members of the DB:Backup and DB:Admin groups to restore the database.


  9. Fixed an issue where the server could write a crash dump file when shutting down with active users currently committing a transaction.


  10. Fixed a bug that could cause periodic delay on a busy server performing a large number of updates.


  11. Fixed a bug in the query engine that allowed stale data to be read when using ROWID in the WHERE clause of a SELECT statement.


  12. Changed the behavior of DLL caching for AEP and trigger DLLs in Advantage Database Server for NT and Linux. Rather than unload the DLLs when the last user disconnects who was referencing the DLL, the server now keeps the DLLs loaded until the DLL is either replaced or until the server is shut down. This change was made to work around memory leaks in DLLs created with Delphi.


  13. Fixed a 9066 error when canceling a query that was in the process of building a temporary index.


  14. Fixed a 9009 error when opening a Visual FoxPro DBF table when the number of fields is greater than the stored information in the data dictionary.


  15. Improved Linux server's handling of Server-Side aliases that are configured with UNC paths.


  16. Fixed a bug that caused a 9055 error to be logged when replicating a DBF table with memo data that had been updated inside a transaction.


  17. Fixed a bug that caused a table-autocreation failure when the table was encrypted and the operation being performed was inside transaction. For example, when a trigger is being fired and it requires an encrypted table to be auto-created.


  18. Fixed a bug where a cascading RI update would fail if the primary key was a compound key and one of fields in the compound key was an autoinc field.


  19. Addressed an issue in the server that could result in large numbers of 6221 errors being logged.


  20. Fixed a bug that could result in an access violation in the server or in the client code or possibly result in a 6605 being returned to the client. It could occur in very specific situations involving live cursors having WHERE clauses exceeding 64K.


  21. Fixed a bug in the server that made it possible for an access violation to occur if an invalid authentication request was made for an existing data dictionary connection.


  22. Fixed a bug that could result in a server crash if the WHERE clause of a query was slightly less than 1024 bytes in length. Additional conditions had to be met for this to occur: 1) Field names involved in the WHERE clause had to be 2 characters in length, and 2) the column position had to be 10 or greater.


  23. Fixed a bug in the server that resulted in an access violation when ALTER FUNCTION changed a function having one or more parameters to one that had no parameters.


  24. The Advantage help file has been repackaged as a Microsoft Compiled HTML Help.


  25. Fixed a bug that caused backups of Visual FoxPro DBF tables with long field names to return a 5012.


  26. Fixed a 9071 error when using VFP tables with after insert triggers.


  27. Fixed an issue that would prevent sp_DisableQueryLogging from disabling the query log if the current connect path differs from the connect path used to enable query logging.


  28. Fixed an error that can cause a 9095 to be logged when shutting down a server with an expired evaluation license.


  29. Fixed an issue that could lead to an incorrect 5088 error when executing certain SQL statements that reference DBF tables with numeric fields.


  30. Modified the server to not generate crash dump when invalid data is received from the connection request listening socket.


  31. Fixed an issue where backup and table creation could sometimes create filenames with all uppercase characters, rather than preserving the character case.


  32. Fixed a bug that caused mixed cased file name/extension being stored in the data dictionary for the auto-open index files. The mixed cased file name may cause table open failure on Linux server.


  33. Fixed an issue where a reindex operation would lose index conditions on IDX index files.


  34. Fixed an issue where running multiple backups at the same time would report blurry snapshots (error 5200) even when other threads where not active and could not affect the validity of the backup image.


  35. Fixed a bug in the server that caused OEM data in DBF tables to be replicated incorrectly if the table was replicated to more than one target.


  36. Fixed a 7105 error when cleaning up a failed transaction on an FTS index at startup.


  37. Modified replication processing algorithm for improved performance when there are many deleted records in the replication queue.


  38. Fixed a memory leak that can be caused by replicating OEM memo data to multiple targets. The error only exists in v9.10.0.20.


  39. Fixed a rare deadlock situation with referential integrity.


  40. Fixed bug in the server that caused incorrect result being returned when setting an AOF in the form "EMPTY(fld) = FALSE". This bug also affected SQL statement with such expression in the WHERE clause.


  41. Changed the DBF header date to be compatible with 3rd party utilities.


  42. Fixed an issue that could cause the server to deadlock and hang when shutting down with active users.


  43. Fixed a bug that may cause 4004 error when an index is built using expression with LEFT(), RIGHT() or SUBSTR().


  44. Fixed an issue where using a special character in a column alias name could cause the server to hang.


  45. Fixed bug that caused 7112 error being returned when trying to zap a temporary table using the sp_ZapTable() stored procedure.


  46. Fixed a bug that may cause server crash when subquery is used as the count expression in a "SELECT COUNT( DISTINCT ... )" query.


  47. Fixed an issue where using a binary parameter or variable inside a user defined function (UDF) could sometimes result in a native error 2101, "Memory Allocation Error".


  48. Fixed a bug that caused the SQL engine to erroneously short circuit the execution of a user defined function.


  49. Fixed a performance issue when executing a query that used a temporary index on a rapidly changing table.


  50. Fixed a bug that caused query performance to degrade when the data distribution in the underlying tables changed. The query optimizer was using stale information to generate the execution plan.


  51. Fixed a bug in the SQL engine that caused a 9111 error on the server when a UDF was used in the statement's WHERE clause, and predicate substitution optimization was a viable option.


  52. Fixed a bug that causes incorrect query result or incorrect error when multiple UDF are present in the GROUP BY clause.


  53. Fixed an issue with the IIF and CASE scalars when they return BLOB values.


  54. Fixed issue where time value comparison behavior in SQL changed from v8.1.


  55. Enhanced the SQL query engine to use available index to optimize YEAR(), MONTH(), DAY() and EMPTY() scalar if the corresponding indexes are available.


  56. Fixed a bug in the SQL query execution plan retrieval that may cause server crash.


  57. Fixed a bug that caused access violation when a user defined function returned character string that is longer than the function's declared return type.


  58. Fixed an issue where a static query can return the wrong results if using a <= or >= operator in the WHERE clause and the field reference is on the right side of the comparison.




9.10.0.9 - Advantage Database Server

This Service Update of the Advantage Database Server addresses the following issues:

  1. Fixed an issue that could cause 9063 errors to be logged when appending records to Visual FoxPro (ADS_VFP) tables with referential integrity (RI) rules.


  2. Fixed an issue in the server where the use of empty date parameters in Visual FoxPro (through ODBC) resulted in 2109 conversion errors.


  3. Fixed an issue in the server where replication would not work if permissions checking was turned on and the first connection to the dictionary after a server restart was an anonymous connection (a connection without a user name).


  4. Fixed an issue in the server that could result in 9000 errors (9067, 9070, 9025) and 8025 errors when using UDP/IP communications.


  5. Fixed an issue in the Windows server installs where the values of the SQL_SORT_BUFFER and MAX_CACHE_MEMORY configuration values were not propagated during an upgrade.


  6. Modified the configuration utility for Windows to include a checkbox to control the non-exclusive proprietary locking mode option. This option can also be set via the installer's setup.ini file or directly via the registry.


  7. Fixed an issue in the server that made it possible for a 9095 error to be logged when the Advantage Database Server service was shutdown.


  8. Fixed an issue in the server that prevented the ads_err.adt error log from being copied while Advantage Database Server had it open.


  9. Fixed the adsstamp utility silent upgrade option to accept a new serial number & valcode on the command line.


  10. Fixed an issue in the server that made it possible for an SQL query to return stale data.


  11. Fixed an issue that caused a 9077 error when zapping a table.


  12. Fixed an issue which could cause a 9060 error or the server to hang when running a 64 bit server on 64 bit linux.


  13. Fixed an issue in the server where it was possible to read invalid memo data. If one user read a record and another user updated the memo or BLOB data for that record before the first user read the memo, it could result in the first user reading incorrect memo data.


  14. Changed the system view and system.publications tables to return a relative path for the column Replication_Queue. This fixes an issue in Advantage Data Architect where an incorrect SQL creation script would be generated.


  15. Fixed an issue in the server that caused the SQL clause "WHERE field IS NULL" to not be optimized even though the index existed on the field.


  16. Fixed an issue that caused optimized filters to not be optimized when the filter's expression used a scalar function and the table had a field name that partially matched the scalar function name. For example, when the AOF expression was "FLD = STOD('19990217') and the table had a field named "ST" or "TOD". This bug only affected DBF tables.


  17. Reduced blocking of read operations on an index file when concurrently flushing large amounts of cached updates.


  18. Fixed an issue during a backup operation that created a memo file with an 8 byte block size instead of using the same memo block size as the source table. This issue would lead to memo corruption in the backup table when the memo file was greater than 32GB.


  19. Fixed an issue backing up tables with server names 15 characters long.


  20. Fixed an issue where CREATE DATABASE and CREATE TABLE calls would return a 7040 error if the subdirectories specified did not already exist. The directories are now created automatically.


  21. Fixed a bug that caused the database restore functionality (e.g., sp_RestoreDatabase) to incorrectly return error code 1 when attempting to restore a database onto an open data dictionary.


  22. Updated the AdsBackup.exe utility to not require the v9.x ACE DLLs. The updated version will now work with older ACE DLLs.


  23. Fixed an issue in the server that could result in an access violation in rare circumstances when a client using inter-process communications disconnects.


  24. Fixed an issue in the server where it was possible for differential backups to corrupt the memo data in the backup table.


  25. Improved performance when creating many indexes on a # temporary table.


  26. Fixed a rare deadlock situation with referential integrity.


  27. Fixed an issue where the auto rebuilding of a corrupted index file could lead to a server crash when the index file was needed for referential integrity checks.


  28. Changed the Field_Options field in system.tables to return 0 in all cases rather than being NULL.


  29. Fixed an issue where a SELECT statement with a subquery in the values list that evaluates to NULL and is part of a UNION may cause the server to crash.


  30. Fixed an issue where executing a SELECT statement within a script inside a DLL AEP would not return a result set.


  31. Fixed an issue in the SQL parser that failed to parse a subquery in an algebraic expression.


  32. Fixed an issue where the sp_enablequerylogging system procedure would not log any queries when a nonzero value was specified as the MinimumTimeBeforeLogging parameter.


  33. Fixed an issue that caused regular character data types in the result cursor when they should be case insensitive character types.


  34. Fixed an issue where an incorrect warning message was generated in the query execution plan when the SQL statement was a DELETE statement.


  35. Fixed an issue where calling the sp_SetApplicationID system procedure with a NULL or empty value would crash the server.


  36. Fixed an access violation when canceling a query that was executing nested SQL stored procedure calls.


  37. Fixed a bug that caused the wrong result to be assigned to a variable when the expression was a "SELECT TOP 1 ..." query.


  38. Fixed an issue that caused error 2119 to be returned when an ORDER BY or DISTINCT clause is required on a data column that is converted or cast from an ADT CICHAR field.




9.10.0.0 - Advantage Database Server

This Service Update of the Advantage Database Server addresses the following issues:

  1. Fixed an issue where the Advantage server would not respond if it was using an evaluation serial number that had expired. This would cause clients to typically receive a 6097 error when attempting to connect. The server will now respond with a 7046 (ERR_EVAL_PERIOD_EXPIRED) error.


  2. Fixed an issue that allowed tables to be removed from publications while pending entries for that table existed in replication queues, which could result in 9126 errors being logged.


  3. Fixed issue where cancelling an index build can leave the index file in an unusable state.


  4. Fixed an issue where Linux/NetWare servers would fail to recognize Server-Side aliases that were on the last line of the server configuration file.


  5. Fixed an issue where it was possible for record decryption to fail due to concurrency problems with dynamic cursors and AOFs built on encrypted tables. The issue could affect replication and triggers and sometimes would manifest as memory allocation failures (error 7001) in the error log.


  6. Added collation tables from the ansi.chr and extend.chr files into the adscollate.adt collation repository in order to allow those collations to be loaded dynamically with the ADS_ADT and ADS_VFP table types.


  7. Fixed a bug that caused incorrect filter results when an AOF used a multi-segment index with integer column(s) to optimize a filter expression.


  8. Fixed an issue that prevented Visual FoxPro VarChar and VarBinary fields from replicating correctly.


  9. Fixed an issue where the nullflags field in Visual FoxPro tables was not correctly maintained if a record was modified during an online backup operation.


  10. Fixed a memory corruption issue when renaming a connected user.


  11. Fixed an issue where the server would crash when trying to restore a database from a corrupted backup image.


  12. Fixed an issue that prevented the server from accepting more than 1000 TCP/IP connections.


  13. Fixed an access violation when parsing options for backups.


  14. Fixed an issue where a non-ADSSYS user adding triggers to a table he/she had ALTER permissions to could cause existing triggers on the table to stop working.


  15. Fixed issue where a SELECT TOP x DISTINCT could cause an exception in the server.


  16. Fixed an issue where the server could crash after failing to allocate enough memory to read a memo field.


  17. Fixed an issue where ADS for Linux can crash if a large number of files and TCP sockets are opened when ulimit has been used to increase the number of allowed file opens.


  18. Fixed an issue where differential backups were not correctly managing recycled memo pages, which could lead to memo corruption in a restored database image. It is recommended that anyone using differential backups re-initialize their backup image after installing this service update.


  19. Fixed an issue where the server would crash if a transaction rollback could not complete because another process (a backup utility, for example) had a table, index, or memo locked at the time of the rollback operation.


  20. Fixed an issue where a server crash could occur if a trigger caused a notification event to be signaled while a connection was actively waiting for the event.


  21. Fixed an issue where the NOT BETWEEN operator was not optimized correctly and resulted in 3118 errors being logged. This issue does not affect SQL correctness.


  22. Fixed an issue where the expression parser allowed numeric values with more than one decimal point.


  23. Changed the default open behavior of files opened with Advantage proprietary locking. In the past, Advantage would open files in a "deny write" mode, allowing other non-Advantage processes to open the files read only. While this approach allows non-Advantage applications such as backup, reporting and virus scanning software to open Advantage data files, it also allows them to lock bytes in these files, which can cause Advantage read and write errors, many of which can lead to index corruption. The new default behavior for proprietary locking is to open data files exclusive, only allowing access to them via the Advantage Database Server. In this configuration backups must be done with the adsbackup.exe utility or via the sp_BackupDatabase/sp_BackupFreeTables canned procedures. If you would like to revert to earlier "deny write" behavior, see KB item 081023-2093 at http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=081023-2093


  24. Fixed an issue where a partially encrypted table's memo data could become corrupted after packing the table.


  25. Fixed a potential 9042 error when restructuring a table involved in replication.


  26. Fixed an issue that would cause ALTER TABLE to fail even when the connected user had ALTER permissions to the table.


  27. Fixed an issue where the 64 bit server online backup functionality would lose the first 4 bytes of memos associated with DBFs if the records were modified during a backup operation.


  28. Fixed an issue that could cause 9063 errors to be logged when appending records to Visual FoxPro (ADS_VFP) tables with Referential Integrity (RI) rules.


  29. Fixed an issue that caused poor query performance when a subquery was used indirectly in an algebraic expression.


  30. Fixed a server crash when executing a statement with more than 1000 UNION clauses.


  31. Fixed an issue where sp_mgGetSQLStatements incorrectly indicates that certain queries producing static cursors are active.


  32. Fixed an issue that caused the server to crash when executing an SQL script statement RAISE with NULL as the exception message.


  33. Fixed an issue in the SQL engine that caused evaluation of the boolean AND expression to return incorrect results when one of the operands was NULL.


  34. Fixed an issue where sp_GetProcedureColumns would not correctly handle procedure columns with a type of ADS_VARCHAR_FOX or ADS_VARBINARY_FOX.


  35. Fixed an issue where SQL truncation and conversion errors would not specify the column name or the error location.


  36. Fixed an issue where the query optimizer would not generate optimal execution plans for certain parameterized queries. The queries that would suffer from this issue must have at least three tables in an INNER JOIN and the parameter must be used in an equal restriction on the primary key column in one of the tables.


  37. Fixed an issue where the SQL CREATE TABLE command would not add the !Deleted() condition to a VFP table's primary key.


  38. Fixed an issue that would cause a server crash when executing an SQL query that had an empty table with deleted records and an unoptimizable constant restriction on the table.