Bug #3144
Provide correct legacy name for a RecordBuffer/TemporaryBuffer
0%
History
#1 Updated by Igor Skornyakov about 10 years ago
Before the revision 11067 the legacy names for the temporary tables and buffers was always converted to lower case. In the revision 11067 this was fixed for the DEFINE BUFFER and DEFINE TEMP-TABLE/WORKFILE statements.
It is necessary to fix the issue for all other cases (see #2645 note 86)
#2 Updated by Igor Skornyakov about 10 years ago
Constantin,
Eric suggested that your comments 105,106 for #2645 should be in the scope of this task as well. Unfortunately I'm not sure that I completely understand these comments. Can you please provide an expanded version here?
Thank you.
#3 Updated by Constantin Asofiei about 10 years ago
Igor Skornyakov wrote:
The idea behind note 105 in #2645 is this. Use a shared temp-table, in two programs:Constantin,
Eric suggested that your comments 105,106 for #2645 should be in the scope of this task as well. Unfortunately I'm not sure that I completely understand these comments. Can you please provide an expanded version here?
Thank you.
pr1.pdef new shared temp-table Tt-1 field f1 as int. run pr2.p.
pr2.pdef shared temp-table tT-1 field f1 as int. find first tt-1.
After running pr1.p, you will see the ** FIND FIRST/LAST failed for table tT-1. (565) message. Note how the table name is as defined in pr2.p (the slave temp-table) and not in pr1.p (the master temp-table).
The problem in P2J is that we don't track the slave names, we re-use the names from the master definition. We need to scope the resource name (temp-table, buffer, and maybe others, too - frame, stream, menu) so that the slave versions use the legacy name as defined in the DEFINE SHARED statement, and not the name at the DEFINE NEW SHARED statement.
You can start with temp-table/buffers, but we need to write tests for the other shared resources, too.
#4 Updated by Igor Skornyakov about 10 years ago
Constantin Asofiei wrote:
The idea behind note 105 in #2645 is this. Use a shared temp-table, in two programs:
pr1.p
[...]pr2.p
[...]After running
pr1.p, you will see the** FIND FIRST/LAST failed for table tT-1. (565)message. Note how the table name is as defined inpr2.p(the slave temp-table) and not inpr1.p(the master temp-table).The problem in P2J is that we don't track the slave names, we re-use the names from the master definition. We need to scope the resource name (temp-table, buffer, and maybe others, too - frame, stream, menu) so that the slave versions use the legacy name as defined in the
DEFINE SHAREDstatement, and not the name at theDEFINE NEW SHAREDstatement.You can start with temp-table/buffers, but we need to write tests for the other shared resources, too.
Well, it seems that I've understood this. Thank you very much Constantin!