SAP DB Release Information (7.3.00.18 to 7.3.00.29) C Precompiler: ============== PTS: 1117952 since: 7.3.00.29 Bug fixed: Fixes the bug, that an implicit type conversing from CHAR to INT isn't working for UNICODE instances which runs on platforms with big endian byte order. The CCMS uses this feature in several programs and SHORTDUMPS were generated with ERROR -9806 . PTS: 1117743 since: 7.3.00.29 Bug fixed: Fixed compiler warning on HP-UX. PTS: 1117152 since: 7.3.00.27 New Feature: The diag file ldrdiag.pct which traces loading of the precompiler runtime library is now written into the independent data directory, if exists. Otherwise, its written in the rundirectory of the precompiler application. If this fails also, its written to stderr. The writing of ldrdiag.pct can now be switched on/off by the use of the -l option of irconf. PTS: 1116537 since: 7.3.00.25 Bug fixed: If a rollback work release command failed because the serverdb is already offline. The application may crash if the Precompiler trace isn't enabled. This error is fixed now. PTS: 1115569 since: 7.3.00.25 New Feature: The Hostvartype sqlvlongdesc is for reading/and writting longcolumns piecewise This hostvartype sqlvlongdesc is now also available in the SQLMODE internal. In prior versions the hostvartype sqlvlongdesc was only available in SQLMODE Oracle. PTS: 1116250 since: 7.3.00.25 Bug fixed: Fixed wrong precompiler code expansion for SQL statements like EXEC SQL AT ; PTS: 1113408 since: 7.3.00.21 Bug fixed: Error message -702 Missing variable adress in sqlda was returned from the precompiler runtime. This error occures if you use structure members as hostvar in more than on sql command. The second sql command failed if the code from the first is never passed. This error is fixed now. PTS: 1113511 since: 7.3.00.21 Bug fixed: Error -3005 "Invalid SQL statement" during execution of EXEC SQL DESCRIBE ... is fixed. PTS: 1112297 since: 7.3.00.19 Bug fixed: Warnings because unused static variable sqlModDesc removed. DBMClient: ========== PTS: 1117906 since: 7.3.00.29 New Feature: TSM/ADSM's Backint for Oracle is supported by removing the variable BI_CALLER from the environment before calling Backint for Oracle. Thus the following error of Backint for Oracle for TSM/ADSM is avoided: BKI0008E: The environment variable BI_CALLER is not set correctely. The current value is "BACKINT". PTS: 1114074 since: 7.3.00.21 New Feature: dbmrfc(.exe) moved from /pgm to /bin PTS: 1114156 since: 7.3.00.21 Bug fixed: Changing an existing xuser entry with dbmcli (option -us) will now work. PTS: 1113047 since: 7.3.00.20 Bug fixed: Backint for SAP DB does now set the environment variable BI_REQUEST to the value NEW before Backint for Oracle is called for the first time during a backup and it sets the variable to the value OLD before making further calls of Backint for Oracle during a backup. PTS: 1113074 since: 7.3.00.20 New Feature: The new parameter "OMIT LAST DIRECTORY DELIMITER ON RESTORE:" in the configuration file for Backint for SAP DB allows the suppression of / or \ at the end of directory names in the input file of Backint for Oracle. PTS: 1111737 since: 7.3.00.18 Bug fixed: The environment variable BI_REQUEST is now set to the value OLD by Backint for SAP DB, if Backint for Oracle is not called for the first time during a backup. DBMServer: ========== PTS: 1116749 since: 7.3.00.29 Bug fixed: The return code in the DBA-History is now also updated from 9999 (running) to 2 (failed) if a backup with an external backup tool fails after the database kernel already closed the pipe. PTS: 1114004 since: 7.3.00.29 Bug fixed: If the communication buffer between DBMClient and DBMServer is too small for all backup media during the DBMServer command medium_getall the DBMServer sends a "-24987,ERR_TOOSMALL: packet size too small for answer" error. The user has to delete some known media with medium_delete or edit the dbm.mmm file. PTS: 1117445 since: 7.3.00.29 Bug fixed: Problem description: The DBMServer does not support some new unicode data types during the sql_execute command. This causes empty columns in the answer if the kernel datatype is unknown. Workaround (and general recommendation): For SQL access to the database kernel please use tools working with the precompiler or working with ODBC or JDBC. The DBM command sql_execute is only intended for some small and restricted accesses during database administration. Solution: The DBMServer supports now also the new data types. PTS: 1117280 since: 7.3.00.29 New Feature: The -LL option of NetWorker's SAVE is used to avoid unnecessary calls of NetWorker's MMINFO during backups. PTS: 1117873 since: 7.3.00.29 New Feature: Renames the DBMServer commands "backup_stage" and "backup_stage_repeat" into "archive_stage" and "archive_stage_repeat". PTS: 1116920 since: 7.3.00.29 New Feature: Output and error output of Backint for SAP DB was improved (Additional output was added to ease the error and performance analysis and all error messages mention now Backint for Oracle instead of just Backint.). PTS: 1117739 since: 7.3.00.29 Bug fixed: Error Symptoms: A crash inside the DBMServer causes a "-4 receive a garbled package" or a "-4 communication error" in the DBMClient during the DBMServer command sql_recreateindex with parameters (..). This happens only with 64-Bit SAP DB servers. Solution: Solved with this patch Workaround: Use sql_recreateindex without parameters which will work correctly. This will only recreate bad indexes (not all indexes)! PTS: 1118088 since: 7.3.00.29 Bug fixed: INTERNAL only: Not really a problem, since 7.3 is no liveCache release, but who knows what strange kind of trigger DLL's will exist someday... 1) Preconditions and circumstances The registration of COM procedures using the command dbmcli -d LCA -u control,control exec_lcinit register fails while loading DLLs: Couldn't load library: /sapdb/LCB/db/sap/libSAPAPO Unable to find library 'liball_aps.sl'. ERROR : liveCache LCB not registered (see /sapdb/LCB/db/lcinit.log) This only happens if dbmsrv is setuid root and the calling user is ie. lcaadm. 2) Solution to the problem The dbmcli does directly fork a dbmsrv and the dbmsrv now switches to the given user. 3) Probability that the error occurs 100%. 4) Workaround Changing owner to and resetting setuid root mode of dbmsrv. PTS: 1116437 since: 7.3.00.25 New Feature: The DBMServer checks now for a VERIFY on the DBMServer command util_execute. For a verify the DBMServer writes a DBA history protcol with action code "cdb". PTS: 1116421 since: 7.3.00.25 Bug fixed: External Backup tools can now be used for backups started from WEB DBM. Previously the error "-24895, medium not found" was returned and the backup was not finished correctly such that, succeeding backups with Backint for SAP DB failed due to a "-24927, external backup tool not found" error. PTS: 1116440 since: 7.3.00.25 New Feature: Implements the new DBMServer commands "backup_stage" and "backup_stage_repeat". PTS: 1115743 since: 7.3.00.25 Bug fixed: DBMServer crash during Information->Data in the DBMGui for an instance with more than 33 data volumes fixed. PTS: 1115995 since: 7.3.00.25 Bug fixed: Problem with missed configuration parameter KERNELVERSION due to a compiler (optimization) problem solved. PTS: 1114403 since: 7.3.00.23 Bug fixed: Corrupted backup history files do no longer cause crashes of the DBMServer. PTS: 1115000 since: 7.3.00.23 Bug fixed: The DBMServer does now determine the size of a backup exactly. PTS: 1115011 since: 7.3.00.23 Bug fixed: Parallel backups/restores with NetWorker are no longer stopped by the DBMServer, if the data transfer over the first pipe ends successfully more than 1 minute before the data transfer on all other pipes ends. This does only affect the behavior of the DBMServer while the database kernel did not close all pipes and thereby did not finish the backup from its side. With other words, the timeout for the backup tool after the end of the backup by the database kernel exists still as before. PTS: 1114484 since: 7.3.00.23 New Feature: With the new option NSR_AVOIDTIMEBUG in the NetWorkerconfiguration file the DBMServer can be forced to call NetWorkers mminfo program allways with the -t option. Detailed information about the usage and the consequences of the new NSR_AVOIDTIMEBUG option can be found in OSS note 53069 and in the next version of the "External Backup Tools" document on www.sapdb.org. PTS: 1113444 since: 7.3.00.21 New Feature: If there are more parameters as space available in the DBMServer communication buffer the DBMServer sends now the parameters up to the limit. For the missing parameters you may use the appropriate "next" command. param_directgetall + param_directgetallnext param_extgetall + param_extgetallnext PTS: 1114224 since: 7.3.00.21 Bug fixed: The parameter handling of the DBMServer handles now the MODIFY property of a parameter correctly. PTS: 1113314 since: 7.3.00.21 New Feature: The DBMServer can now be forced to export an arbitrary environment variable with the name and the value . Therefore a configuration variable with the name set_variable_ and the value = must be set with the command "dbm_configset -raw". must be a number between 0 and 100 (0 and 100 included). PTS: 1113390 since: 7.3.00.21 Bug fixed: The DBMServer stores now the External Backup ID's of parallel backups with Backint for SAP DB in order of the used Media Group. Furthermore does Backint for SAP DB now avoid Backint for Oracle's destination feature, if it's configuration is not changed between backup and restore. PTS: 1113634 since: 7.3.00.21 New Feature: SAP DB does now support parallel backups with ADSM/TSM. PTS: 1114227 since: 7.3.00.21 Bug fixed: The DBMServer can now handle date/time-strings in NetWorker's output, which contain timezone information. PTS: 1114275 since: 7.3.00.21 Bug fixed: The option NSR_SIZEROUNDUP has been added to the configuration file for NetWorker and can be used for manipulating the way how whole-numbered backup sizes, reported by NetWorker, are rounded by the DBMServer. PTS: 1113429 since: 7.3.00.21 Bug fixed: The DBMServer wrongly recognized the end of a backup tool, while reacting to unexpected signals used by SNI and Linux for thread handling. Therefore the DBMServer ended the backup, restore or inquire of backup information before the backup tool ended. This behavior could lead to several follow up errors like failed backups (likely) or undetected defective backups (highly unlikely). The DBMServer does now ignore all signals excepting the KILL signal on UNIX while waiting for external backup tools during backup, restore and inquire of backup information. PTS: 1113456 since: 7.3.00.21 Bug fixed: After accidental closing some output files, the DBMSRV reported during starting and stopping databases "RunTime Error: Cant redirect stdout to /dev/null". Once this error occured it persisted for all DBMSRV start / stop actions, until the X_Server was stopped and restarted. PTS: 1114148 since: 7.3.00.21 Bug fixed: Suppress unaligned access (maybe compiler bug) on True64 (Compaq/DEC) when calling cn29PrintProperties. PTS: 1111755 since: 7.3.00.20 New Feature: The DBMServer checks now the type of an External Backup ID for NetWorker against the type configured in the NetWorker configuration file. PTS: 1113049 since: 7.3.00.20 Bug fixed: The DBMServer has no longer a problem determining the Internal Backup ID of a backup if dbm.knl contains a 0-byte. PTS: 1113115 since: 7.3.00.20 Bug fixed: Backint for SAP DB does not respond with an error message, if no value is supplied for the entry "history file:" in its configuration file. PTS: 1113086 since: 7.3.00.20 Bug fixed: The following error has been removed: 'dbmsrv' leaks memory and handles by not releasing shared memory and mailslots. PTS: 1112569 since: 7.3.00.20 Bug fixed: Unaligned access during "sql_execute select * from tables" or "sql_recreateindex ..." corrected. PTS: 1113039 since: 7.3.00.20 Bug fixed: db_stop -dump works again PTS: 1113153 since: 7.3.00.20 Bug fixed: Raw Partition calculation should work again PTS: 1111740 since: 7.3.00.18 Bug fixed: The environment variable BI_REQUEST is set to OLD by the DBMServer, if Backint for SAP DB is called for a second time during a backup. Installation: ============= PTS: 1116589 since: 7.3.00.25 New Feature: Default PACKET_SIZE now equal to the one in 7.2 and 7.4, i.e. 36864 bytes PTS: 1114387 since: 7.3.00.23 New Feature: the systemview TRIGGERPARAMS which was used for PL/SQL-dbprocedures is not needed any more and is thrown out of installation PTS: 1113469 since: 7.3.00.21 New Feature: the system view DOMAIN.COLUMNS has been extended by column 'NULLABLE'. If NULLABLE contains 'YES', null values are permitted for the corresponding column. PTS: 1114101 since: 7.3.00.21 New Feature: because the installation parameter INSTANCE_TYPE will be used to distinguish the USAGE of the database, not just different database kinds as OLTP/liveCache, EMERGE is added PTS: 1114272 since: 7.3.00.21 New Feature: the installation parameter _MBLOCK_STACK_SIZE can be changed to higher values than before to avoid error -1104 Too complicated SQL statement (KB-stack overflow) PTS: 1112123 since: 7.3.00.20 New Feature: Even if default-values for installation are used, parallel index creation will be used. By now the combination of two default-values prevented the database from using the parallel creation. PTS: 1112162 since: 7.3.00.18 Bug fixed: table- and column-comments for FOREIGNKEYCOLUMNS,INDEXCOLUMNS and VIEWCOLUMNS included in installation JDBC: ===== PTS: 1116659 since: 7.3.00.29 Bug fixed: In a unicode-environment decode did not return the correct datatype if it should have been unicode. If this decode was included in other functions, for example concat, error -2010 could occur because a implicit conversion was done whose result exceeded the implicit calculated length. Now decode returns the correct datatype. PTS: 1116944 since: 7.3.00.29 Bug fixed: DatabaseMetaData.getSchemas does not deliver the COLDUSER (DBM) anymore. PTS: 1116806 since: 7.3.00.29 Bug fixed: fixes the bug in PreparedStatement.executeBatch() that an error -9409 "AK Invalid segment construction" occurs when the database send a -8 "Parse Again". PTS: 1116938 since: 7.3.00.29 New Feature: Sending execute and describe command in one communication packet improves the performance. PTS: 1116968 since: 7.3.00.29 New Feature: The reconnect feature of the jdbc driver can be disabled by setting the connect property "reconnect=false" PTS: 1117166 since: 7.3.00.29 Bug fixed: Fixes an error in reconnect that a socket wasn't closed which leads to a strange behavior in reconnects. PTS: 1117225 since: 7.3.00.29 Bug fixed: DatabaseMetaData.getColumns() failed in a unicode database because of a kernel bug. This patch is a workaround for the bug within the JDBC-driver. PTS: 1117273 since: 7.3.00.29 Bug fixed: Fixes a bug that "SELECT ... FOR UPDATE" in conjunction with "UPDATE ... WHERE CURRENT OF" and FetchSize = 1 failed. PTS: 1117633 since: 7.3.00.29 Bug fixed: Fixes the bug that the method Statement.cancel() throws a "ArrayIndexOutOfBoundsException" if you use socket communication. PTS: 1117722 since: 7.3.00.29 New Feature: A special handling for reserve reply size was implemented, due to avoid the error "-1114 Communication packet too small" PTS: 1118272 since: 7.3.00.29 Bug fixed: Fixes the bug that getting a resultset from a dbprocedure fails when the session is in autocommit-mode. PTS: 1118413 since: 7.3.00.29 Bug fixed: Fixes the bug, that PreparedStatement.setString(int index, String value) fails with a NullPointerException in connect mode "oracle" if the parameter "value" is NULL. PTS: 1118476 since: 7.3.00.29 Bug fixed: Fixes the problem, that PreparedStatement.executeBatch() in conjunction with stream parameters fails when the kernel returns a -8 "Parse Again" PTS: 1116200 since: 7.3.00.29 New Feature: The driver supports the Statement.setMaxRow function to limit returned result sets. Also the "getRow" function of ResultSEt always delivers a positive row number counting from the start of the result set. Open streams from a result set are closed in navigation, as required by the JDBC spec. The method ResultSet.refreshRow is supported. PTS: 1116912 since: 7.3.00.29 Bug fixed: Cursors were not closed on prepared statements. Thus, the temp space of a database may exhaust. PTS: 1117004 since: 7.3.00.29 Bug fixed: There was an infinite recursion in build 31 of the driver. PTS: 1117013 since: 7.3.00.29 Bug fixed: The driver did remove trailing characters <0x20 from the end of a string. It should remove only blanks (character 0x20). PTS: 1117062 since: 7.3.00.29 Bug fixed: The driver did contain a memory leak for prepared and callable statements. PTS: 1117063 since: 7.3.00.29 Bug fixed: The driver did errornously not return a BigDecimal value with a scale of n for a column FIXED(m, n), but deduced the scale from the actual value, resulting in different scale values for the same column. PTS: 1117076 since: 7.3.00.29 Bug fixed: JDBC requires that executeUpdate,executeQuery, and execute throw an SQLException when executed with a String argument on a PreparedStatement/CallableStatement. Instead of doing so, the driver did a reparse. PTS: 1117077 since: 7.3.00.29 Bug fixed: Sometimes statements can fail with a 'parse again' database error, due to subsequent errors in additional segments of a request. PTS: 1117092 since: 7.3.00.29 Bug fixed: Some commands (i.e. SET ISOLATION LEVEL) where unable to be executed as prepared statement. PTS: 1117230 since: 7.3.00.29 New Feature: JDBC Driver handles the 'getObject' method of CallableStatement and ResultSet according to the JDBC standard. Also, get/setDate, get/setTime, get/setTimestamp with optional Calendar are supported now. PTS: 1117235 since: 7.3.00.29 Bug fixed: The driver did throw an ArrayIndexOutOfBoundsException on LONG BYTE inserts with specific lengths. PTS: 1117313 since: 7.3.00.29 New Feature: The functions in DatabaseMetadata which return a result set may be used independently from each other, i.e. the result sets are not closed by a call to another function. The getStatement() method of result sets retrieved by these methods do not return the statement, but null as required by the JDBC standard. PTS: 1117452 since: 7.3.00.29 Bug fixed: Prepared statements converted the given parameter strings using the file encoding of the JVM, instead of preserving all 8 byte information. This lead to wrong data on e.g. Sun and Linux. PTS: 1117946 since: 7.3.00.29 Bug fixed: Setting data for CHAR/VARCHAR columns from a character stream or binary stream did not work. PTS: 1117955 since: 7.3.00.29 Bug fixed: BatchUpdateException.getUpdateCount delivered an array of integers that was 1 item too small. PTS: 1117978 since: 7.3.00.29 Bug fixed: Setting data from a character stream or binary stream for CHAR/VARCHAR BYTE columns in PreparedStatement did not work, PTS: 1118010 since: 7.3.00.29 Bug fixed: ResultSet.getObject did errornously return an object instead of null when the column is of type FLOAT (and the value is NULL): PTS: 1118115 since: 7.3.00.29 Bug fixed: If in autocommit mode, the BatchUpdateException thrown from an error of PreparedStatement.executeBatch may report an invalid number of executed commands. PTS: 1118132 since: 7.3.00.29 Bug fixed: A warning attached to a Statement or ResultSet was not been cleared when the statement was executed again. Thus, it was possible that these warnings accumulate in the statement. PTS: 1118176 since: 7.3.00.29 Bug fixed: Due to a wrong internal computation, an ArrayIndexOutOfBoundsException may occur if LONG data is inserted or updated, and closed prepared statement wait for being disposed. PTS: 1117551 since: 7.3.00.29 Bug fixed: The driver did not work under HP-UX and HP Java VM 1.3.0 PTS: 1116562 since: 7.3.00.25 Bug fixed: fixes the bug in 7.3.00.24 that a wrong value will be inserted when using PreparedStatement.setCharacterStream PTS: 1116565 since: 7.3.00.25 Bug fixed: Prepared statements did not provide correct result set meta data. Now they provide this information after the parsing of the statement, if possible, or at least after execution. PTS: 1116672 since: 7.3.00.25 Bug fixed: The 'setByte' method for prepared statement did not work (it modified the data). PTS: 1115476 since: 7.3.00.25 Bug fixed: Fixes the bug, that the adressess of objects printed out in JDBC-trace are inconsistent. PTS: 1115702 since: 7.3.00.25 New Feature: The performance of this driver will be improved, because of sparing some communication overhead for retrieving the Metadata of a ResultSet. PTS: 1116314 since: 7.3.00.25 Bug fixed: Fixes the bug that an error -9409 System error: AK Invalid segment construction occurs in PreparedStatement.executeBatch() if the argument count is greater than 36767. PTS: 1116359 since: 7.3.00.25 Bug fixed: Conversion of java native float to columntype float or numeric now works with older java vitual machine version less than 1.3. PTS: 1116701 since: 7.3.00.25 Bug fixed: The 'executeUpdate' method of Statement did return -1 if no rows were updated, which was wrong. PTS: 1116680 since: 7.3.00.25 Bug fixed: Cursors were not closed if the statement cache for SELECT statements was activated. PTS: 1116776 since: 7.3.00.25 Bug fixed: Prepared statements did not provide correct result set meta data. Now they provide this information after execution. They cannot provide meta data after prepare as kernel versions < 7.3.00.25 may crash when requesting these data. PTS: 1110549 since: 7.3.00.23 Bug fixed: The column TYPE_NAME in DatabaseMetadata.getColumns() and DatabaseMetadata.getTypeInfo() returns the same value for same types. The returnvalues for TYPE_NAME are now valid column description in "CREATE TABLE"-commands. PTS: 1114606 since: 7.3.00.23 Bug fixed: ResultSetMetaData.getColumnDisplaySize() returns the correct maximum column length for long columns (2147483647 or 1073741824 for a unicode database). PTS: 1114608 since: 7.3.00.23 Bug fixed: In oracle mode a PreparedStatement.setString("") should always insert/update the NULLvalue instead of an empty string. PTS: 1114960 since: 7.3.00.23 Bug fixed: Fixes the bug in PreparedStatement.executeBatch that a ClassCastException will be thrown or the initial value will be inserted in the database if a parameters was not set. Now a BatchUpdateException will be thrown if a parameter is missing. PTS: 1115045 since: 7.3.00.23 New Feature: JDBC driver now supports returning resultsets in DBprocedures. PTS: 1115102 since: 7.3.00.23 Bug fixed: Fixes the bug, that the method ResultSet.updateXXX("columnname","value") doesn't work if the columnname was defined as case-sensitive. PTS: 1115109 since: 7.3.00.23 Bug fixed: If a statement, including communication overhead, exceeds _PACKET_SIZE, a SQLException would be thrown instead of a java.lang.ArrayIndexOutOfBoundsException PTS: 1112910 since: 7.3.00.21 Bug fixed: all cursor movement methods (beforeFirst etc.) now work in sqlmode oracle PTS: 1113416 since: 7.3.00.21 Bug fixed: fixed error in UpdatableResultset when fetchsize greater than one PTS: 1113457 since: 7.3.00.21 Bug fixed: SetTransactionIsolation(Connection.TRANSACTION_NONE) does not throw an exception. a higher Isolation level will be used. PTS: 1113458 since: 7.3.00.21 Bug fixed: A password enclosed with '"'" will now be handled case sensitive PTS: 1113475 since: 7.3.00.21 Bug fixed: handle db-name always in upper cases. PTS: 1113688 since: 7.3.00.21 Bug fixed: excuteBatch with dbprocedure will work now. PTS: 1113704 since: 7.3.00.21 Bug fixed: CallableStatement.clearParameters() clears all parameters and not only the first one. PTS: 1113803 since: 7.3.00.21 Bug fixed: for integer columns the method getColumnClassName () returns "java.lang.Integer" instead of "java.lang.Intger" PTS: 1113969 since: 7.3.00.21 Bug fixed: getUDTs and getVersionColumns return an empty ResultSet instead of a NotImplementedException getMaxConnections returns the correct number of max possible connection instead of -1 PTS: 1113974 since: 7.3.00.21 Bug fixed: Statement.executeQuery() that tries to insert a row throw a SQLException Statement.executeUpdate() that tries to select a row from the table throw a SQLException Statement.setFetchSize(negative) throws a SQLException. Statement.setMaxFieldSize() now sets the value Statement.setMaxFieldSize(negative) throws a SQLException. Statement.setMaxRows() now set the value. Statement.setMaxRows(negative) now throws a SQLException Statement.setQueryTimeout(negative) throws SQLException. The changes will be made due to standard conformance. The EXPLAIN command returns a resultset now. PTS: 1113975 since: 7.3.00.21 Bug fixed: For PreparedStatement.execute() , PreparedStatement.executeUpdate() and PreparedStatement.executeQuery() a SQLException will be thrown if the preparedStatement has parameters and a parameter was not. PTS: 1114001 since: 7.3.00.21 Bug fixed: ResultSet.getType() works now proper. ResultSet.setFetchSize(negative)throws a SQLException. Calling ResultSet.Last(); ResultSet.isLast(); on an empty ResultSet return false. PTS: 1114002 since: 7.3.00.21 Bug fixed: PreparedStatement.executeBatch() with a select statement throws a SQLException. Statement.executeBatch() with a select statement throws a SQLException. CallableStatement.executeBatch() with a procedure with an OUT parameter throws a SQLException. CallableStatement.executeBatch() with a procedure with an INOUT parameter throws a SQLException. executeBatch() now returns the correct UpdateCount values. PTS: 1112975 since: 7.3.00.21 New Feature: Native communication for all platforms is available. PTS: 1111441 since: 7.3.00.20 Bug fixed: DATE and TIMESTAMP values before 1000 AD resulted in SQL error -3048 PTS: 1111443 since: 7.3.00.20 Bug fixed: Nanoseconds are now silently truncated to microsecond resolution PTS: 1112361 since: 7.3.00.20 Bug fixed: 'Error -3018 Invalid Exponent' when inserting LONG values and NULL numbers in the same insert PTS: 1112138 since: 7.3.00.20 Bug fixed: The bug, that updatable resultsets on an empty table throws an exception is fixed. PTS: 1112781 since: 7.3.00.20 Bug fixed: Updatable Resultsets in conjunction with prepared statements should now work proper. PTS: 1112888 since: 7.3.00.20 Bug fixed: A nullpointer exception occurs when a PreparedStatement was executed and the parseinfocache was used. This bug is fixed. PTS: 1112964 since: 7.3.00.20 Bug fixed: reconnect after session timeout works now propper for prepared statements PTS: 1112266 since: 7.3.00.19 Bug fixed: UNICODE connect with a real unicode username/password is possible, when the connectoption unicode="yes" is set. In contrast to previous releases this option works fine now. PTS: 1112377 since: 7.3.00.19 Bug fixed: fixed failure: java.sql.Date, Time, Timestamp are now converted to kernel types Date, Time, Timestamp correctly when connectproperty unicode=yes is set. PTS: 1112139 since: 7.3.00.18 Bug fixed: fixed bug: inserting multiple Unicode LONGs would loose the start of the second and possible following values Kernel: ======= PTS: 1117564 since: 7.3.00.29 Bug fixed: Precondition: Select on a view with date, time, timestamp functions in expressions. Application uses parsed statements. Parse and execution time is different, Effect: Result of the view expression is wrong. Bypass: Avoid date, time, timestamp functions in expressions in views, i.e. change select td from v with v: create view v (td) as select timediff (ts, timestamp) from t to select timediff (ts, timestamp) from v with v: create view v (td) as select ts from t PTS: 1116873 since: 7.3.00.29 Bug fixed: rename user fails with -9404, if the the user is owner of a sequence. This problem is fixed now. PTS: 1117763 since: 7.3.00.29 Bug fixed: a mass delete from a referenced table with delete rule 'on delete set null' with a unique index defined on the foreign key returns -9211, System error: KB Stack type illegal The problem occurs, if more than one row of the referencing table is affected. The problem is solved now PTS: 1117808 since: 7.3.00.29 Bug fixed: DROP DBPROC didn't delete all depending catalog records. This produces garbage in the catalog but should not have any other negative effects. PTS: 1118225 since: 7.3.00.29 Bug fixed: alter table ... drop foreign key returns -9205, catalog information not found. Preconditions and circumstances : the foreign key table has exactly 30 foreign keys. visibility of the error : yes probability of error-situations: low, since exactly 30 foreign keys are required. workaround: drop the last foreign key returned from DOMAIN.FOREIGNKEYS first. PTS: 1118265 since: 7.3.00.29 New Feature: The currval function is now applicable to tables having a serial column. In that case the currval function returns the last value of that column, that has been assigned in the current session. Syntax : [.]
.CURRVAL PTS: 1118286 since: 7.3.00.29 Bug fixed: the parser allows the minus sign '-' in parameter names. This disables expressions using minus, if no blank separates the '-' from the operands. This results in -9405, data part to short, in the course of a create dbproc statement. Preconditions : existence of a parameter expression with minus without separating blanks (:p1-:p2). Workaround : separate minus by blanks PTS: 1118300 since: 7.3.00.29 Bug fixed: If a user has the execute privilege for a db-procedure via a role and the user enables that role via the SET ROLE statement, the call of the db-procedure returns -4016. Workaraound enable all roles via SET ROLE ALL. PTS: 1118008 since: 7.3.00.29 Bug fixed: if a column paricipate on a join and this column is ORDER BY columns we possibly produce wrong result set. Patch corrects this behaviour. PTS: 1116623 since: 7.3.00.29 Bug fixed: ALTER TABLE MODIFY in sqlmode ORACLE may fail with unpredictable errors, if a trigger is defined for the corresponding table. PTS: 1117410 since: 7.3.00.29 Bug fixed: table privileges granted to public with grant option are not represented as '+' in the column privileges of DOMAIN.TABLES. This problem has been fixed. PTS: 1113278 since: 7.3.00.29 Bug fixed: in ORACLE-mode now another situation where character- and number-values have to be compared works like in real Oracle: character_value [NOT] IN () By no '-8006 datatypes must be compatible' was returned in this case PTS: 1116569 since: 7.3.00.29 Bug fixed: Even for selects on top of complex views which can be optimized (put into 1 select; not into 1 for the complex view and another one for the select on top) the sqlmode given for the top-select will be used, not that for the complex view. If the top-select has to be done with Oracle-mode, resultcount will be 0, as usual resp. the SELECT-FETCH-optimization (the select returns the first resultrows which will be hold in main memory by the client (not application!) by the time the application asks for FETCH) can take place PTS: 1116718 since: 7.3.00.29 Bug fixed: some internal info for a tool is now provided correctly PTS: 1116888 since: 7.3.00.29 Bug fixed: some not initialized variables which perhaps could result in problems are initialized now. No problem-solving, but because of purify-usage. PTS: 1116914 since: 7.3.00.29 Bug fixed: create dbfunction and drop dbfunction now return in an error. By now the seem to work, but nobody could work with these functions. PTS: 1116918 since: 7.3.00.29 Bug fixed: if more than one 'command' is sent with one command-interface and the non-last 'command' was a select/fetch returning many results the kernel may crash in the routine s26new_segment_init during preparation of one of the next return-segments (answers). This bug is fixed PTS: 1116985 since: 7.3.00.29 Bug fixed: UTCDATE, UTCDIFF, TRANSACTION, TIMEZONE by now provide the value which was correct, when the statement was prepared and will mostly be incorrect (too old) for the time the statement is executed. This bug is fixed. PTS: 1116988 since: 7.3.00.29 Bug fixed: In INSERT...VALUES (....) one could specify columnnames like SYSKEY or dummy which did not result in an error but were handled because internally INSERT ... SELECT ... FROM dual was made and those columnnames known in dual avoided the error. Now every columnname results in the error -5004 Missing constant. Sequence-values starting with [.] and looking like columnnames do not result in the error mentioned above PTS: 1117002 since: 7.3.00.29 Bug fixed: The date-time-format USA resp the oracle-function TO_DATE did not handle values correctly, if the value given for hours was 12. the result was 12 hours too much (if 12 was given as hour-value) ==> 0 --> 12, 12 --> 24 with some date_time_formats the hour 24 could not be returned in any case PTS: 1117131 since: 7.3.00.29 Bug fixed: real Oracle: TO_CHAR (1) --> '1' Oracle-Mode by now (for an number(16)-value of 1: ' 1 ' Now SAP DB in Oracle-mode behaves like real Oracle PTS: 1117183 since: 7.3.00.29 Bug fixed: An array-insert(update/delete) into a table having a corresponding-trigger, the trigger including a select will not result in the correct number of inserted/changed rows, but will result in error 100, without errortext! This bug is fixed PTS: 1117237 since: 7.3.00.29 Bug fixed: if INSERT .. VALUES (, ..., ) was used in an Unicode-environment, the string_literal was handled as ascii-string_literal. In case it holds real unicode-values, the result was the misleading error-number -3005. This bug is fixed. PTS: 1117416 since: 7.3.00.29 Bug fixed: Precondition: inconsistent column_information, where column believes having been altered but there is no alterdate_record for this column Behaviour -9205 during SELECT ... FROM COLUMNS where this inconsistent column has to be output Corrected behaviour: the missing alterdate-record is ignored, NULL is returned in the corresponding output-columns of systemview COLUMNS PTS: 1117427 since: 7.3.00.29 Bug fixed: error -9111 vak05, 4 (version 7.3.0.24) occured if a call_statements uses '?' instead of a named parameter resp. hostvariable. Now the error -5006 missing identifier will be seen PTS: 1117438 since: 7.3.00.29 Bug fixed: In unicode-environment trailing blanks are lost even for values/intermediate results in case a unicode<-->ascii-conversion is necessary. This behaviour is different to the ascii-behaviour. can be seen for example with 'abc ' || 'def' --> 'abcdef' (unicode) --> 'abc def' (ascii) PTS: 1117448 since: 7.3.00.29 Bug fixed: the implicit number <--> char-conversion (when using ODBC / Oracle-mode) was not done with every function it should have been done, for example lfill. Now more (all) functions use this conversion PTS: 1117455 since: 7.3.00.29 Bug fixed: Precondition: SELECT ... FROM DBPROCEDURES with fully qualified dbprocedure, which does not exist Behaviour: error -4016 is returned Now correct behaviour: error 100 as with other systemviews which do not find the specified objects PTS: 1117495 since: 7.3.00.29 Bug fixed: In a unicode-environment some mixtures of functions/string_literals/unicode_columns result in -2010 assignment impossible char value too long This bug is fixed PTS: 1117501 since: 7.3.00.29 Bug fixed: In an unicode-environment the session-specific switch of vtrace is only possible for sessions <= x'FFFF' although session-no itself are up to x'FFFFFFFF' This bug is fixed PTS: 1118167 since: 7.3.00.29 New Feature: The function CASE was implemented in two variants: The simple form of the CASE behaves like DECODE, with different syntax. The complex form of CASE allows people to specify several combinations of search_condition and value_expression each. Those search_conditions are checked one after the other. The first one returning TRUE will stop the function-handling and will return the result of the value_expression belonging to the TRUE-search_condition. ::= CASE WHEN THEN [...] [ ELSE ] ) END : CASE WHEN THEN [ ... ] [ELSE ] END PTS: 1118244 since: 7.3.00.29 Bug fixed: So far the functions UPPER and LOWER will change only characters included in 7-bit-ascii if the functions are used for unicode-values. Now conversions are done for those characters defined by the unicode-committee which will not change the number of needed bytes for storing --> ß will not be changed to SS. PTS: 1118284 since: 7.3.00.29 Bug fixed: So far in value expressions using parameter and concat the resulting parameter descriptions for client tools were wrong in number and (partly) in content / not filled with any content. Different errors may be the result of this, depending on the tool. In dbprocs a crash is the worst case. This bug is fixed now. PTS: 1118318 since: 7.3.00.29 Bug fixed: When [L | R]TRIM (:parameter) is used, an internal error is returned to the user an no correct result or error known by users. Now the correct handling is implemented. PTS: 1118402 since: 7.3.00.29 Bug fixed: For datatytpe TIMESTAMP and date_and_time_format EUR/JIS/USA a wrong check was done which resulted in error -3050. Now those date_and_time_formats are checked correctly, too. PTS: 1118456 since: 7.3.00.29 New Feature: After an insert_statement the first and the last serial-value used during this statement are returned in the command interface in a part called sp1pk_serial. This is done if any serial is used. Now it is possible for interfaces to returned this value to the application. PTS: 1117884 since: 7.3.00.29 Bug fixed: select ... sequence.NEXTVAL FROM tab1, ..., tabn (n>1-->JOIN) old behaviour: the select does not result in a new sequence-value for each resultrow, but results in a single sequence value for each row of one of the tables handled --> the sequence value is usually returned several times correct new behaviour: a single sequence_value for each resultrow PTS: 1117090 since: 7.3.00.29 Bug fixed: The error '-5015 missing keyword REUSE' ocurred when using "FOR UPDATE OF FOR REUSE" in a SELECT statement via an ODBC or JDBC driver. It ocurred always and there is no previous workaround for it. PTS: 1114043 since: 7.3.00.29 Bug fixed: This patch removes move errors within knldiag provoked by DIAGNOSE messages. PTS: 1115882 since: 7.3.00.29 Bug fixed: create table t ( i int ) insert t values (1) ... insert t values (10) wrong behavior: select * from t where rown <= 2 fetch last --> delivers i = 10 now right behavior: select * from t where rown <= 2 fetch last --> delivers i = 2 PTS: 1115885 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances any select with 'rowno' in select list and optimizer uses a fetch strategy select ROWNO, * from Table 2) workaround use 'FOR REUSE' select ROWNO, * from Table FOR REUSE PTS: 1117493 since: 7.3.00.29 Bug fixed: Precondition: Join select with local predicate on a char byte column which is relevant for strategy. Effect: Local predicate is not used for strategy and performance might be bad Circumvention: - PTS: 1117525 since: 7.3.00.29 Bug fixed: Precondition: Inserts into tables with long columns from a client with different swap kind. Effect: Error -3042 or wrong long data after insert Bypass: no PTS: 1117825 since: 7.3.00.29 Bug fixed: Precondition: a select with more than 255 output columns Effect: endless loop within k71qual_handling Bypass: reduce output columns PTS: 1118473 since: 7.3.00.29 New Feature: Redesign of iso/ansi join syntax. New syntax looks like: ::= | ::=
CROSS JOIN
::=
[ ] JOIN
::= ON ::= INNER | [ OUTER ] ::= LEFT | RIGHT | FULL PTS: 1118557 since: 7.3.00.29 Bug fixed: Precondition: Select fetch optimization is enabled, statement is executed via intersect fetch strategy and whole result fits in one communication segment (varpart) Effect: heavy temp space consumption Probability that the error occurs: depends on strategy relevant data like indexes, distinctness ... but always possible Workaround: disable select fetch optimization via "diagnose optimize select and fetch off" PTS: 1117027 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances The error can occur if a restore log is done and a savepoint is used with open transactions. Logentries of the open transactions which are read before the Savepoint position on the log are not copied to the log-trans-file. So these entries are not available for redo or undo and this can cause inconsistency. 2) Is it internal or external visible ? In rare cases this error is visible and can look like this: Restore Log aborts with the error -108 and in knldiag stands a line: 08-01 17:07:55 0x15A ERR 52012 RESTORE error occured, basis_err 720 3) Is there a WorkAround and how does this work ? If the error is visible you should use an older complete or incremental backup and begin the log recovery from that point. PTS: 1117802 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances During tree balancing an order adds an index node on the indexlevel under the rootlevel. A next order removes this node and tries to remove an index level what is wrong. 2) Is it internal or external visible ? the kernel aborts 3) Probability that the error occurs If invertices are very large the probability increases. 4) Is there a WorkAround and how does this work ? drop / create index PTS: 1118122 since: 7.3.00.29 Bug fixed: CLEAR LOG resets the lpno to 0 to prevent overflows and crashes. PTS: 1117812 since: 7.3.00.29 Bug fixed: The wrong error -8006 was returned for a comparison between a byte-string literal and the function decode returning a value of the correct corresponding type. Now this comparison works without any error. PTS: 1118407 since: 7.3.00.29 Bug fixed: Concatenation of values is done without truncation of trailing blanks. Correlation columns are handled like values, therefore the concatenation of a correlation column and another value left the trailing blanks of the column in. This behaviour was different to the concatenation of non-correlated columns and values. Now even correlated columns are truncated before concatenation. PTS: 1117666 since: 7.3.00.29 New Feature: in a db-procedure it is now possible to create and execute a sql statement at runtime. This statement must not contain any parameters. This feature is similar to EXECUTE IMMEDIATE of the C/C++ precompiler. Syntax : EXECUTE | EXECUTE PTS: 1118092 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances Data base crash during write operation on data page. In the knldiag you can see a Bad output message. This could happen if a data page copy is generated for a page which is still in I/O and the I/O correctness of this page is checked via WriteCount check algorithm instead of CheckSum Check algorithm. 2) visibility of the error Yes 3) probability of error-situations Not so high, because the copy operation and the maintenance of the WriteCount has to be made at exact the same time. This error exist since release 7.1! PTS: 1113350 since: 7.3.00.29 Bug fixed: now correct values in SERVERDBSTATISTICS: PCTUSEDPERM+PCTUSEDTMP + PCTUNUSED = 100% PTS: 1117200 since: 7.3.00.29 Bug fixed: Preconditions and circumstances: a table was created by create table like statement and the source table was altered via alter table modify. Effect: -9025 POS(1) System error: AK Catalog information not found Probability that the error occurs: within R/3 no table is created by create table like statement WorkAround: create table via normal create table statement PTS: 1117790 since: 7.3.00.29 Bug fixed: Error using comments in SQL statements: This error always ocurres when using a comment in front of an identifier with double quotes which will then have a wrong name. (The quote character at the end is then part of the name.) This incorrect identifier has to be used in all subsequent SQL statements. There is no previous workaround for it. PTS: 1116153 since: 7.3.00.29 New Feature: The new parameter OFFICIAL_NODE allows to overrule the default algorithm used to find the official node name. This is especially useful in an environment where the maschine has several network interfaces, for which separate 'hostnames' are assigned or where 'uname' resolves to a 'nickname' instead of a official hostname. If this parameter is not set or set to empty string, the default algorithm is used. If it is set, the start info output in knldiag is modified. Instead of SERVERNODE: nodename the message is Using node name from OFFICIAL_NODE parameter: nodename PTS: 1117840 since: 7.3.00.29 Bug fixed: the installation parameter KERNELDIAGSIZE can be set to any value >= 100. By now it was always reset to 100. PTS: 1117266 since: 7.3.00.29 Bug fixed: two errors: 1: ANSI-SQLMODE, identifier longer than 18 character including two consecutive " --> endless loop 2: SQLMODE <> ANSI, identifier including two consecutive " --> -5015 missing keyword now in all SQLMODE two consecutive " are handled correctly, the maximum identifier-length is handled correctly PTS: 1116858 since: 7.3.00.29 Bug fixed: During table load executed by the SAP DB Loader the loaded table should be set to read only. Unfortuntely the read only set is removed with the first package send by the loader. In case of concurent access to the loaded table the data will be corrupted. PTS: 1116863 since: 7.3.00.29 Bug fixed: fixed bug: Default values for LONG/LONGFILE columns were not restored correctly during Tableload resulting in 'Move errors' when these default values should be used PTS: 1116936 since: 7.3.00.29 Bug fixed: fixes possible missing content of short column file (=missing data) after Tableload via replication manager if the table contains both LONG and LONGFILE columns PTS: 1116956 since: 7.3.00.29 Bug fixed: - fix for possible problem with constraints defined in database when migrating database to a hardware platform with different byte order with the replication manager; PTS: 1117170 since: 7.3.00.29 Bug fixed: fixed: TAB is not recognised as a whitespace character in ASCII mode PTS: 1117275 since: 7.3.00.29 Bug fixed: - fixed: problems with 'comment on' in unicode databases if comment can't be stored in a single record (comment consists of more than 4030 unicode characters) PTS: 1117285 since: 7.3.00.29 Bug fixed: fixes possible error -9205 during Alter Table ... Drop Column if several constraints are defined for the table and one of them has a name whose length is greater than 18 bytes PTS: 1117816 since: 7.3.00.29 Bug fixed: - fix for possible crash in case of long view definitions (unicode text size of view definition is larger than one record) in a unicode database instance PTS: 1117641 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances The dbm message "Kernel died before reaching cold state" can be seen, if something is wrong with parameter file. Since the parameter file contains name of 'knldiag' and the run directory of the database instance, the database kernel could not write into the 'knldiag' in that state. The support normally has nothing in its hand. 2) Solution to the problem The process that starts the database instance, knows the future run directory. Before it starts the kernel image it changes its current working directory and this way allows the kernel to use a relative path to open knldiag as first action. The kernel now opens the knldiag prematurly with unlimited size, but does not format it. After it successfully read the XParameter it formats the rest of knldiag as before. 3) Probability that the error occurs Normally very unlikely, but in case of problems with parameter file 100%. 4) Workaround The former 'x_start' program can be used to find the problem. If not available, the kernel itself can be started with the database instance as parameter. It will show its problem on the terminal. Actually x_start does not suppress standard output channel, but dbmsrv does. The diagnostic output missing is output of the kernel, not of x_start... PTS: 1117412 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances The kernel tests differrent algorithms for pipe accessing (fstat and poll). To do that a child process writes into a pipe. If the child process creation succeeded, but the child process did not wrote into the pipe after a second the kernel closes its test pipe prematurly and thinks that both pipe algorithms do not work. 2) Solution to the problem The process that is forked synchronizes with the kernel over a shared memory flag. The kernel gives the child process 30 seconds to write into the pipe. After that time a timeout message is written into knldiag and the pipe code checking is aborted. If the client did its writing in time, the kernel proceeds with the checking sequence. 3) Probability that the error occurs Very unlikely if a normal load is on the maschine. But if process switches need more than a seconds, it can happen. 4) Workaround Restart under lower load conditions. PTS: 1118348 since: 7.3.00.28 Bug fixed: ALTER TABLE MODIFY removes the NOT NULL property of a column. Workaround Specify NOT NULL explicitly in the ALTER TABLE MODIFY statement. PTS: 1115717 since: 7.3.00.25 Bug fixed: In an update trigger with several columns of variable length some NEW values contain invalid data. The problem may occur, if at least one value of a column of variable length changes its length. If this happens, there is no workaround to avoid the problem. One can only try to avoid columns of variable length. The problem is solved now. Recompilation of the corresponding trigger is not necsessary. PTS: 1116119 since: 7.3.00.25 Bug fixed: If a trigger references date or time columns of the triggering table, trigger execution may result in -3048 (Invalid date format). If the problem happens the only workaround is to change the datatype of corresponding columns from date/time to char(10). The problem is solved now, but trigger containing this problem must be recreated. PTS: 1116341 since: 7.3.00.25 Bug fixed: The statement SELECT * FROM DBPROCEDURES may return -9111 (move error), if mfetch is used for fetching and the result set contains many dbprocedures with long code definition. The problem mostly occured in SQL Studio. PTS: 1116788 since: 7.3.00.25 Bug fixed: If a table has more than one named constraint and one constraint is altered, then not this changed constraint is checked against the existing data of the table, but the last unnamed constraint. Even if the changed constraint is not fulfilled by the existing data, the alter table statement will succeed. There is no work around to avoid the problem. PTS: 1114336 since: 7.3.00.25 New Feature: implemented ALTER TABLE ... ADD ... DEFAULT, i.e. adding a column which receives a default in the same statement; all existing rows are updated to contain this default value in the added column PTS: 1114929 since: 7.3.00.25 New Feature: implemented ALTER TABLE ... ADD ... SERIAL; ALTER TABLE ... ADD ... DEFAULT SERIAL PTS: 1115630 since: 7.3.00.25 Bug fixed: ALTER TABLE MODIFY / ADD PRIMARY KEY / DROP PRIMARY KEY in a UNICODE-environment could result in Unicode-char-data which is not correctly filled with unicode-blanks, but with hexadecimal 01. This will be result in trouble during unicode-->ascii-conversion and during output and will prevent from correct results during comparison. This will only happen if the unicode-char-data is stored in a column of fixed length (first (n-1) column of primary key or with length n, n<=15). If one of the above commands will be used and there is a LONG UNICODE column in this table, error -108, file or table dropped will be the result. These bugs are fixed. PTS: 1115648 since: 7.3.00.25 Bug fixed: A parsed INSERT with value expression (not just simple values) or an INSERT..SELECT resulted in a nil_pointer_checking_error if called by JDBC, i.e. with the 'with_info'-flag in the order interface. This bug is fixed. PTS: 1115656 since: 7.3.00.25 Bug fixed: SET ROLE and other implicit used statements starting with SET can be used parse/execute now PTS: 1115727 since: 7.3.00.25 New Feature: to be more SQL99-entry-level-compliant now SELECT ... FROM uppertab,... HAVING ... (SELECT ... WHERE MIN(uppertab. ...)... ) is allowed, that means, in a subquery used in a HAVING-clause the WHERE-clause may use set_functions like MIN, MAX, SUM for columns from tables from the select(s) above (correlated columns) PTS: 1115731 since: 7.3.00.25 Bug fixed: for some complicated select usually resulting in an semantic error <> 100, it was possible to core in ak660two_phase, called from a660_query_execute, depending on the value of an uninitialized variable. This bug is fixed PTS: 1115975 since: 7.3.00.25 New Feature: the function HEXTORAW is now available in sqlmode INTERNAL, too, By now it was only available in sqlmode Oracle. PTS: 1115987 since: 7.3.00.25 Bug fixed: Pars/Execute now allows duplicate column names in select list of an EXPLAIN SELECT. By then -6001 was returned. PTS: 1116176 since: 7.3.00.25 New Feature: The new function/register UTCDATE is available, returning the UTC-timestamp, not the local one as TIMESTAMP/SYSDATE. UTCDATE is available in SQLMODEs INTERNAL and ORACLE. It returns a value of datatype TIMESTAMP (Oracle-date). It cannot be used for default. PTS: 1116206 since: 7.3.00.25 Bug fixed: Datatype FLOAT will allow only values between 1 and 126 even in SQLMODE Oracle PTS: 1116225 since: 7.3.00.25 New Feature: the 'sql-statement' PING (used to check if kernel and this session are alive) is available in sqlmode ORACLE, too PTS: 1116227 since: 7.3.00.25 Bug fixed: If -904 (result space exhausted) was found during execution of a stored procedure or a trigger, -9232 nil trans index was returned to the user. This bug is fixed. PTS: 1116313 since: 7.3.00.25 Bug fixed: Date-Time-Arithmetic could result in crash if date/Time-value was NULL. This bug is fixed. PTS: 1116325 since: 7.3.00.25 Bug fixed: If a column (CHAR (n) n > 255 or CHAR (x) UNICODE, x > 127) is updated and the new value is given using a subquery, the new value was truncated to a length ((n+1) MOD 256 )- 1 resp. (((x*2 + 1) MOD 256) - 1) / 2. Now the full value is used PTS: 1116398 since: 7.3.00.25 Bug fixed: A correlated column given without owner of the table will now check for the dba / systemdba as being the owner of the table. By now error -8010 is returned. PTS: 1116405 since: 7.3.00.25 Bug fixed: RESTORE LOG .. UNTIL did not work with Unicode-database. This bug is fixed. PTS: 1116634 since: 7.3.00.25 Bug fixed: two errors during an ALTER TABLE MODIFY (or any other command to restructure the data of the table, for example add/drop primary key) for a table which has triggers: 1. if there are more than 1 trigger on this table, only one will be there correctly after alter table modify, the other will result in -9205 if the corresponding dml-statement is done or the table should be dropped or the triggers be selected 2. if only one trigger is on the table and this is the delete trigger, this will not be there correctly after alter table modify. error -9205 will be seen as in the 1. variant PTS: 1114928 since: 7.3.00.25 Bug fixed: Dbmcli load_systab fails within ORADDV.py if db paramter _SERVERDB_FOR_SAP is set to "NO". The default value for this parameter is "YES" so this problem might occur rarely and only outside sap environment, PTS: 1115734 since: 7.3.00.25 Bug fixed: Outer join selects with functions in the select list produces result sets with strange values in it. Possible bypass is a from select. Example: select lower(a) from t1, t2 where t1.b = t2.c (+) could replaced by select lower(a) from ( select a from t1, t2 where t1.b = t2.c (+) ) PTS: 1115860 since: 7.3.00.25 Bug fixed: Possible core at select on lock system tables if a lock for a synonym object is pending. Such a lock exists if somebody creates or drops a synonym. Within SAP R/3 no synonyms are used. PTS: 1116009 since: 7.3.00.25 Bug fixed: Select produces a wrong result set precondition: - using of an asterisk in the select list - table consists only of primary key columns - index only strategy has do be used circumvention: - usage of columnnames instead of asterisk - avoiding index only strategy by droping index PTS: 1116198 since: 7.3.00.25 Bug fixed: For oracle compatibility local predicates in view selects flaged with outer join sign "(+)" should be executed after the view conditions although normaly these predicates are executed before join conditions. Example: create table r ( a int, b int) insert r values (1,1) insert r values (2,2) create table s ( x int, y int) insert s values (1,1) create view v as select r.a, s.x from r,s where r.b = s.y (+) select * from v where x (+) is null -> one result row select r.a, s.x from r,s where r.b = s.y (+) and s.x (+) is null -> two result rows PTS: 1116698 since: 7.3.00.25 Bug fixed: Possible wrong results if an index strategy is used on an index over a non key column which is altered via alter table modify. The modification could be an enlargement or a reduction of the column length. The fix includes a migration of the affected catalog entries. Additionally all affected indexes are flaged as not accessible. To bypass the problem drop and create the affected indexes. PTS: 1116777 since: 7.3.00.25 Bug fixed: Fixed a problem with datatype representation in the catalog views. After a tableload varchar columns are shown as char columns. The physical layout of the table is not affected. PTS: 1115899 since: 7.3.00.25 Bug fixed: Preconditions and circumstances For Indextrees with a level of at least 2 and large indexkeys, it may happen that the over/underflow operations cause an Add order followed by a deleteOrder for the next higher level. In this case the addOrder will cause an ABORT with segmentation fault. Probability that the error occurs rare Is there a WorkAround and how does this work ? Drop index and create it again. PTS: 1115886 since: 7.3.00.25 New Feature: Sometimes we found the situation, that B* trees of a table or an inexes are still present, even though there are no entries for that table in the catalog. In those situations we have no reasonable way to solve the problem. Now the new statement DIAGNOSE DROP FILE has been implemented, which drops all files of the specified . The caller must be a DBA and the catalog must not contain any traces of the specified PTS: 1116626 since: 7.3.00.25 Bug fixed: Selects which uses an index range or index scan to reduce the number of record accesses will not get the error -9011 "BD InvLIstNotFound". This was possible if the index scanning task (reader) collides with an updating task (writer) on the same index tree. The probability for this scenario is low, because it's necessary that in case of a read/write index tree lock collision the reader has to give up his locks and the updater has to change the page which was read before by the scanning task. Only in this constellation the error could occur. There is no workaround. Note that the data is still consistent. PTS: 1116104 since: 7.3.00.25 Bug fixed: The new expert parameter XP_MP_RGN_LOOP (Group SUPPORT) alllows supporters to override the precalculated value for MP_RGN_LOOP (Group EXTENDED). This allows the OVERRIDEfor MP_RGN_LOOP parameter that was not supported. PTS: 1116400 since: 7.3.00.25 Bug fixed: SQL cancel could lead to a termination of the session if it occurs during fetch operations (error -997, WSA_IO_PENDING). This error was fixed by using the newer Winsock 2.0 API to open the socket. PTS: 1115469 since: 7.3.00.25 Bug fixed: Execution of TABLELOAD via Replication Manager will not crash the kernel if only one data base page fits into the SQL PACKET. The probability of the error is 100 percent if the data base page size is configured to 32 KB and the _PACKET_SIZE is smaller than 65536 bytes. The workaround is to set the _PACKET_SIZE to a multiple of 32KB. PTS: 1115613 since: 7.3.00.25 Bug fixed: incorrect swapping of parts of long descriptors at places which are not critical for implementation, but may be irritating if seen in vtrace PTS: 1116011 since: 7.3.00.25 Bug fixed: Fetch Pos with postion greater then 32K fetch the wrong record. Not R/3 relevant PTS: 1115762 since: 7.3.00.25 Bug fixed: Output parameters of db-procedures of data type DATE,TIME or TIMESTAMP may be corrupted, if the sessions date/time format differs from INTERNAL. In this case only the first 8 Bytes (Date,Time) or 26 Bytes (Timestamp) contain the correct content, the content of the remaining bytes is unpredictable. The problem is fixed now. PTS: 1116656 since: 7.3.00.25 Bug fixed: select .... FROM a COMPLEX view will result in empty LONG-value even if there is one real LONG value. COMPLEX views are for example those with subquery/UNION/DISTINCT (see reference manual). This bug is now fixed PTS: 1116007 since: 7.3.00.25 Bug fixed: Simultanous start of two database instances could end with first database failing to start and removing seconds database main shared memory segment during its cleanup. The second database was still running, but its shared memory segment was no longer accessible. The second database therefore can only be killed manually by looking up its process id or using db_clear. Workaround is never to start two database instances at the same second. PTS: 1115909 since: 7.3.00.24 Bug fixed: The catalog migration of build 23 produces unpredictable errors at restart time. In worst case, the kernel crashes. The problem occurs, if the database contains complex tables, that need more than one record of meta data in the catalog. The problem is solved now. PTS: 1115955 since: 7.3.00.24 Bug fixed: On database instance with cserv parameter PACKET_SIZE > 64K a fetch on copied result could provide wrong results. Use the explain statement to check if a result is copied or not. As bypass you could reduce the PACKET_SIZE. PTS: 1114493 since: 7.3.00.23 Bug fixed: A call of a db-procedure crashed the kernel with a stack overflow. This happened after the db-procedure has been dropped and recreated. The caller has been different to the owner of the procedure and the privilege has been granted via a role. After the execute privilege has been granted to the role again, the problem does no longer occur. This problem is solved now. PTS: 1115044 since: 7.3.00.23 Bug fixed: ALTER TABLE ... ADD FOREIGN KEY returns 350 (integrity violation), even if no foreign key contradicts the constraint. The error occurs, if the referenced columns are identified via an unique index and if the referencing table contains a certain number of rows ( > 8K / foreign key length). If this happens, there is no way to avoid the error. The problem is solved now. PTS: 1115515 since: 7.3.00.23 Bug fixed: Alter Table modify may have produced currupted catalog information. This problem will be repaired by a catalog migration, which takes place with the first restart with 7.3.0 Build 23. PTS: 1114428 since: 7.3.00.23 Bug fixed: There was an error -3005/-4000 returned incorrectly because of missing LAST_DATA from/to the precompiler together with select-fetch-optimization. This bug is fixed. PTS: 1114513 since: 7.3.00.23 Bug fixed: WHERE POS ... is possible now even in UPDATE/DELETE PTS: 1114779 since: 7.3.00.23 Bug fixed: Defaults for LONG-columns are not allowed with INSERT..SELECT. Even the default '' will work correctly for normal inserts now. PTS: 1114830 since: 7.3.00.23 Bug fixed: In dbprocedures/triggers NEW.colname / OLD.colname can be now used even after CREATE TABLE TEMP.tablename. By then -3011 was returned for NEW/OLD.colname PTS: 1115208 since: 7.3.00.23 Bug fixed: The creation of a TEMPORARY table results in -9205 AK Catalog information not found:FFFD00............001100.. (dots being 'any' hex-value) if one column has a default AND a column_constraint like for example: default 'P' constraint in ('P', 'K') PTS: 1115265 since: 7.3.00.23 Bug fixed: all parameternames of dbprocedures are returned after parsing PTS: 1115409 since: 7.3.00.23 Bug fixed: error -9400 occured during an insert..select into a table with many integer/smallint-columns plus many NOT NULL-columns, the sum of both numbers exceeding the number of ALL columns in the table. In this case the cache for system-infos was partly destroyed. This bug is fixed. PTS: 1115485 since: 7.3.00.23 New Feature: Now following is allowed: UPDATE .. SET = NULL even if more than one record is stored in the table. By now error '-7012 More than one update row not allowed' was returned PTS: 1115320 since: 7.3.00.23 Bug fixed: If a column - was a variable length column (added with ALTER TABLE ADD or definded as VARCHAR or defined as CHAR (n) n>30 AND - was modified (the length was modified) using an ALTER TABLE MODIFY AND - is an indexed column (column used in an index) or is the last column of the primary key then the meta-data of this column and not fully correct. This results in wrong/missing results if this index/primary key is used for optimized access during select/update/delete with qualification This bug is fixed. Existing inconsistent meta-data are not changed with this Errormessage. Another one will exist for this. PTS: 1114933 since: 7.3.00.23 Bug fixed: Database kernel returns unexpected sqlcode 100 at parse time. This error is a result of an uninitialized variable and could happend any time. There is no known bypass. PTS: 1115096 since: 7.3.00.23 Bug fixed: Unexpected long runtime for update statistics command if only one table row fits into a page or table includes long columns. PTS: 1115175 since: 7.3.00.23 Bug fixed: No more deadlocks on page locks caused by ODER BY strategies on index trees. This error could occure if the optimizer decides to use a merge strategy on a index tree to bring the primary keys of the involved inversion lists into an ascending oder. If during the merge step a concurrent working task tries to update one of this inversion lists a deadlock might occure. If the deadlock occure and the patch is not available the configuration parameter OPTIM_MAX_MERGE should be set to 1. PTS: 1115489 since: 7.3.00.23 Bug fixed: The internal command STATE SAVE, called by dbmcli-command backup_state, returned error -8000 in case of a unicode-database. Now it works, no matter if unicode-database or not The output in dbm.utl concerning the info for multiple tapes will now look correctly even if the database is in unicode-mode. By now unicode-info was written which included hex-00-bytes which could not be handled correctly PTS: 1114469 since: 7.3.00.23 Bug fixed: Backups done from different hosts in a cluster are not compatible during restore, because they have stored a nodename within the backup. Now only the dbidentifier is checked and must be equal. PTS: 1114565 since: 7.3.00.23 Bug fixed: 1. If date/time/timestamp variables or parameters are used in a, stored procedure the required date/time format is ignored. Instead date/time format INTERNAL is used always. This produced problems, if the stored procedure is called from ODBC or JDBC, because in these environments format ANSI is required. The problem is solved now; however recompilation of the corresponding stored procedures is required. 2. error -9111 occurred while creating or executing stored procedures. There are two reasons for this behaviour : a) if the size of all parameters and variables exceeds 8K. b) an uninitialized variable in the byte code of the stored procedure. Both problems have been solved; however recompilation of the corresponding stored procedures is required. PTS: 1112252 since: 7.3.00.23 Bug fixed: When the first tape of a log-recovery was wrong (-7075), a backup-session was kept. If a script or user ignores the -7075 and continues with recover_replace the kernel hangs. A workaround is to cancel the backup_session after the error -7075 occurs (DBMGUI does this automatically) and to start the recovery with the correct tape. Now the backup-session will be canceled automatically if the first tape of a restore_log is wrong. Due to this a subsequent recover_replace will now be rejected with err -7078. PTS: 1115361 since: 7.3.00.23 Bug fixed: - when trying to modify a primary key on a referenced table, error -7038 was issued even when the key itself was not referenced - in ALTER TABLE MODIFY: if a non-key column was shortened and the primary key consisted of several columns (and was not changed during the operation) an invalid record was constructed and possibly written to disk. - possible endless loop during ALTER TABLE if the table was referenced/referenced more than 30 tables PTS: 1115403 since: 7.3.00.23 Bug fixed: Fixed possible loss of data during an INSERT after an ALTER TABLE MODIFY in a table with LONG columns. LONG column data was not inserted. PTS: 1115436 since: 7.3.00.23 Bug fixed: Internal only: If a database crashed inside a malloc call due to a corrupted malloc structure, a deadlock is no longer produced. The deadlock resulted in a kernel crash without any stack backtrace. Only the SIGNAL 11 was reported. The problem can be made visible on SUN using the /usr/proc/bin/ptrace command while the database kernel is still in the deadlock situation. The output contains localtime_r call in the signal handler thread. The situation resolves itself, since the database watchdog process does not wait forever, but for 10 minutes before killing the deadlocked database kernel process. PTS: 1115219 since: 7.3.00.23 New Feature: During kernel start the operating system is tested for its ability to report pending input on pipes. This feature was added to allow the opening of pipes during restore to select a working method, since operating system change in this area had not been reported. The problematik candidate was LINUX with OS Kernel >= 2.4, where restore from pipe was no longer possible, since the number of pending input bytes was no longer returned by the corresponding fstat() system call. There is no workaround for restore from pipe. In such a situation you must save the restore image to disk or tape and restore from disk or tape. PTS: 1114451 since: 7.3.00.22 Bug fixed: "Error -9111 System error: Move error" from a join select with result record lenght greater than max record length. Now join results in -2003 Output columns too long PTS: 1114672 since: 7.3.00.22 Bug fixed: Possible core at outer join select with more than three tables and outer join is not the last join step PTS: 1113460 since: 7.3.00.21 New Feature: Data base migration via save/restore from 7.2 to 7.4 is enabled for non liveCache instances. In data base state cold respective admin the utility command >migrate< must be send to the kernel. After successfully execution the complete cold data base backup could be made, Note that the migration is possible only in the state cold. Each restart removes the option to make another migration save. The making of a migration save has not effect on the consistency of the data base. PTS: 1114222 since: 7.3.00.21 Bug fixed: a user no longer can rename himself. This must be done by the users owner. Exception : the sysdba can still rename himself. PTS: 1113280 since: 7.3.00.21 Bug fixed: granting a role to oneself returns korrect error message (-7017) now PTS: 1113368 since: 7.3.00.21 Bug fixed: avoid kernel crash in the course of accessing system table locks or lockstatistics. PTS: 1114095 since: 7.3.00.21 Bug fixed: avoids wrong usernames in catalog table USERS after create user. PTS: 1114109 since: 7.3.00.21 New Feature: 1. Keyword SET of may be omitted. ::= [SET] = Example : VAR i INTEGER; i = 1; 2. New statements. ::= | | | ::= | ::= CASE ... [] END [CASE] ::= CASE ... [] END [CASE] ::= WHEN [, ...] THEN ::= WHEN THEN ::= ELSE Rules : in case of a must be compatible with all s. in case of a all s must be different. if no exists and no fulfills the qualification, an error will be generated. Examples : case val when 1 then str = 'one'; when 2,3 then str = 'two_or_three'; else str = 'not_in_one_two_three'; end; case when val = 1 then str = 'one'; when val = 2 or val = 3 then str = 'two_or_three'; else str = 'not_in_one_two_three'; end; ::= RETURN ends a procedure call and returns control to the caller. Example : create dbproc p(out i integer) as i = 0; while (true) do begin i = i + i; if i = 10 then return; end; end; i = 0; procedure returns 10 ::= DROP TABLE TEMP.
drops a temporary table. 3. Better error messages. PTS: 1113259 since: 7.3.00.21 Bug fixed: it is not possible any more to use a column of datatype LONG as primary key column PTS: 1113263 since: 7.3.00.21 New Feature: now in Oracle mode the referential constraint option ON DELETE SET NULL is allowed PTS: 1113269 since: 7.3.00.21 New Feature: for special commands used by dbm the columnnames_part is now returned according to mess_code (ascii/unicode(_swap)) given in command interface PTS: 1113283 since: 7.3.00.21 Bug fixed: even if during definition of a terminal character or mapchar set a hexvalue is used which includes values outside the ranges '0'..'9','a'..'f','A'..'F' the kernel will not core PTS: 1113294 since: 7.3.00.21 New Feature: REVOKE will be able to handle the cascade_option according to the reference manual PTS: 1113319 since: 7.3.00.21 New Feature: IS [NOT] NULL-qualifications together with outer_joins are now handled correctly before/after the join PTS: 1113495 since: 7.3.00.21 New Feature: error -6000 in a join after a join finished with -8 (only seen by precompiler, not by application) will not happen any more PTS: 1113788 since: 7.3.00.21 New Feature: long comments can be selected even in unicode-environments PTS: 1113802 since: 7.3.00.21 New Feature: in unicode-environment selecting from a complex view, for example defined using UNION, sometimes resulted in the correct number of results but with disarranged values. Now the correct results are returned even in these special cases. PTS: 1113926 since: 7.3.00.21 New Feature: JDBC-updateable resultsets can be used even for tables with referential constraints PTS: 1113956 since: 7.3.00.21 New Feature: Triggers will now work correctly even if they use values of columns of the kind: (VAR)CHAR (n) ASCII/EBCDIC/BYTE n > 254 (VAR)CHAR (n) UNICODE n > 127 PTS: 1113978 since: 7.3.00.21 New Feature: time-values with values for hour > 23 are now taken modulo 24. ODBC does not allow larger values PTS: 1114017 since: 7.3.00.21 New Feature: mixtures of union, correlated subquery and from-selects will now return the correct error-message and will not seem to work correctly although they do not do what they are expected to do PTS: 1114071 since: 7.3.00.21 New Feature: the opportunity of receiving -9206 (duplicate sysinfo) will be reduced PTS: 1114083 since: 7.3.00.21 New Feature: Datatype NUMERIC is allowed in SQLMODE internal, too PTS: 1114105 since: 7.3.00.21 New Feature: resultsets can be used in from-parts of further selects even if they are in dbprocedures where the owner has to be specified PTS: 1114261 since: 7.3.00.21 New Feature: HAVING COUNT() will now result the correct result even if the counting was done using an index PTS: 1113574 since: 7.3.00.21 New Feature: the support-command vtrace can be used with parse/execute PTS: 1113971 since: 7.3.00.21 Bug fixed: improved view optimizing, if view definition contains reference names ( AS .
. in triggers and dbprocedures. This has been corrected PTS: 1113010 since: 7.3.00.20 Bug fixed: avoids kernel crash if a key of a table with trigger is modified PTS: 1113215 since: 7.3.00.20 Bug fixed: solves problem of kernel crash, if a cascading delete for a foreign key table with delete trigger is executed. PTS: 1112843 since: 7.3.00.20 Bug fixed: precondition: a select statement leads to an index only strategy, which index is a permutation of the primary index failure: wrong result set is possible PTS: 1112833 since: 7.3.00.20 Bug fixed: 'comment on view ...' returns better error message PTS: 1108366 since: 7.3.00.20 New Feature: function decode now works correctly with every combination of ascii and unicode-data PTS: 1112768 since: 7.3.00.20 New Feature: misbehaviour of WHERE (substr(?,1,1) IS NOT NULL) resolved PTS: 1112957 since: 7.3.00.20 New Feature: CEIL/FLOOR of values between -1 and +1 will now work correctly PTS: 1112970 since: 7.3.00.20 New Feature: the internal feature sp1m_hello for check of living session will now work again PTS: 1112984 since: 7.3.00.20 New Feature: The length of filenames specified for (AUTO)SAVE LOG is restricted to 53 to avoid misleading errors like -3020 PTS: 1113016 since: 7.3.00.20 New Feature: during shutdown the incorrect error -4004 will not be shown for known tables any more PTS: 1113057 since: 7.3.00.20 New Feature: minimize the 'chance' to receive -9206 AK duplicate catalog information after complex unions PTS: 1113101 since: 7.3.00.20 New Feature: execution of create dbproc will not result in -8 any more if such semantic-errors like -5015 (too many results) or -4005 unknown column name are returned from the (wrong) statements in the dbproc PTS: 1113139 since: 7.3.00.20 New Feature: now parameter names allow real unicode character to be used in them PTS: 1113166 since: 7.3.00.20 New Feature: the order interface will now be returned as expected even if 1. unicode-database and 2. ascii order interface and 3. create dbproc/create trigger with some syntax/semantic error in a sql-statement IN this dbproc/trigger PTS: 1111257 since: 7.3.00.20 New Feature: SYSMON_TASK_DETAIL will show even total times, not only average PTS: 1111147 since: 7.3.00.20 Bug fixed: avoids sqlcode -9 when selcting system table lock_waits PTS: 1112916 since: 7.3.00.20 New Feature: several date- and time-functions will not result in an error any more if the first parameter is a timestamp-string-literal. Up to this release it was always expected that a string-literal is a date or time, but no timestamp PTS: 1112976 since: 7.3.00.20 New Feature: in case a column-referencename is used in the select-list which is equal to a columnname in a from-table, the order-by-clause will now use the referencename and not the not-selected columnname PTS: 1112485 since: 7.3.00.20 Bug fixed: fixed some problems with password handling PTS: 1112808 since: 7.3.00.20 Bug fixed: Possible wrong results within join selects with like predicates useing wildcards for exactly one character ('?','_') PTS: 1112914 since: 7.3.00.20 Bug fixed: wrong or missing output in "messblock" vtrace PTS: 1112989 since: 7.3.00.20 Bug fixed: Core on join view creation if a foreign key exists between the tables and no join qualification is given. PTS: 1113066 since: 7.3.00.20 Bug fixed: possible core within join select with index strategies and null values in join columns. PTS: 1113146 since: 7.3.00.20 Bug fixed: special compiler switch for vsp41 to improve float handling PTS: 1112820 since: 7.3.00.20 Bug fixed: Utility receives no log-full, if 0 pages left on log device. PTS: 1112885 since: 7.3.00.20 Bug fixed: Wrong result if select via index was interrupted. PTS: 1112971 since: 7.3.00.20 New Feature: FOR REUSE is allowed even in SQLMODE Oracle PTS: 1112508 since: 7.3.00.20 Bug fixed: disable DEFAULT_CODE=UNICODE for non-unicode db PTS: 1111935 since: 7.3.00.20 Bug fixed: The first delimiter "|" in the file DBM.KNL was overwritten in the case of an error during data-backup. This will not happen anymore. PTS: 1112597 since: 7.3.00.20 New Feature: all parameternames of dbprocedures are returned after parsing PTS: 1112986 since: 7.3.00.20 New Feature: inconsistent column-constraints (NULL + NOT NULL, NULL + PRIMARY KEY) are rejected PTS: 1113019 since: 7.3.00.20 Bug fixed: On disk full, registration returns system_error now PTS: 1112819 since: 7.3.00.20 Bug fixed: Reduce object optimization for successful create index PTS: 1112488 since: 7.3.00.19 Bug fixed: select ... from tab where ((P1 or P2 ) and (P3 or P4 ) or P5 ....) possibly delivers wrong result set PTS: 1112638 since: 7.3.00.19 New Feature: In case of using a bad file the root page no is written into the knldiag file PTS: 1112678 since: 7.3.00.19 Bug fixed: dbproc compiler now produces correct code in try/catch block of a db-procedure PTS: 1112697 since: 7.3.00.19 Bug fixed: according to the reference manual varchar is now allowed as data type of a local variable of a db-procedure PTS: 1112383 since: 7.3.00.19 Bug fixed: in a db-procedure the functions format, language, date, time, timestamp, utcdiff, user, usergroup, uid, sysdba, localsysdba, transaction are now evaluated at run time of the db-procedure call. Up to now, the functions have been evaluated at compile time of the procedure PTS: 1112313 since: 7.3.00.19 Bug fixed: selects from some special kinds of views do not core any more PTS: 1112316 since: 7.3.00.19 New Feature: better errormessage for illegal lengths of datatypes PTS: 1112322 since: 7.3.00.19 New Feature: Automatic restart_shutdown now works again as in version 7.2. Some DBs only reached the cold state, not the warm one. PTS: 1112421 since: 7.3.00.19 New Feature: New syntax available: subquery within the select list; for example: INSERT INTO tab VALUES (1,2,(SELECT 4711 FROM dual)) although as in this case, it is not necessary PTS: 1112472 since: 7.3.00.19 New Feature: Datetimeformat ISO is not compliant to DB2 any more. It is compliant to the format defined by the internal standards organization: Date: 'YYYY-MM-DD' Time: 'HH:MM:SS' TimeStamp: 'YYYY-MM-DD HH:MM:SS.MMMMMM' Datetimeformat ANSI does not exist any more ODBC and JDBC will work with datetimeformat ISO. PTS: 1112545 since: 7.3.00.19 New Feature: INSERT..SELECT into table with column which has DEFAULT serial now works correctly even if nothing is specified for this serial-column PTS: 1112878 since: 7.3.00.19 New Feature: SET ISOLATION LEVEL possible even for SQLMODE Oracle PTS: 1112607 since: 7.3.00.19 Bug fixed: Bugfix for error -8 or -3007 at selects on joinviews with more than 255 columns. Recreation of view would bypass the problem. PTS: 1111928 since: 7.3.00.19 New Feature: Now it is impossible to change the _UNICODE installation-parameter after installation PTS: 1112566 since: 7.3.00.19 New Feature: Log Full is now shown in INFO_STATE PTS: 1111355 since: 7.3.00.19 Bug fixed: DEVi thread creation problems are reported in knldiag now PTS: 1112465 since: 7.3.00.19 New Feature: Backup history file got new header and separated time stamp Starting entry in knldiag got extra information about version PTS: 1112520 since: 7.3.00.19 Bug fixed: x_cons was not found in installation with independ program paths PTS: 1112679 since: 7.3.00.19 Bug fixed: If creating of message buffer worker thread fails, the former missing error message is now written to knldiag. PTS: 1112716 since: 7.3.00.19 Bug fixed: LeafCountPropagation results in segmentation fault PTS: 1111604 since: 7.3.00.18 New Feature: allow 'grant update', even if grantor has only restricted update privilege, for example if table contains a serial column. PTS: 1111625 since: 7.3.00.18 Bug fixed: it's now possible to drop a default value of a column, even if the default value has been serial. PTS: 1111965 since: 7.3.00.18 Bug fixed: if no user defined name for a foreign key is given, the kernel contructs a unique name from the primary key table and the foreign key table. This name could become too long (64 chararcters). The kernel now ensures, that the contructed name has a length of at most 32 characters. PTS: 1111462 since: 7.3.00.18 New Feature: implemented calls of db-procedures in db-procedures. PTS: 1105412 since: 7.3.00.18 New Feature: Sequences count as customers expect it, that means: even the first fetch of a select will not skip one sequencenumber. PTS: 1110095 since: 7.3.00.18 Bug fixed: .CURRVAL returns the value THIS session used at last for .NEXTVAL By now it returned the last NEXTVAL-value of ANY session PTS: 1111667 since: 7.3.00.18 New Feature: DEFAULT SERIAL now usable even in unicode-DB PTS: 1111710 since: 7.3.00.18 Bug fixed: check against misusage of a_unionptr PTS: 1112118 since: 7.3.00.18 New Feature: Correlations using views with search-condition (which may not work correctly with only version 7.3.0.17) will work correctly again PTS: 1112199 since: 7.3.00.18 New Feature: referential constraints with internal lengths > 255 are possible now PTS: 1112104 since: 7.3.00.18 Bug fixed: Fixed some performance problems because of errors in the join sequence search. PTS: 1112012 since: 7.3.00.18 Bug fixed: Missing switch in case statement: temp rollback PTS: 1112094 since: 7.3.00.18 Bug fixed: Long symbols no longer lead to empty lines in stack back trace Loader: ======= PTS: 1117142 since: 7.3.00.29 Bug fixed: Fixed bug in Replication Manager Command Line Interface When connecting to a database which name contained special characters like hyphen with: repmcli -u , -d name-2 the client stopped executing with the following error message: 'Error connecting user to database name-2 on : -25281 Syntax error at position 27 (Unexpected token: name-2).' PTS: 1116781 since: 7.3.00.29 Bug fixed: Fixed bug in processing TABLEEXTRACT command: Loader does not extract long value pages if these LONG columns are defined with data type LONG FILE. PTS: 1116845 since: 7.3.00.29 Bug fixed: Fixed bug in processing TABLEEXTRACT command: Error running TABLEEXTRACT on tables with LONG columns that have a user defined default. The Loader did not extract the default values of these LONG columns. PTS: 1116991 since: 7.3.00.29 Bug fixed: Fixed bug in processing DATAEXTRACT command: Running a command like: 'DATAEXTRACT from
OUTFIELDS 1 outfile COMPRESSED' where column is of a numeric data type an internal RepMan buffer to hold the transformed data is too small. This has no impact on the execution of the command, though. PTS: 1117112 since: 7.3.00.29 Bug fixed: Fixed bug in processing DATAEXTRACT command: Running the command 'DATAEXTRACT FOR DATALOAD
outfile COMPACT' on a table with columns of data type BYTE whose length is smaller than 20 bytes that contain NULL values the Replication Manager allocated a too small internal buffer to hold the transformed data. This has no impact on the execution of the statement, though. PTS: 1117272 since: 7.3.00.29 Bug fixed: Fixed bug in processing TABLEEXTRACT/TABLELOAD commands: Running TABLEEXTRACT TABLE on UNIX and a subsequent TABLELOAD TABLE on Windows the TABLELOAD fails with the following error message if the table extracted/loaded does not have defaults/constraints defined: '/ E -25329: The given data file '' was not generated using TABLEEXTRACT (manipulated primary data header page).' PTS: 1117400 since: 7.3.00.29 Bug fixed: Fixed bug in processsing TABLEEXTRACT/TABLELOAD commands: Extracting tables on UNIX using TABLEEXTRACT command, and loading these data on Windows OS using TABLELOAD command Replication Manager may crash if the tables to be loaded have char type columns with a length greater than 255 byte. The error message reported is: 'Replication server error (-4 : 'received a garbled packet')' PTS: 1117436 since: 7.3.00.29 Bug fixed: Fixed bug in processing TABLELOAD command: Running the command TABLELOAD ... RESTART and the restart file is either empty or does not exist the Replication Server crashes. PTS: 1117463 since: 7.3.00.29 Bug fixed: Fixed bug in Replication Manager client repmcli: Running a TABLELOAD ALL command that fails at a certain table repmcli reports 'Successfully executed' instead of reporting 'Error occurred' as the following example illustrates: 'TABLELOAD ALL INFILE ' outfile '' -25011 Error executing internal SQL statement 'DELETE "TBLCARRIER"': 'SQL error -115 = Table is read only (error posi tion: 19)'. Successfully executed' PTS: 1117486 since: 7.3.00.29 Bug fixed: Fixed bug in DATALOAD command processing: Running a command like 'DATALOAD TABLE
COMPACT' RepMan stopped processing with the following error message E -25503 : Error reading file : Maximum read length exceeded.' if the table to be loaded has more than two columns of data type long. PTS: 1117679 since: 7.3.00.29 Bug fixed: Fixed bug in REPMCLI: Running SQL Statements using REPMCLI following errror message was generated if those statements exceeded a length of 15 kByte: 'Error processing command; command is too long Maximum command length: 15200' Now length of commands is limited by the packet size of the database kernel communication packet. PTS: 1117772 since: 7.3.00.29 Bug fixed: Fixed bug in TABLEEXTRACT TABLE command processing Running a TABLEEXTRACT TABLE command to extract a table that's not owned by the user or the user does not have any priviliges on that table Replication Manager reports success and creates a data file of 9 kByte size. The entry in the log file repserver.log is as follows: / M Sum of extracted tables 0, sum of tables not extracted because of errors 0 / * / M TABLE EXTRACT successfully executed Upon the attempt to load the data using the TABLELOAD TABLE command RepMan reports the following error message: /E -25329: The given data file '' was not generated using TABLEEXTRACT ((missing table description). PTS: 1117775 since: 7.3.00.29 Bug fixed: Fixed bug in REPMCLI: Running SQL Statements that have comments masked with /**/ failed because REPMCLI treated the single slash in the beginning of a line as a command separator. The new command separator is a double slash and this is the only command separator recognized by REPMCLI. PTS: 1117784 since: 7.3.00.29 Bug fixed: Fixed bug in SQL Statement processing: Creating a DB procedure or trigger using RepMan could fail with the following error message: '/ E -25010: SQL error -5016 = Missing delimiter: ; (error position: )' The last delimiting semicolon is cut by RepMan because it was still treated as an command separator. With this version RepMan does not recognize a semicolon at the end of an SQL statement as a command separator. PTS: 1117976 since: 7.3.00.29 Bug fixed: Fixed bug in TABLEEXTRACT/TABLELOAD ... COMPACT command processing: The database to extract data from is defined UNICODE but all character type columns are defined with code attribute ASCII. Table to extract/load contains long columns. Data was extracted using 'TABLEEXTRACT TABLE ... COMPACT' command. Upon the attempt to load these data using 'TABLELOAD TABLE ... COMPACT' command RepMan stopped processing with the following error message: // E -25010: SQL error -3989 = Invalid long column length (error position: ) PTS: 1116652 since: 7.3.00.29 Bug fixed: for the tool LOADER it is not necessary to put 'x' in front of a byte-stringliteral PTS: 1117465 since: 7.3.00.29 Bug fixed: Fixed bug in Replication Manager client REPMCLI: Replication Manager client repmcli crashed running the command to get the version of Replication Manager server: 'repmcli -V' PTS: 1117960 since: 7.3.00.29 Bug fixed: Fixed bug in client connect handling of the Loader server. If connecting from a UNIX Loader client to a UNIX Loader server the server crashed. Problem was processing of the implicit command 'SET LOGOWNER ' if an error occurred during processing. PTS: 1118381 since: 7.3.00.29 Bug fixed: Fixed bug in DATALOAD/DATAUPDATE command processing: Using DATALOAD/DATAUPDATE command to load LONG values on UNIX systems may lead to an unexpected Replication Server process termination with the following error message: 'Replication server error (-4 : 'received a garbled packet')' PTS: 1115552 since: 7.3.00.25 Bug fixed: Fixed bug in processing session cmd: If the DB server name connecting to with either repmcli or with the USE USER command is a full qualified DNS name (thus may contain dots and or hyphens like ABCD.EF-GH.IJK) RepMan generated the following error message: '/ E -25281: Syntax error at position 46 (Unexpected token: ).' where token is either a dot or a hyphen. If instead of the hostname of the server the IP address is specified (like 123.879.888.999) RepMan generated the following error message '/ E -25281: Syntax error at position (Unexpected integer value: 123).' PTS: 1115572 since: 7.3.00.25 Bug fixed: Fixed bug in repmcli command line option processing: Running repmcli without option -d the output generated by repmcli concatenated 2 unrelated output rows to a single row like 'Replication server version: No database name given to connect to.' PTS: 1115660 since: 7.3.00.25 Bug fixed: Fixed bug in processing FASTLOAD cmd: Inserting blanks into variable long char columns resulted in corrupt data on the database table. Instead of blanks Replication Manager inserted NULL values. This implied even if the column was defined as not allowing NULL values. PTS: 1115771 since: 7.3.00.25 Bug fixed: Fixed bug in processing FASTLOAD cmd: Replication Manager may stop processing FASTLOAD cmd without any error message. Instead it reports: / M Last transaction committed at input line 0 / * / M Sum of inserted lines 0, sum of rejected lines 0 even if there was data to be processed. PTS: 1116025 since: 7.3.00.25 Bug fixed: Fixed bug in processing CATALOGEXTRACT command: Extracting the schema of a table that has columns defined as CHAR with an empty value as default RepMan creates those column definitions without default value specification. PTS: 1116026 since: 7.3.00.25 New Feature: General bug fix: To ease propagating bug fixes from UNICODE development release 7.3.1 to delivery release 7.3.0 the sources were adapted. PTS: 1116488 since: 7.3.00.25 Bug fixed: Fixed bugs in DATALOAD/FASTLOAD command: In case a NULL condition is specified in a FASTLOAD/DATALOAD command like DATALOAD TABLE
1 DEFAULT NULL INFILE NULL '' and the data contains beside the null value representation empty values RepMan interpreted the empty values as NULL values instead of interpreting them as empty values. The attempt to insert empty values into CHAR BYTE columns forces RepMan server to crash. PTS: 1116670 since: 7.3.00.25 Bug fixed: Fixed bug in DATALOAD/DATAUPDATE/FASTLOAD command processing: Running the command DATAUPDATE TABLE
1 ... N-1 SET N-1 INFILE COMPRESSED where the last 2 (or more) columns point to the same position in data file and one record in data file does not have more than N-1 data fields, the Loader stops processing the command with the following error message: '/ E -25319: Missing data for specified column ' PTS: 1116746 since: 7.3.00.25 Bug fixed: Fixed bug in processing DATAUPDATE command: Replication Server stops processing DATAUPDATE command without further notice if LONG values are to be updated and the data qualifies at least one record that does not exist in the table to be updated. PTS: 1116211 since: 7.3.00.25 Bug fixed: Fixed bug in processing DATAUPDATE command: Running on a table like 'CREATE TABLE
( char(10), integer, primary key ()' a DATAUPDATE command like 'DATAUPDATE TABLE
1 SET 2 INFILE ' with data like '"first data", "10"' RepMan may have stopped with the following error message '/ E -25302: This value is not a valid number: first data' PTS: 1114353 since: 7.3.00.23 Bug fixed: Fixed bug in repmcli (Replication Manager Command Line Interface): Repmcli cored when reading command which length exceeded the conversation packet length of 16kB PTS: 1114372 since: 7.3.00.23 Bug fixed: Fixed bug in processing DATALOAD cmd: When loading empty LONG values with a position specification like '1-0' in the data file Replication Manager stopped executing the command with the following error message: '/E -25354 LONGFILE specification missing or incorrect.' PTS: 1114382 since: 7.3.00.23 Bug fixed: Fixed bug in session command processing: Running the command 'USE SERVERDB ' resulted in error '/ E -25005: User () logon to database DB73_U failed: SQL error -4008 = Unknown user name/password combination (error position: 1)'. This error happened for instance running repmcli -d -b ' because repmcli issues a 'USE SERVERDB' command in this case . PTS: 1114455 since: 7.3.00.23 Bug fixed: Fixed bug in processing FASTLOAD cmd: Replication Manager did not trim values before inserting into integer or char byte primary key column. Example: - created table: 'create table test(a integer primary column)' - loaded values 10 and 11 into table using fastload - selected values The statement 'select a from test where a between 10 and 11' resulted in 10. Expected result was 10 and 11. The statement 'select a from test where a = 10' produced no result . Expected result was 10. PTS: 1114506 since: 7.3.00.23 Bug fixed: Fixed bug in processing DATALOAD/FASTLOAD cmds: Replication Manager removed leading blanks from char data if the data was at first position in the data file and an empty delimiter was specified. PTS: 1114559 since: 7.3.00.23 Bug fixed: Fixed bug in processing DATALOAD/FASTLOAD commands: Replication Manager stops executing DATALOAD/FASTLOAD commands with error message '/E -25302 This value is not a valid number: ' if the number specification for the input file was defined as '//,/', i.e. if the digit grouping symbol is defined as empty (= default) and the decimal symbol is defined to be a char not representing the default. PTS: 1114774 since: 7.3.00.23 Bug fixed: Fixed bug in processing TABLELOAD cmd: Running TABLELOAD to load data into a database with pages of a size of 32k Replication Manager stops executing with the following error message: '/E -25504: Error reading file '.0001': Maximum read length exceeded.' PTS: 1114199 since: 7.3.00.23 Bug fixed: Fixed bug in Replication Manager: lserver cores with DBMAPI error -4 while loading system tables from DBMGUI PTS: 1111078 since: 7.3.00.21 New Feature: DATAEXTRACT command is UNICODE enabled - Data may be extracted from UCS2/ASCII DB's to UCS2/ASCII files - Data may be loaded from UCS2/ASCII files to UCS2/ASCII DB's Not yet supported: - External file encoding UTF8 - Different swap of UCS2 data in data file Data extracted by an lserver in an operating system that supports a special processor memory architecture may only be loaded by an lserver in the same type of operating system PTS: 1112696 since: 7.3.00.21 New Feature: Handling data files bigger than 2GB implemented PTS: 1113372 since: 7.3.00.21 Bug fixed: Fixed bug in DATALOAD/FASTLOAD command processing: Loading strings which contain null bytes could result in the following errors: - Data loaded was corrupted. Everything following the null byte was not loaded. - Error message '/E -25319 Missing data for specified column '. This error showed up for the column following the one in the command which data contained null byte(s). PTS: 1113691 since: 7.3.00.21 Bug fixed: Fixed bug in processing TABLELOAD cmd: TABLELOAD cmd causes lserver crash (happened only on linux so far) If the table to be loaded had indexes the lserver crashed with the following message: Replication server error (-4 : 'received a garbled packet') . The problem was caused by a wrong indexed column names array. PTS: 1112644 since: 7.3.00.20 Bug fixed: Fixed one bug in DATALOAD/FASTLOAD command processing: When running DATALOAD/FASTLOAD with file format FORMATTED and one (or more) end positions happen to be lower than the corresponding start positions the server stops processing with an access violation and crashes. PTS: 1112831 since: 7.3.00.20 Bug fixed: Fixed one bug in DATALOAD and FASTLOAD command: Loading single number data using format COMPRESSED failed with the following error message: /E -25302 This value is not a valid number: " Example: Table definition: CREATE TABLE
(smallint) Content of data file: "1" Command used to load: DATALOAD TABLE
1 INFILE PTS: 1112868 since: 7.3.00.20 Bug fixed: Fixed one bug in TABLEEXTRACT command processing: Replication Manager server may crash when executing a TABLEEXTRACT ALL command with a user who does not have dba priviliges. Reason was not properly initialized internal structures. PTS: 1112875 since: 7.3.00.20 Bug fixed: Fixed bug in TABLEEXTRACT/TABLELOAD command processing: Executing a TABLEEXTRACT/TABLELOAD ALL command with a user who does not have dba priviliges resulted in no error message (what's wrong) and in no extracted data at all (what's ok). PTS: 1112517 since: 7.3.00.19 Bug fixed: Fixed one bug in TABLELOAD command: The error happens when source and target machine have different swap behavior. Loading data using TABLELOAD will then stop with the following error message: "/ E -25801: Internal error [, , -9053]; contact technical support". PTS: 1111628 since: 7.3.00.18 Bug fixed: Linux-installation will not result in -3014 with statement INSERT.... 'CREATE CLUSTER') any more PTS: 1111548 since: 7.3.00.18 Bug fixed: Fixed one bug in FASTLOAD/DATALOAD command: When the data to read contains delimiter/separators itself the data is wrong parsed. To avoid this a pattern search function is implemented which uses a pattern string consisting of '' to parse the data. ODBC: ===== PTS: 1117545 since: 7.3.00.29 Bug fixed: The catalog function SQLStatistics did not work under ODBC 3 mode. E.g. StarOffice used this mode and has therefore problems with SAP DB's ODBC driver. The error was already fixed in 7.3.1 and 7.4 some time ago. PTS: 1117254 since: 7.3.00.29 Bug fixed: Now, dbprocs with results set are supported in ODBC PTS: 1117348 since: 7.3.00.29 Bug fixed: Errors in combination with MS Dataim-/and -export wizard fixed PTS: 1117353 since: 7.3.00.29 Bug fixed: compatibilty problems solved. In particular, tracing in multithreaded applications, info in SYSODBCTYPES (SQLGetInfo) and a struct mismatch were fixed PTS: 1117478 since: 7.3.00.29 Bug fixed: Purify error and memory leak in SQLBrowseConnect PTS: 1117673 since: 7.3.00.29 Bug fixed: SQLColAttribute does not support the option SQL_DESC_OCTET_LENGTH, SQL_DESC_TYPE. Option SQL_DESC_LENGTH returns size in bytes instead of size in characters. PTS: 1118144 since: 7.3.00.29 Bug fixed: DBPROCs returning result sets do not work flawlessly in the ADO framework (e.g. VB DataEnvironment). SQLGetInfo returns wrong value for the attribute SQL_QUALIFIER_LOCATION (ODBC 3: SQL_CATALOG_LOCATION). PTS: 1117373 since: 7.3.00.29 Bug fixed: Connecting with a database user name that contains blanks is now possible from SQLStudio. PTS: 1116492 since: 7.3.00.27 New Feature: Replaced old long implementation with new one in ODBC driver. PTS: 1116584 since: 7.3.00.27 Bug fixed: SQLColumns returns SQL_TIME for timestamp columns. Therefore applications using timestamps may have problems. PTS: 1116032 since: 7.3.00.25 Bug fixed: SQLBrowseConnect reads uninitialized memory. In rarely cases, this can lead to an abort. PTS: 1116262 since: 7.3.00.25 Bug fixed: Requery of an result set in DAO failes. Probably other DB-Interfaces will also fail in a similar way (requery several rows after unbinding). PTS: 1114366 since: 7.3.00.23 Bug fixed: SQLGetTypeInfo mixes types for DATE, TIME and TIMESTAMP between ODBC version 2 and 3 PTS: 1114886 since: 7.3.00.23 Bug fixed: SQLBrowseConnect does not work properly. PTS: 1113733 since: 7.3.00.21 Bug fixed: Conversion from SQL_BINARY to SQL_C_CHAR fails on HP UX with 64 Bit. PTS: 1114009 since: 7.3.00.21 Bug fixed: catalog functions fail if one of the input strings is a NULL pointer PTS: 1114143 since: 7.3.00.21 Bug fixed: the use of empty result parameters (select ... into ?) fails; freeing a handle of a empty result set misses a close cursor PTS: 1113108 since: 7.3.00.20 Bug fixed: SQLBulkOperations now works on UNICODE databases. SQLBulkOperations now works with Keyset driven cursors. PTS: 1112754 since: 7.3.00.20 Bug fixed: Calling SQLGetTypeInfo for Unicode varchar gives "UNCODE VARCHAR". The type is cleaned now. PTS: 1112940 since: 7.3.00.20 Bug fixed: The ODBC driver was not able to return more than 75 columns in a result set. The restriction is now relaxed to 300 columns. PTS: 1112733 since: 7.3.00.20 Bug fixed: SQLError can crash under Unix systems. PTS: 1112407 since: 7.3.00.19 Bug fixed: Using the ODBC driver in combination with ADO, it could happen that numeric values are given back only by their integer value. This error occurs when a long column is in the result set. PTS: 1112548 since: 7.3.00.19 Bug fixed: According to ODBC 3, SQL[ExecDirect|Execute] can return SQL_NO_DATA. For a statement "select direct ..." that did not find data now SQL_NO_DATA is given back. OMS: ==== PTS: 1117584 since: 7.3.00.29 Bug fixed: This has been an internal problem only. Not relevant for any customer ! Precompiler Runtime: ==================== PTS: 1118388 since: 7.3.00.29 Bug fixed: If the application calls EXEC SQL PREPARE / EXEC SQL DESCRIBE in a loop. Only the first DESCRIBE returns a description of the resultset in the SQLDA The error is fixed now. PTS: 1117424 since: 7.3.00.29 Bug fixed: Array bounds read error in long function fixed. PTS: 1117983 since: 7.3.00.29 Bug fixed: With dynamic SQL and data type SQL_ORA_VARUCS2_2 data was inserted even if length of data was set to 0 in the SQLDA. This error is fixed now. PTS: 1118175 since: 7.3.00.29 Bug fixed: Fixed memory allocation error that occurs if a precompiler SQL statement is executed sufficiently often with EXEC SQL IMMEDIATE. PTS: 1118412 since: 7.3.00.29 Bug fixed: Fixed memory leak in string compare function. PTS: 1117659 since: 7.3.00.29 Bug fixed: A flag (define byte) in the communication packet was set wrong for ascii columns. This leads to some problem in dbprocedures i.e an error -2010 Assignment impossible, char value too long. The error was detected in an Opensourceproject. PTS: 1117845 since: 7.3.00.29 Bug fixed: For hostvariables of type character pointer now the precompiler assumes as available space for this hostvariable the size of the corresponding table column in characters instead of size in bytes. PTS: 1117315 since: 7.3.00.29 Bug fixed: Under Windows, ldrdiag.pct was not written; instead an error message "Can't open trace file ..." came up on stderr when starting the precompiled program. This error is fixed now. PTS: 1118202 since: 7.3.00.29 Bug fixed: Fixed compiler warning on SUN for module irconf.c PTS: 1118164 since: 7.3.00.29 Bug fixed: only for make purposes PTS: 1117357 since: 7.3.00.27 Bug fixed: Wrong results are returned on a column with codetype ASCII. This error occures: a) If the returned datatype should UCS2 and b) The sqlstatement contains UCS2 characters. and c) The sqlstatement is executed in SQLMode ORACLE or SAPR3 PTS: 1117264 since: 7.3.00.27 Bug fixed: Fixed wrong length calculation in segment if using unicode long columns. Fixed long data error. In some cases no long data was delivered after fetches. PTS: 1116819 since: 7.3.00.27 Bug fixed: Fixes a bug in conversion from hostvartype SQL_ORA_TVARCHAR or SQL_ORA_TVARCHAR4 to UCS2. The conversion has stopped if the charachter data contains a nullterminator on an other position as at the end. PTS: 1117085 since: 7.3.00.27 Bug fixed: Fixes a conversion failure that a hostvariable of type char ascii will not be filled up with blanks for column type (var)char unicode PTS: 1117296 since: 7.3.00.27 Bug fixed: Fixed wrong registry entries for precompiler runtime registration. PTS: 1117019 since: 7.3.00.26 Bug fixed: Fixing precompiler runtime error "-812 parameter list too short" in case of parameter list with correct length. PTS: 1117187 since: 7.3.00.26 Bug fixed: Memory leak in long column functions fixed. PTS: 1117042 since: 7.3.00.26 Bug fixed: Fixes the error of wrong conversion from unicode hostvariables into character byte columns. PTS: 1116522 since: 7.3.00.26 New Feature: Memory allocation error in long function now returns a precompiler error instead of aborting the program. PTS: 1115618 since: 7.3.00.25 Bug fixed: An undetermined precompiler runtime could loaded if a duplicated installation key is registered with irconf -i -p -k . Irconf now removes all duplicate entries which do not match to the given path. PTS: 1115773 since: 7.3.00.25 Bug fixed: An invalid number of rows are returned on a static fetch commands with an loop paramspec > 0. This error occures only in Version 7.3.00.23 and 7.2.4.7 because it is an follow error of http://pgwdf160.wdf.sap-ag.de:1080/webpts?wptsdetail=yes&ErrorType=0&ErrorID=1115379 Fetch commands using a descriptor instaed of hostvariables are not affected. Example: EXEC SQL FOR : FETCH INTO : Returns only one row independent from the loop parameter . PTS: 1116074 since: 7.3.00.25 Bug fixed: The errorcode -602 may return from the database if the application is connected to more than one instance both. This was because executing sql statements with the parse identification from the wrong instance. This error is fixed now. Workaround: Connect new or restart one of the instance because the sessionid stored in the parseidentifikation are incremented by a connect and stored during a shutdown. PTS: 1116346 since: 7.3.00.25 New Feature: If the Hostvarible which contains the SQL statement is declared as char or wchar_t and the -Gunicode option isn't set. All SQL statement are send with the encoding ascii to the kernel independent how the the database parameter _UNICODE is set. In prior versions all SQL Command are send as UCS2 to the database if the database parameter _UNIOCDE-'Yes' is set. PTS: 1116575 since: 7.3.00.25 New Feature: New Precompiler command: EXEC SQL ABORT SESSION; Description: This SQL statement terminates the database session immediatly and resets the semaphore from the actual running sql command. This command should also be used to resolve conflicts (sqlerror -810) within multithreaded applications PTS: 1116579 since: 7.3.00.25 Bug fixed: EXEC SQL DESCRIBE may crash because the memory pointed to the sqlda member ora->S is written out of it bounds. This error only occures in SQLMODE Oracle/SAPR3 PTS: 1115313 since: 7.3.00.25 New Feature: Piecewise writing/reading of Long-columns is now working in internal mode also. Additionally, it is working now with hostvariables and static SQL. PTS: 1115215 since: 7.3.00.25 Bug fixed: Variable declaration for sqlc8 and sqlc80 removed vom cpc.h. PTS: 1115608 since: 7.3.00.25 New Feature: Each C precompiler application now writes a tracefile named ldrdiag.pct (located in the rundirectory of the application), listing information about loading the precompiler runtime; e.g. search path, version of application, version of precompiler runtime used by the application, errors during loading of runtime. Each precompiler application started in the same rundirectory appends information into the same file ldrdiag.pct. When ldrdiag.pct reaches a size of approx. 50KB, the file is renamed to ldrdiag.pct.old and a new ldrdiag.pct file is created. This avoids unlimited growing of the trace file. If the user starting the precompiler application has no permission to write into the directory where the application is located, stderr will be used to report information instead of ldrdiag.pct. PTS: 1116288 since: 7.3.00.25 Bug fixed: Supress some illegal reads/writes of memory found in libpcr PTS: 1116289 since: 7.3.00.25 Bug fixed: The embedded SQL command "EXEC SQL DESCRIBE SELECT LIST" was reimplemented and works now proper. PTS: 1115379 since: 7.3.00.23 Bug fixed: Using input/output hostvariables in the USING clause of an OPEN/FETCH cmd is impossible since cursornames are dynamic. The following code example should work now. stmt := 'select a from tab1 where a = ?'; EXEC SQL PREPARE :S FROM :stmt; EXEC SQL DECLARE :C CURSOR FOR :S; EXEC SQL OPEN :C USING :a; Prior this error only USING DESCRIPTOR was allowed. In older version (<7.2) using hostvariables in the USING clause are allowed. This restriction is now removed. PTS: 1115511 since: 7.3.00.23 Bug fixed: The datatype SQL_ORA_RAW (23) was converted to ASCII if the OUTPUT column has the codeattribute UNICODE. The Datatype SQL_ORA_RAW should ever return the none converted nativ data. This error only occures on UNICODE enabled Databases. PTS: 1115589 since: 7.3.00.23 Bug fixed: UNICODE columns are filled up with blanks if the columns contains more blanks than real data. This error is fixed now. PTS: 1115339 since: 7.3.00.23 New Feature: Each C precompiler application now writes a tracefile named ldrdiag.pct (located in the rundirectory of the application), listing information about loading the precompiler runtime; e.g. search path, version of application, version of precompiler runtime used by the application, errors during loading of runtime. Each precompiler application started in the same rundirectory appends information into the same file ldrdiag.pct. When ldrdiag.pct reaches a size of approx. 50KB, the file is renamed to ldrdiag.pct.old and a new ldrdiag.pct file is created. This avoids unlimited growing of the trace file. If the user starting the precompiler application has no permission to write into the directory where the application is located, stderr will be used to report information instead of ldrdiag.pct. PTS: 1115111 since: 7.3.00.23 Bug fixed: The error "-9801 Invalid command state", which occurs when the same connect comand at the same sourcecode line is reused after a connect error, is fixed. PTS: 1114911 since: 7.3.00.23 Bug fixed: No error message and no shortdump was returned if the dbprocedure call failed during writing or reading a stream. The knldiag shows the error message (omsTerminate) but the R/3 doesn't produce a short dump. This bug is fixed now. PTS: 1113398 since: 7.3.00.21 Bug fixed: Fixed illegal array bounds read in long routines. PTS: 1113698 since: 7.3.00.21 Bug fixed: Fixed wrong sqlerrd3 count in case of update statement. PTS: 1114280 since: 7.3.00.21 Bug fixed: Fixed memory leak in precompiler command EXEC SQL FETCH with long columns. PTS: 1114161 since: 7.3.00.21 Bug fixed: fixed the problem that static SQL commands with non-array input parameters will be excuted as mass command. PTS: 1112838 since: 7.3.00.20 Bug fixed: EXEC SQL CANCEL CURRENT doesn't canceled the CURRENT SESSION in SQLMODE ORACLE. This error is fixed now PTS: 1113204 since: 7.3.00.20 Bug fixed: If an EXEC SQL ROLLBACK WORK RELEASE failed no error message wil be returned if the database isn't currently availebe. The connection is closed and the sqlcode is set to ok. PTS: 1112283 since: 7.3.00.19 Bug fixed: Connect to the database failed if the connect comand is passed by a hostvariable. Example: sprintf(command, "connect %s identified by %s isolation level 0", user, password); exec sql execute immediate :command; Workaround: Use a static sql comand to connect to the server exec sql connect %s identified by %s isolation level 0 Runtime Environment: ==================== PTS: 1117638 since: 7.3.00.29 Bug fixed: INTERNAL ONLY: Already contained in 7.3.0.build23 (PTS 1114667) Client process death now detected within 20 seconds after client crash or close on socket. Detection leads to automatic 'CANCEL' of connected database task. PTS: 1117386 since: 7.3.00.29 Bug fixed: sp78convertString() now returns sp78_SourceCorrupted in case of error in conversion from UCS2 to ASCII. Function parameter destBytesWritten returns now correct value. PTS: 1117366 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances A client cannot establish a connection due to failure to attach shared memory segment used for communication. The kernel task is already assigned to the client, but it will never be informed that the client has problems, since the client does not know which task he was assigned to. 2) Solution to the problem The kernel now sends the assigned task id in the connection reply packet and reinterprets cancel requests while connection was not used (0 bytes transferred) as connection abort request. 3) Probability that the error occurs With 32Bit AIX-Client very likely (small number of shared memory segment) on other platform very rarely. 4) Is there a work around and how does this work ? To free the consumed tasks, the application has to be stopped. In case of an apllication server the disp+work process it must be restarted. PTS: 1117698 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances Using a new compiler version, warnings were issued by compiler that showed some problems with attachment of shared memory sections. Effect only on the rarely used function CR_SHM in x_cons (internel runtime feature...) and in case, that not enaugh heap memory is available for data cache. This will also effect SUN and AIX. 2) Solution to the problem The corresponding prototypes were added. 3) Probability that the error occurs Very unlikely (see above) 4) Workaround none PTS: 1118073 since: 7.3.00.29 Bug fixed: 1) Preconditions and circumstances Using two different users for starting and stopping the x_server/x_niserver may lead to access problems to protocol file. The owner difference can prevent from successfull starting stopping the x_server/x_niserver. 2) Solution to the problem The user is checked to have at least write privilege to the protocol directory to be able to remove a protocol file from a previous run. Additional the stopping of niserver on UNIX is done by vserver background process, which was started by the owner of the protocol files. 3) Probability that the error occurs Depends on the user combination used. If starter of x_server was root and stopper is an underprevileged user, problem will occure. 4) Workaround Use identical user for starting and stopping of x_server/x_niserver. PTS: 1117344 since: 7.3.00.27 Bug fixed: 1. XServer can not be stopped. As a workaround the XServer must be stopped by using the call >drwtsn32 -p , where pid is the process ID of the XServer (serv.exe). 2. Memory leaks on Client and X_Server side after each connect due to missing release of memory in sqltcp (sql_stream_socket ()). This may only lead to a severe memory problem if the client application connects and disconnects to the database constantly. 3. Connects with "localhost" are now using socket communication instead of shared memory communication. PTS: 1115178 since: 7.3.00.25 New Feature: Now the diagnostic files are also beeing saved at restart if the database was shut down by an emergency shutdown last time: 0x198 ERR 52050 SHUTDOWN *** EMERGENCY ***: 9140 This is done in the DIAGHISTORY directory as it was already done at restart after a database crash. PTS: 1116515 since: 7.3.00.25 Bug fixed: If a user connects to the database kernel the Runtime Environment tries to create a fiber. If this system call fails (e.g. due to a lack of memory) we find only the following message in the knldiag: 07-03 16:10:08 0x9AC 19628 CONNECT REQUESTOR is rejecting connect request Therefor a further message was added explaining the reason for the failed connection: ERR 18876 FIBER Could create fiber, rc = ... PTS: 1116751 since: 7.3.00.25 Bug fixed: If a fiber could not be created the resulting message text in the knldiag could be misunderstood: "ERR 18876 FIBER Could create fiber, rc = ..." This was changed to: "ERR 18876 FIBER Could not create fiber, rc = ..." PTS: 1116020 since: 7.3.00.25 Bug fixed: If volume is created on a on a share ( eg: \\RemotePC\SAPDB) the "init config" failes due to a volume permission problem (Access is denied). If the kernel service is assign to a domain user account, this user is added to the volume file permissions. PTS: 1115110 since: 7.3.00.23 New Feature: Internal Feature: WEB Client application was ported from a 7.4.x release back to 7.3.x release. Therefore it needed a interface function to generated a unique identifier (GUI). That function was existing in 7.4.x release, but had to be ported back too. PTS: 1114726 since: 7.3.00.23 Bug fixed: Savepoints are not triggered for many days. vclock() is used to determine the last time a savepoint was written. vclock() is under NT using the GetTickCount() and this function wraps around the uptime every 49.7 days. PTS: 1114750 since: 7.3.00.23 Bug fixed: Savepoints are not triggered for many days. vclock() is used to determine the last time a savepoint was written. vclock() is under NT using the GetTickCount() and this function wraps around the uptime every 49.7 days. PTS: 1114635 since: 7.3.00.23 Bug fixed: DBMServer Communication During a disconnect of the DBMClient or Database Manager from DBMServer, the DBMServer stopps before a cleanup has finished. This will leave some unfinished work at the server (e.g. a running service database). PTS: 1112730 since: 7.3.00.23 Bug fixed: Windows is now able to read UNIX backup header formats. PTS: 1114438 since: 7.3.00.23 New Feature: Starting of livecache was delayed by unwanted doubled copy of data cache memory during fork. Now memory for caches is requested in running kernel process only and watchdog process can fork without producing extra paging activity. PTS: 1113506 since: 7.3.00.23 Bug fixed: move local sap objects and libraries to source server (no bugfix) PTS: 1113200 since: 7.3.00.21 Bug fixed: data at the end of a stream was sometimes lost when reading from a pipe PTS: 1113348 since: 7.3.00.21 Bug fixed: In some situations where the 'dbm.upc' file could not be opened correctly the whole file content is dropped. PTS: 1113985 since: 7.3.00.21 Bug fixed: A unwanted sqlfinish is ignored silently. PTS: 1114039 since: 7.3.00.21 Bug fixed: Invalid doubles are shown as special string in output stream instead of aborting program... "NaNS" Not a number signalling "-Inf" Negativ infinity "-Den" Negativ denormalized number "-0.0" Negativ zero "NaNQ" Not a number quiet "+Inf" Positiv infinity "+Den" Positiv denormalized number "NaN?" Unknown but invalid number... The first 4 are currently not supported by HPUX and LINUX, the rest is... PTS: 1113309 since: 7.3.00.21 New Feature: x_ping produces meaningfull output for TCP/IP connection on UNIX PTS: 1113385 since: 7.3.00.21 Bug fixed: exit code returned by dbmcli in case of trouble starting database fixed. Implicit db_clear added for starting database. PTS: 1113412 since: 7.3.00.21 Bug fixed: Parallel usage of dbm API and precompiler no longer leads to loss of connection if either one of them calls sqlfinish internally. PTS: 1114049 since: 7.3.00.21 Bug fixed: Internal virtual file routine sqlfseekc/p now reports vf_noseek on all seek errors. PTS: 1111458 since: 7.3.00.21 Bug fixed: xuser program exit code is now zero on success only. PTS: 1113526 since: 7.3.00.21 Bug fixed: Utility task waiting on a pipe can be canceled on all platforms. At parallel backup different kind of crashes may occur if the user specifies a replace device media which is still in use. PTS: 1113162 since: 7.3.00.20 New Feature: Even without a valid PATH environment IPC resources will get cleared now. PTS: 1112442 since: 7.3.00.19 Bug fixed: This Patch corrects the following error: At parallel backup different kind of crashes may occur if the user specifies a replace device media which is still in use. PTS: 1112085 since: 7.3.00.18 New Feature: Time stamps now readable even after signal was received SQLC++: ======= PTS: 1111471 since: 7.3.00.29 Bug fixed: only of internal interest (external DB-Procs haven't been documented to OpenSource, so changes aren't documented either ) PTS: 1112792 since: 7.3.00.20 Bug fixed: -8 "parse again" is handled by C++ SqlClass SQLFilter: ========== PTS: 1118315 since: 7.3.00.29 Bug fixed: Fixed connect error in xsql. PTS: 1113102 since: 7.3.00.20 Bug fixed: xsql support now the dataypes smallint and integer. SQLRUN: ======= PTS: 1113500 since: 7.3.00.23 Bug fixed: "xkernprot -f" did not work since the new vtrace feature (trace is written to memory only) has been implemented. The problem was, that tracesort" has not been called before "diagnose" has been started to analyze the trace. Now the problem is solved and "xkernprot -f" should work fine. PTS: 1111872 since: 7.3.00.20 Bug fixed: Improve handling of file and path names with spaces in the name for all the x* executables. Scripting: ========== PTS: 1114650 since: 7.3.00.25 Bug fixed: Pthon modules sapdb, sapdbapi: fixed memory leak when executing SQL with paramters PTS: 1114681 since: 7.3.00.25 Bug fixed: None/undef is mapped to NULL on insert. NULL is mapped to a specific false value on SELECT. PTS: 1114760 since: 7.3.00.25 Bug fixed: session.sql () returned a garbage string when called with a SQL command which returned output values PTS: 1115700 since: 7.3.00.25 Bug fixed: fixed bug where reading LONG columns could lead to a hanging program PTS: 1115933 since: 7.3.00.25 Bug fixed: Interfaces to DB Manager, Replication Manager: prevent garbage at end of result of method cmd () PTS: 1112908 since: 7.3.00.21 Bug fixed: Results of zero division were returned as 1.6565656565656562e+062 PTS: 1113265 since: 7.3.00.21 New Feature: SapDB_LongReader.read () can now be called without an argument, which results in the remaining content of the LONG being returned PTS: 1111561 since: 7.3.00.20 New Feature: added support for Stored Procedures through callproc. The output parameters can also be accessed as a single row of the cursor object using next (). PTS: 1112458 since: 7.3.00.20 Bug fixed: last () returned an empty tuple moving inside the result set using absolute () somtimes resulted in empty result tuples calling absolute (0) + aboslute (1) resulted in absolute (2) PTS: 1112460 since: 7.3.00.20 Bug fixed: fixed abort when inserting/updating with large LONG values (> 64000) PTS: 1112463 since: 7.3.00.20 Bug fixed: Float values in input values where always rounded to frac 0 System Tables: ============== PTS: 1112051 since: 7.3.00.19 Bug fixed: In DB12 the DBA action logs are correctly displayed. In DB13 the correct state of backup action is displayed and backup logs my be viewed again. Both functionalities did not work correctly since patch level 73.00.10. Updcol: ======= PTS: 1115447 since: 7.3.00.29 Bug fixed: UPDATE STAT COLUMN did not work for columns containing special characters. The colomns should be quoted. Example: UPDATE STAT COLUMN (/SPN/YYPTYMAIN,/SPN/YYPTYPSUB,MANDT,SPRAS) FOR "/SPN/PD/V_PTYPE" ESTIMATE , errored out due to sqlcode = -5006: Missing identifier The right call should be: UPDATE STAT COLUMN ("/SPN/YYPTYMAIN","/SPN/YYPTYPSUB",MANDT,SPRAS) FOR "/SPN/PD/V_PTYPE" ESTIMATE , Web DBM: ======== PTS: 1114594 since: 7.3.00.23 New Feature: WebDBM The newest state from the 7.4 development of the WebDBM is now also available in 7.3.0. PTS: 1112905 since: 7.3.00.20 Bug fixed: Javascript error on "Devspaces" and "Parameters" of the WebDBM corrected. WebAgent: ========= PTS: 1113449 since: 7.3.00.21 Bug fixed: To create a connection in Web SQL with a unicode user id you have to enclose the user id with double quotation marks. XCONS: ====== PTS: 1116931 since: 7.3.00.29 Bug fixed: A task beeing in state 'command wait &' it is now shown as active task in x_cons, too. Background: A task is in state 'command wait &' if the task is in state 'command wait' during a OMS callback. In that situation neither a checkpoint nor a shutdown can be performed. PTS: 1116484 since: 7.3.00.25 Bug fixed: x_cons commands show rte and show all dumped core due bad pointer access while evaluating thread state names. Now the correct pointers are used again. Crash occured on SUN only and only in 64 Bit mode. PTS: 1114219 since: 7.3.00.21 Bug fixed: The 'show connections' command was added to the x_cons command set. It allows to inspect all active task connection structures and allows to see the process id of the vserver process used in case of remote connections. PTS: 1113596 since: 7.3.00.21 Bug fixed: It is now possible to kill tasks, that are waiting in command wait state. XSERVER: ======== PTS: 1117650 since: 7.3.00.29 New Feature: If the x_server is started, it once dumps its own environment in the xserver.prt file. The name of the protocol file on UNIX is now xserver.prt like on NT. PTS: 1117646 since: 7.3.00.29 New Feature: The SAP internal niserver can no longer be forgotten. While on windows operating systems the niserver is only a special thread of the serv.exe process, on UNIX it is a separated server process. This server process is now automatically started with each "x_server start" command and automatically stopped with each "x_server stop" command. To suppress this behaviour another command line option '-Y' can be used. If SAP niserver is not distributed, x_server silently ignores that. PTS: 1117533 since: 7.3.00.27 Bug fixed: XServer can not be started if the SQLTCP does not include the new 'sql40c_stream-socket2' function (e.g. in versions <= 7.3.1.5). In the xserver protocoll one can find the following messages: 2002-08-28 09:28:12 0x15C4 19705 CONNECT Loading default TCPIP-DLL, ( 'sqltcp.dll') 2002-08-28 09:28:12 0x15C4 ERR 18422 CONNECT Missing function 'sql40c_stream_socket2' in 'sqltcp.dll' 2002-08-28 09:28:12 0x15C4 ERR 18424 CONNECT Wrong TCPIP-DLL version, (check the SQLTCPx.DLL) 2002-08-28 09:28:12 0x15C4 19752 XSERVER XSERVER stopped, 'NT/INTEL 7.3.0 Build 027-000-086-969' PTS: 1116531 since: 7.3.00.25 Bug fixed: If client maschine used DHCP to get its IP Address, the domain name service is not necessarily informed. This produced a 3 second delay for each connection, which is now prevented. PTS: 1116113 since: 7.3.00.25 Bug fixed: NI support was integrated on SNI (NMP) platform. Therefore it is now possible to use the SAP DB Connection to support the customers. PTS: 1114667 since: 7.3.00.23 Bug fixed: Client process death now detected within 20 seconds after client crash or close on socket. Detection leads to automatic 'CANCEL' of connected database task. PTS: 1115181 since: 7.3.00.22 Bug fixed: X_Server on AIX (32Bit only) rejects all incoming connections due to compiler optimizer problem. Test with hostname 'tm' gave the error message: C:\Programme\SAPDB\DBM>x_ping tm Checking connection to 'tm' ... ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Problem: server rejected connection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! XUSER: ====== PTS: 1113533 since: 7.3.00.21 Bug fixed: Limitation of 9 UCS character for user names and password stored in xuser Information relaxed to 32 UCS characters PTS: 1112740 since: 7.3.00.19 Bug fixed: xuser batch mode destroyed username in xuser file