>At 09:28 AM 2/3/2003 +0000, Ben Petersen wrote:
>Dr R>,
>Could you describe the engine level fixes?
Well Ben,
If I start writing everything, I'm afraid the List Moderator, Mr. Downall
might not like the 16 pages of enhancements, bug-fixes and the engine level
fixes on this list <g>.
Since the first release of The Glorious R:BASE 2000 (ver 6.5++) on
January 28, 2001 (over two years ago), here are the engine level fixes. And,
I personally know that you are still using 6.5+, released on December 29, 2000,
over twenty five (25) months ago.
So, here is the summary of engine level fixes in R:BASE 2000 (ver 6.5++),
including the CURRENT Build:1.864xRT03, released on January 31, 2003.
Engine Level Fixes since the release of R:BASE 2000 (ver 6.5++), Build:1.842xRT03.
01. Problem with INSERTing group of rows when FASTLOCK is SET to ON.
02. Computed/Non Computed Columns
03. Correct evaluation of expressions when EQNULL is SET to ON.
04. When adding a column to a multi column table which had a VARCHAR
column as the last column in the list and the added column was
appended on below the varchar column, R:BASE would error when
you tried to assign a constraint such as a foreign key or a
primary key to that column.
05. RBDEFINE (via Object Manager) could corrupt the sys_indexes
table when a column with a primary or foreign key constraint
was dropped.
06. Under certain circumstances, using RBDEFINE (via Object Manager)
to delete a foreign key reference for a compound key in which
one or more of the participating columns participated in other
foreign key references would generate error.
07. The degradation of autonumber integer columns under heavy
R:Tango use, where such use resulted in lots of inserts. The
autonum degraded in a way such that its value in the sys_defaults
table became null. In Rbdefine, displaying the column with the
autonumber yielded a display of a real number xxx.yyy when the
datatype was an integer.
08. Multi-User Lock after Trigger - If MULTI is ON and two tables have
a one to many relationship, with primary and foreign keys, and you
set up TRIGGERS to post changes to the ONE table on
INSERT/UPDATE/DELETE of rows in the MANY table, all works
well when you add, change or delete rows on forms. An UPDATE
command works OK too, as does an INSERT command using the
VALUES option.
09. If TIMEOUT was set to 1 it always exited after one minute. Now when
timeout is set to one it will actually take two minutes of inactivity
for it to exit. Two takes 2, three takes 3, and so on. What we do is
start a timer loop that fires every minute. Each minute it increments
a "no activity" flag which is reset to 0 if there is keystroke activity.
This is why there is nothing to "reset" until the first minute passes.
We have also added a close of any open database just before it bails
out too.
09. Added UNC Support for Windows NT, Windows 2000 and XP environment.
10. Locking error during a DELETE with TRIGGERS and ROWLOCK ON
11. When creating a FOREIGN KEY using RBDEFINE it would sometimes
complain about a PRIMARY KEY that was not compatible even though
you were trying to link it to a UNIQUE KEY in the table, not the
PRIMARY KEY.
12. Expressions (computed columns) were not working in MDI forms that
are called from a command file more than one level deep.
13. Ability to use different DELIMIT character when UNLOADing data
for SATTACHed table. R:BASE will now always send real commas
to ODBC engine to get correct values.
14. RANDOM function will support full range of four byte R:BASE
INTEGER values over 32767.
15. EQNULL function creates an error condition when ZERO is set OFF
16. UNLOAD command will not include SYSTEMP_DEFAULTS Table.
17. CREATE TEMPORARY TABLE Command and COMPAT OFF
18. Problems COPYing to long file name
19. Problems RENAMing to long file name
20. The ROUND and BRND functions are evaluated properly when the
number being rounded is NULL and ZERO is SET to OFF.
21. Support for Euro Currency Symbol (CHAR(0128)) at the R> Prompt.
22. CREATE TABLE can do 400 columns in TEMPORARY table too now.
23. Enhanced DIR Command for R> Prompt
24. ARRANGE TableName BY ColumnList limit has been increased to 5.
25. Allow APPEND to work on empty files.
26. Fixed some memory leaks related to BLOBS which are used for
Reports, Forms, Labels, Stored Procedures and Triggers.
27. Data Browser - Rule Violations
28. The Time Stamp On File
29. LIST TABLES command will only include the list of tables
30. RBWIN CRASH under Windows 2000
31. RBwin Application Express Block Crashes on Windows 2000
32. To clean out bogus rows from SYS_PASSWORDS use the following new
command: PACK PASSWORD
33. Permission is checked before you can get into forms, reports, or
labels definition. Permission is checked on SYS_PROCEDURES before
a PUT command can be run.
34. Support for BEFORE and AFTER TRIGGERS.
35. Support for long file names when using #LFILES in CHOOSE command
36. Procedure and Triggers can now CREATE, ALTER or DROP TABLES
37. Support for ALTER TABLE command in EEPs and Stored Procedures
38. Enhanced -ERROR- Message (2039) to include Table and User Name
39. Support for CD, CHDIR and DIR commands when working on systems with
directories over 80 characters long and spaces.
40. Support for CREATE SCHEMA command when working on systems with
directories over 80 characters long and spaces.
41. Accurate calculation on BreakPoints in Reports when EQNULL is SET to ON.
42. If a bad command is encountered in a Stored Procedure/Trigger an -ERROR-
will be reported but the procedure will continue to run and process commands.
43. COPY longfilename.ext command truncates the file name
44. Problems with long file names
45. Problem with GATEWAY command on systems with over 2GB HD
46. Problem with BACKUP command on systems with over 2GB HD
47. Problem with CHKDSK command on systems with over 2GB HD
48. Using ROUND function with computed values
49. PUT command does not clear old RETURN parameter
59. Stored procedure gets no ID, no params
60. FK-UK bug with the column dropping.
6.5++ corrects a long standing bug which allowed database corruption to
occur when dropping a column from a table. Specifically, if TableA contains
columns A1, A2, and A3 (in my specific database, a text, a date, and an
integer data type), and all three columns participate in a UNIQUE KEY, and
that UNIQUE KEY is referenced by TableB also having columns A1, A2, and A3,
and another column, A4, is dropped from tableA, it can corrupt R:Base. This
corruption is manifested in several ways: often, but now always, list table
tableB shows the "consrnt" attribute FOREIGN KEY, but, the rest of the
constraint listing is missing, i.e., it should say FOREIGN KEY REFERENCES
columnname, but, the "REFERENCES columnname" portion of the syntax is missing;
output tableb.str, unload structure for tableB yields a file with missing
syntax in the alter table area where the structure to rebuild the FOREIGN KEY
reference should have been listed; and the sys_indexes.sys_foreign_key column
contains "0" instead of the value of the index that it should be referencing.
When R:Base makes a schema change to a table, such as dropping a column, the
internal R:Base integer names for the indexes are re-numbered. In the case of
a compound foreign key reference against a UNIQUE, this re-numbering routine
was unable to correctly provide the new index numbers for the foreign key
references. The result was the appearance of zeros in sys_indexes.sys_foreign_key
where valid index numbers should have been.
Applications can react to this corruption in a variety of ways such as failing to
insert a row into a table when the insert is called by en EEP. This corruption is
not cured by reload. If you unload structure and trace the input, you can usually
find the deficient alter table commands as they error out. If you wanted, you
could probably write a little routine to search sys_indexes for sys_foreign_key
values that are "0" when the expected value should be a non-zero integer, because
the column participates in a KEY.
61. AUTONUM and Wrong Column Name
62. UNLOAD command puts parenthesis for SATTACHED Table(s)
63. RENAME ColumnName command renames all columns in that table when
TEMPORARY tables are present.
64. ROUND Function Error
65. Blank value in PK/FK column
66. Row Count For SYS_TABLES
67. Evaluation of LJS, RJS, and CTR to return a NULL result if the original
string is NULL
NOTE:
Above list DOES NOT include hundreds of ENHANCEMENTS, NEW COMMANDS
and Forms/Reports/Labels related BUG-FIXES. Please refer to following URLs for
complete details:
Build: 1.842xRT03 http://www.rbase.com/sales/rbw65pp.txt
(June 15, 2001)
Build: 1.850xRT03 http://www.rbase.com/sales/rbw65pp1.txt
(December 31, 2001)
Build: 1.851xRT03 http://www.rbase.com/sales/rbw65pp2.txt
(January 28, 2002)
Build: 1.862xRT03 http://www.rbase.com/sales/rbw65pp3.txt
(November 27, 2002)
Build: 1.864xRT03 http://www.rbase.com/sales/rbw65pp4.txt
(January 31, 2003)
As always, the choice is yours. And, we'll continue to do what we do best
and take care of our CURRENT and LOYAL R:BASE Users/Developers.
Hope that helps!
Very Best Regards,
Razzak.
- [RBASE-L] - Announcing In-Line Patch-4 for R:BASE 2000 (ve... A. Razzak Memon
- [RBASE-L] - Re: Announcing In-Line Patch-4 for R:BASE... Ben Petersen
- A. Razzak Memon

