Bug #3144
Provide correct legacy name for a RecordBuffer/TemporaryBuffer
0%
History
#1 Updated by Igor Skornyakov almost 8 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 almost 8 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 almost 8 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.p
def new shared temp-table Tt-1 field f1 as int. run pr2.p.
pr2.p
def 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 almost 8 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 SHARED
statement, and not the name at theDEFINE NEW SHARED
statement.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!