Project

General

Profile

Activity

From 09/03/2025 to 10/02/2025

10/02/2025

04:00 PM Support #4060: investigate converting extent fields to array columns
Stefanel Pezamosca wrote:
> [...]
> [...] *Greg*, should I continue with this investigation and maybe also start te...
Eric Faulhaber
09:43 AM Bug #10526 (Review): Progressive results don't get invalidated when buffer-copy is performed
Eduard Soltan
09:43 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
I committed the soltion for this case in *10526a_h2, rev. 63*. Eduard Soltan
05:36 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
I see. this is because @ArrayList<Row> rows = table.truncate(session, multiplex);@ is wiping everything if it is the ... Alexandru Lungu
05:22 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
Alexandru Lungu wrote:
> I can't tell how FWD buffers are related to H2 internals. The invalidation is a H2 internal...
Eduard Soltan
04:55 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
> However the invalidation of the node row from LazyResultQueryFlat.topTableFilter.cursor does not happen because the... Alexandru Lungu
09:35 AM Support #10664: Develop a multi session test suite in harness
While working on the tests I encountered a few weird behaviors in trunk, the most puzzling of them is:
Main sessio...
Artur Școlnic
09:29 AM Support #10664 (WIP): Develop a multi session test suite in harness
Artur Școlnic
09:29 AM Support #10664: Develop a multi session test suite in harness
This task will be dedicated to the effort of writing multi session tests using harness. The results of running the te... Artur Școlnic
09:26 AM Support #10664 (Review): Develop a multi session test suite in harness
Artur Școlnic
08:34 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Later update:
- And when the @Name@ temp-table has a structure, like this {{Collapse(Name)...
Teodor Gorghe
08:27 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
For the test case from #10560-16, 4GL passes, but FWD fails because the @name@ field is empty.
I am currently expl...
Teodor Gorghe
07:48 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Work it on this branch. Constantin Asofiei
07:47 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
I have a test case which does not work with 10352a, trunk or this branch:
{{Collapse(ABL Code)...
Teodor Gorghe
03:29 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
I've committed my changes to 10560a rev 16167 - use a context in 'resolveTableByXmlName'. Constantin Asofiei

10/01/2025

10:34 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
You can see that there is a @release ttBook1@ of the query buffer.... Eduard Soltan
07:18 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
> However for this case the results are invalidation is not solved on database side, and the results of the query con... Alexandru Lungu
03:32 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
I came to the conclusion that the test from #10526-9 is falling because of another reason.
Before doing the perfor...
Eduard Soltan
05:15 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Oops, this commit is in this task, 10560a. Teodor Gorghe
05:14 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Teodor Gorghe wrote:
> Committed revision *16166* on task branch *16166*:
> - Resolving the parent buffer by its le...
Constantin Asofiei

09/30/2025

04:31 AM Bug #9383 (Internal Test): Cache only the current delegate on transaction commit if a Progressive...
Razvan-Nicolae Chichirau wrote:
> Rev. 16144 should now hold the invariant from #9383-53. Please review.
I am sor...
Alexandru Lungu

09/29/2025

04:37 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
I have a test case that recreates the problem:... Eduard Soltan

09/26/2025

09:24 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
@copy@ method from RB class receives @srcDMO@ and @dstDMO@ parameters as @DataModelObject@, but they could be instanc... Eduard Soltan
05:27 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Alexandru Lungu wrote:
> > BTW, you can duplicate this with above testcase (the second FOR EACH) if in TempTableHelp...
Constantin Asofiei
03:36 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
> So I think we are OK, but it still seems fragile - if you get an AdaptiveQuery which for some reason can't have H2 ... Alexandru Lungu
03:57 AM Bug #10621: 'Illegal mix of collations' error when using latest MariaDB JDBC driver
The option @collation_connection@ for the JDBC URL was added in @3.5.0@. However, I have tried to set this option and... Andrei Plugaru
03:40 AM Bug #10621: 'Illegal mix of collations' error when using latest MariaDB JDBC driver
> So, I guess using collation_connection=utf8mb4_unicode_ci in the JDBC URL would be the easiest fix.
Is this back...
Alexandru Lungu
03:37 AM Bug #10621: 'Illegal mix of collations' error when using latest MariaDB JDBC driver
Ovidiu, I understand that @utf8mb4_general_ci@ would be the better choice, however the client still uses @utf8mb4_uni... Andrei Plugaru

09/25/2025

04:31 PM Bug #10621: 'Illegal mix of collations' error when using latest MariaDB JDBC driver
Looking back, I remember @utf8mb4_general_ci@ was chosen, because it better matches 4GL, although it is not as accura... Ovidiu Maxiniuc
10:50 AM Bug #10621: 'Illegal mix of collations' error when using latest MariaDB JDBC driver
When using the MariaDB JDBC driver(version 3.5.3) included in fwd, I am getting @Illegal mix of collations@ for examp... Andrei Plugaru
09:18 AM Bug #10621 (New): 'Illegal mix of collations' error when using latest MariaDB JDBC driver
Andrei Plugaru
10:55 AM Bug #10611 (WIP): Incorrect abbreviation name resolved at conversion time
This one fails the #9457 project, with 9457c. Constantin Asofiei
09:59 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Alex, about the previous note; this test:... Constantin Asofiei
09:42 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
> if within that FOR EACH block a record in this 'preselected result set' gets deleted, FWD still iterates it
If ...
Alexandru Lungu
09:32 AM Feature #10583: Implement a Database specific records cache.
Greg Shah wrote:
> Will these tests also handle cross-session dirty share (i.e. testing for #8388)?
AFAIK, cross-...
Alexandru Lungu
09:30 AM Feature #10583 (Review): Implement a Database specific records cache.
The fact that caching happens after the session is closed, means that the user does not experience any overhead that ... Artur Școlnic
07:31 AM Feature #10583: Implement a Database specific records cache.
Will these tests also handle cross-session dirty share (i.e. testing for #8388)? Greg Shah
07:20 AM Feature #10583: Implement a Database specific records cache.
Greg Shah wrote:
> Yes, please!
Ok, I will get on it then.
As for 10583a, the implementation is completed. At this...
Artur Școlnic
07:17 AM Feature #10583: Implement a Database specific records cache.
> My dream is to have such suite integrated in the CI/CD and have a better coverage on FWD for multi-user tests. (#92... Greg Shah
07:01 AM Feature #10583: Implement a Database specific records cache.
I am documenting here a live discussion with Artur. The solution with exposing record to the shared cache on commit *... Alexandru Lungu

09/24/2025

02:11 PM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Eduard, see 10480a rev 16136 - The 'recid' component in the index is always 'asc' even for temp-tables.
*Alexand...
Constantin Asofiei
04:06 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Alexandru Lungu wrote:
> Artur, can you pick up 10480a fox performance testing (only runtime)?
Got news that perf...
Eduard Soltan
10:06 AM Feature #10583: Implement a Database specific records cache.
Artur Școlnic wrote:
> We will have to come up with a clever mechanism of ensuring that only 'true' committed record...
Artur Școlnic
09:10 AM Feature #10583: Implement a Database specific records cache.
I changed the approach a bit. Now dmo references are being cached in the shared cache and in the session cache, on re... Artur Școlnic
03:43 AM Bug #10590: Indices are not taken from the model temp-table
Constantin Asofiei wrote:
>
> Eduard: please check your standalone tests, conversion testing looks like it passed ...
Eduard Soltan
03:24 AM Bug #10590: Indices are not taken from the model temp-table
In rev 16181, it fixes some issues with the initial approach: In 'like' temp-table definitions, indexes are copied on... Constantin Asofiei
02:19 AM Bug #10560 (Review): Wrong buffer picking for ReadXml when seralization name of a buffer correspo...
Committed revision *16166* on task branch *16166*:
- Resolving the parent buffer by its legacy name instead of the X...
Teodor Gorghe
02:14 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Teodor Gorghe wrote:
> Should I commit the change from #10560-8?
Go ahead.
Eduard Soltan
02:13 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Should I commit the change from #10560-8? Teodor Gorghe
02:13 AM Bug #10560 (WIP): Wrong buffer picking for ReadXml when seralization name of a buffer correspond ...
Teodor Gorghe
09:33 PM Feature #4369: implement stateless FWD server clustering
Fully implementing #8388 will eliminate the requirement to cluster dirty share state across servers. Eric Faulhaber

09/23/2025

09:42 AM Bug #10590: Indices are not taken from the model temp-table
Constantin Asofiei wrote:
> 10590a rev 16178 has a change from 9457c 16205:
> * Fixed DEF TEMP-TABLE ... LIKE ... ...
Constantin Asofiei
07:08 AM Bug #10590 (Internal Test): Indices are not taken from the model temp-table
10590a rev 16178 has a change from 9457c 16205:
* Fixed DEF TEMP-TABLE ... LIKE ... USE-INDEX - the index lookup mu...
Constantin Asofiei
08:42 AM Feature #10583: Implement a Database specific records cache.
Artur Școlnic wrote:
> it is easily solvable by removing the cached record at the retrieve step and inserting it bac...
Artur Școlnic
07:01 AM Feature #10583: Implement a Database specific records cache.
The only problem I see with the current implementation is that two (ore more) concurrent sessions can retrieve the sa... Artur Școlnic
06:41 AM Feature #10583: Implement a Database specific records cache.
Alexandru Lungu wrote:
> * I don't think that @//initialize.accept(session);@ is right in @SessionFactory@. This w...
Artur Școlnic
05:03 AM Feature #10583 (WIP): Implement a Database specific records cache.
From my understanding:
* every time a record is inserted in the FFC, it is also added to the shared records cache....
Alexandru Lungu
03:55 AM Feature #10583: Implement a Database specific records cache.
I analyzed the impact on memory consumption. There is an increase in the retained memory, each cached record will ret... Artur Școlnic
07:24 AM Bug #10611 (Internal Test): Incorrect abbreviation name resolved at conversion time
I'll put this into testing with other apps, but a simple flag change to now look for abbreviated names instead of exa... Constantin Asofiei
03:10 AM Bug #10611 (Review): Incorrect abbreviation name resolved at conversion time
Eduard Soltan
03:09 AM Bug #10611 (WIP): Incorrect abbreviation name resolved at conversion time
Committed solution on 10611a, rev. 16180. Eduard Soltan
02:51 AM Bug #10611: Incorrect abbreviation name resolved at conversion time
I have the following test case:... Eduard Soltan
02:42 AM Bug #10611 (Review): Incorrect abbreviation name resolved at conversion time
Eduard Soltan
06:44 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
On @XmlImport.resolveTableByXmlName@, I don't think is right to use the @ctx.ttname@, because the value is the local ... Teodor Gorghe
04:17 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
I think I found a problem in rev. 16164.
In @XmlImport.resolveTableByXmlName@ the current context should be used a...
Eduard Soltan
04:09 AM Feature #10436 (WIP): Detect Sequential Data Access and Prefetch Records from the Database
Artur Școlnic

09/22/2025

08:01 AM Bug #10455 (Internal Test): Persistent table CAN-FIND FIRST issue
I am OK with the changes in 10455a. Alexandru Lungu
02:13 AM Bug #10455: Persistent table CAN-FIND FIRST issue
Committed revision *16128* on task branch *10455a*:
- Addressed code review #10455-20.
Teodor Gorghe
06:50 AM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
> Alexandru: can there other state which we need to ensure is applied when doing 'direct write' to a buffer's record?... Alexandru Lungu
06:37 AM Bug #10526 (Internal Test): Progressive results don't get invalidated when buffer-copy is performed
Review of 10526a:
* extract @dstProp.getOffset()@ in a different variable to reuse. Also extract to @dstProp.getOf...
Alexandru Lungu
03:17 AM Bug #10590 (Review): Indices are not taken from the model temp-table
Committed on 10590a, rev. 16176. Created new method that will match exactly the index name in the table name. Eduard Soltan
02:48 AM Bug #10590: Indices are not taken from the model temp-table
Constantin Asofiei wrote:
>
> Instead, please use the @SchemaDictionary.getIndex(NameNode, name)@ or to calculate ...
Eduard Soltan
02:07 AM Feature #5220: extend word index support to SQL Server
Constantin Asofiei wrote:
> Stefanel - can we consider this done for SQLServer?
Yes, this was implemented in 9456...
Stefanel Pezamosca

09/19/2025

02:08 PM Bug #10455: Persistent table CAN-FIND FIRST issue
Alexandru, please review.
Teodor:
* please don't call @BufferManager.getInstance()@ - get it from @WorkArea.tm@....
Constantin Asofiei
01:58 PM Bug #10526: Progressive results don't get invalidated when buffer-copy is performed
Review of 10526a rev 16149:
* changing the access modifier for @RecordBuffer@ methods has implications in the proxy...
Constantin Asofiei
01:28 PM Bug #10590 (WIP): Indices are not taken from the model temp-table
Eduard, the table AST should already have the INDEX nodes. Keeping the dictionary-wide @tableIndexesNames@ map will ... Constantin Asofiei
01:14 PM Feature #5220: extend word index support to SQL Server
Stefanel - can we consider this done for SQLServer? Constantin Asofiei
11:12 AM Feature #10583 (Review): Implement a Database specific records cache.
Artur Școlnic
10:29 AM Feature #10583: Implement a Database specific records cache.
I completed the first stable version of the implementation.
The main points are:
* Each FFCache instance gets a new...
Artur Școlnic
10:55 AM Bug #9763 (Internal Test): xml-node-name buffer option
I think the update is fine. Please go ahead with internal testing. Ovidiu Maxiniuc
10:25 AM Bug #9763 (Review): xml-node-name buffer option
Eduard Soltan
10:25 AM Bug #9763 (WIP): xml-node-name buffer option
Eduard Soltan
10:24 AM Bug #9763: xml-node-name buffer option
Exporting of child buffer (in a dataset relation) is using the attributes from @TempTableSchema@, when it should swit... Eduard Soltan
03:59 AM Bug #9383 (Review): Cache only the current delegate on transaction commit if a ProgressiveResults...
Rev. 16144 should now hold the invariant from #9383-53. Please review. Razvan-Nicolae Chichirau

09/18/2025

08:18 AM Bug #10590 (Review): Indices are not taken from the model temp-table
Eduard Soltan
08:18 AM Bug #10590 (WIP): Indices are not taken from the model temp-table
Committed on 10590a, rev. 16174.
Now the indices of the model temp-table are added to the main temp-table.
I al...
Eduard Soltan
07:29 AM Feature #10583: Implement a Database specific records cache.
I managed to write an initial implementation, which is far from perfect, but stable enough to recreate the test from ... Artur Școlnic
04:26 AM Feature #10583 (WIP): Implement a Database specific records cache.
Artur Școlnic
07:17 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Razvan-Nicolae Chichirau wrote:
> I see. In this case, we need to change the whole @transactionCommiting()@ because ...
Alexandru Lungu
07:08 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
I see. In this case, we need to change the whole @transactionCommiting()@ because it is already constructed to yield ... Razvan-Nicolae Chichirau
05:47 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
I can't deny that I am a bit stressed with such "partial" bracket. If you do a @previous@, then @Locator locator = lo... Alexandru Lungu
05:39 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> In #9383-46, position 830 is actually rows.get(0). The first record from rows will always match the record under po... Alexandru Lungu
05:37 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> Moreover, why the total size of reduction should always be 100? In your example from #9383-47, rows should end up w... Alexandru Lungu
04:35 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
In #9383-46, position 830 is actually @rows.get(0)@. The first record from @rows@ will always match the record under ... Razvan-Nicolae Chichirau
04:25 AM Bug #9383 (WIP): Cache only the current delegate on transaction commit if a ProgressiveResults is...
Review of 9383a:
> rows = new ArrayList<>(rows.subList(0, newSize));
Is this right? I expect that the starting ...
Alexandru Lungu
04:19 AM Bug #9383 (Review): Cache only the current delegate on transaction commit if a ProgressiveResults...
Please review rev. 16143. Razvan-Nicolae Chichirau
03:33 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> As for actualMaxExponent = 2, setting it when bracket < 2 will force ProgressiveResults to fetch in brackets of max... Alexandru Lungu
02:27 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Alexandru Lungu wrote:
> If the bracket you are looking at is the 100th one generated with exponent 5, then techni...
Razvan-Nicolae Chichirau
06:46 AM Feature #6695 (Review): Multi-table preselect query may underperform due to repetitive fetching
I have committed @6695/ rev. 16170@
First, I have fixed here the problem exposed in #6695-42. I have solved this by ...
Andrei Plugaru
03:25 AM Feature #6695 (WIP): Multi-table preselect query may underperform due to repetitive fetching
I observed a small issue regarding the usage of @ScrollableResults.get(LazyFetching fetching, boolean forceOnlyId)@ i... Andrei Plugaru
06:32 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
I have created the following dataset structure, one thing to note that @Second@ table has a relationship with with @I... Eduard Soltan

09/17/2025

02:47 PM Bug #10590: Indices are not taken from the model temp-table
I think I found the problem why the indices from model table are not taken into consideration, this the culprit code ... Eduard Soltan
06:37 AM Bug #10590: Indices are not taken from the model temp-table
The following example:... Eduard Soltan
06:33 AM Bug #10590 (Test): Indices are not taken from the model temp-table
Eduard Soltan
12:14 PM Feature #6695 (Review): Multi-table preselect query may underperform due to repetitive fetching
I have committed @6695a/16167-16169@. Here, I have also adapted the solution for persistent tables, fixed some small ... Andrei Plugaru
06:20 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
While trying to understand the behaviour for FIND triggers, I actually understood that currently, @6695a@ doesn't imp... Andrei Plugaru
08:24 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> In this case, we should copy the rows from 830 to 910. We just need to calculate what is the starting row of the ne... Alexandru Lungu
07:58 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
For example, the current position is 830:
* Old bracket = 3 (from 111 to 1010)
* new bracket = 10 (from 811 to 910)...
Razvan-Nicolae Chichirau
07:50 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
PS: I think there are cases in which you can't, because the offsets of the records may be 1111, 1112, 1113, ..., 2110... Alexandru Lungu
07:48 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> You are correct, but what if we just shrink rows to size 100 (i.e. Math.pow(BASE, actualMaxExponent))? Wouldn't tha... Alexandru Lungu
07:43 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Alexandru Lungu wrote:
> > delegate = new SimpleResults(rows);
>
> Is a delegate with maybe 1M rows, but this i...
Razvan-Nicolae Chichirau
07:35 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> @bracket = lastValidBracket = locateRow(position).getBracket();@
This will return the bracket index N considerin...
Alexandru Lungu
07:31 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
I've just now realized that we don't actually need neither to call @moveTo@ because we already have the rows in cache... Razvan-Nicolae Chichirau
06:53 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
But there is also a trailing:... Alexandru Lungu
06:46 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Yes. Executing @moveTo@ may be safer than manually updating the state at the cost of re-executing the query. The good... Razvan-Nicolae Chichirau
06:30 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> so we perform moveTo just to align ProgressiveResults to the new state, but completely ignore the fetched results, ... Alexandru Lungu
06:18 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Alexandru Lungu wrote:
> ** Also, shouldn't it be @> 2@ instead of @>= 2@? If it is already equal to 2, the progress...
Razvan-Nicolae Chichirau
06:07 AM Bug #9383 (WIP): Cache only the current delegate on transaction commit if a ProgressiveResults is...
Review of 9383a:
* I think @getMaxExponent@ should have:...
Alexandru Lungu
06:26 AM Feature #10583: Implement a Database specific records cache.
Alexandru Lungu wrote:
> A transactional database can have different representation of the same record at the same t...
Artur Școlnic
06:20 AM Feature #10583: Implement a Database specific records cache.
> Can't this be changed? I don't see why a dmo should belong to a specific session, it should be the representation o... Alexandru Lungu
06:10 AM Feature #10583: Implement a Database specific records cache.
Alexandru Lungu wrote:
> * by nature DMOs are *per-session*.
Can't this be changed? I don't see why a dmo should...
Artur Școlnic
05:56 AM Feature #10583: Implement a Database specific records cache.
> - multiple cache instances can hold the same record?..
Yes, different sessions can cache different *versions* of...
Alexandru Lungu
05:29 AM Feature #10583: Implement a Database specific records cache.
A database specific records cache could be 'simulated', for testing purposes, by increasing the existing session case... Artur Școlnic

09/16/2025

10:51 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
I have made some commits to @6695a@:
# *16165* - The most important change is that I deleted some throws for @Illega...
Andrei Plugaru
07:40 AM Feature #10583: Implement a Database specific records cache.
Currently, @BaseRecords@ are cached in the session cache, which has a few drawbacks:
- fairly small capacity;
- one...
Artur Școlnic
07:38 AM Feature #10583 (Review): Implement a Database specific records cache.
Artur Școlnic

09/15/2025

12:09 PM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
Eduard, see 10560a rev 16164 for my current changes. Please try to break them (see the TODO in XmlImport) by creatin... Constantin Asofiei
03:41 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
There is another case where there is a @field f1 serialize-name "oa:f1"@, and the XML has the field like @f1@ - in th... Constantin Asofiei
10:39 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
Even though the scope of this task is mainly optimizing the @PreselectQuery@ case, I found the idea that is applied h... Andrei Plugaru
06:46 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
I have created branch @6695a@ and ported and committed the changes from #6695-32 in @6695a/rev.16163-16164@. However,... Andrei Plugaru
10:09 AM Bug #10171 (Test): Word Index/CONTAINS support for MS SQL Server.
Stefanel Pezamosca

09/12/2025

09:10 AM Bug #10560: Wrong buffer picking for ReadXml when seralization name of a buffer correspond to the...
I have the following test case:... Eduard Soltan
09:00 AM Bug #10560 (Closed): Wrong buffer picking for ReadXml when seralization name of a buffer correspo...
Eduard Soltan
05:56 AM Bug #9016 (Test): Improve performance in FQLPreprocessor by using astCache
Dănuț Filimon
05:56 AM Bug #9016: Improve performance in FQLPreprocessor by using astCache
Branch 9016a was merged into trunk as revision 16162 and archived. Dănuț Filimon
05:48 AM Bug #9016 (Merge Pending): Improve performance in FQLPreprocessor by using astCache
I'll be merging 9016a now. Dănuț Filimon
04:57 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
The results from the last note seem to be skewed as I was having query logging enabled. Without that I am getting muc... Andrei Plugaru
04:21 AM Feature #6695: Multi-table preselect query may underperform due to repetitive fetching
I have started working on this task by redoing the tests from #6695-3 both in FWD and 4GL. These are the results:
|_...
Andrei Plugaru
04:29 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Alex, please review rev. 16142 when possible.
Note that #10172 sees only a reduction of 7.5k @load()@ calls out of...
Razvan-Nicolae Chichirau

09/11/2025

08:11 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Artur, can you pick up 10480a fox performance testing (only runtime)? Alexandru Lungu

09/10/2025

08:46 AM Bug #10542 (Internal Test): Write trigger called when multiple buffers reference the same record
Alexandru Lungu
08:39 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Alexandru Lungu wrote:
> I am OK with the changes.
>
> * @setLocked@ should always be set to false. It is basica...
Eduard Soltan
08:21 AM Bug #10542: Write trigger called when multiple buffers reference the same record
I am OK with the changes.
* @setLocked@ should always be set to false. It is basically related to the fact that t...
Alexandru Lungu
07:56 AM Bug #10542 (Review): Write trigger called when multiple buffers reference the same record
Eduard Soltan
07:56 AM Bug #10542 (WIP): Write trigger called when multiple buffers reference the same record
Committed on 10542a, rev. 16160. Eduard Soltan
07:14 AM Bug #10542: Write trigger called when multiple buffers reference the same record
> Then we have to really fire the trigger only on explicit releases. The implicit query initialisation will fire it o... Alexandru Lungu
06:43 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Very well.
Then we have to really fire the trigger only on explicit releases. The implicit query initialisation will...
Ovidiu Maxiniuc
06:38 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Ovidiu Maxiniuc wrote:
> Please test this assumption to confirm or infirm my assumption.
I have the following tes...
Eduard Soltan
06:29 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Does it matter? In both cases, the modified record is still loaded in a buffer. The trigger will have the chance to f... Ovidiu Maxiniuc
06:26 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Ovidiu Maxiniuc wrote:
> <notextile>@</notextile>Alex: @prepareBuffer()@ calls @buffer.flush()@. The @flush()@ (@val...
Eduard Soltan
06:22 AM Bug #10542: Write trigger called when multiple buffers reference the same record
<notextile>@</notextile>Alex: @prepareBuffer()@ calls @buffer.flush()@. The @flush()@ (@validateMaybeFlush()@ actuall... Ovidiu Maxiniuc
05:19 AM Bug #10542: Write trigger called when multiple buffers reference the same record
I am inclined to say that @prepareBuffer@ should have taken @isMultiplyReferenced@ into consideration. Alexandru Lungu
05:08 AM Bug #10542: Write trigger called when multiple buffers reference the same record
Alexandru Lungu wrote:
>
> Just a heads-up: in FWD, the newly created records are *flushed* to the database if all...
Eduard Soltan
04:35 AM Bug #10542: Write trigger called when multiple buffers reference the same record
> Just a heads-up: in FWD, the newly created records are flushed to the database if all indexes are validated (check ... Alexandru Lungu
04:31 AM Bug #10542: Write trigger called when multiple buffers reference the same record
> Then in the main buffer I try to load the second record from book4 table. As you can observe the WRITE is not trigg... Alexandru Lungu
04:17 AM Bug #10542: Write trigger called when multiple buffers reference the same record
I have found the following test case. Please note that I defined on @book4@ table a WRTIE TRIGGER that just message *... Eduard Soltan
03:58 AM Bug #10542 (Test): Write trigger called when multiple buffers reference the same record
Eduard Soltan
03:41 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> Moreover, the results can have a boolean variable which dictates in what mode we are currently in. convertBracket()... Alexandru Lungu
01:49 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
If the concern is on the bracket calculation, maybe when commiting a transaction we can convert the current bracket t... Razvan-Nicolae Chichirau

09/09/2025

06:13 PM Feature #10491: Tool to standardize PG cluster creation
Roger Borrello wrote:
> I added functionality so that the cluster can be controlled properly with *systemctl*.
>
...
Roger Borrello
06:12 PM Feature #10491 (Review): Tool to standardize PG cluster creation
Usage of @fwd_create_pg_cluster.sh@:... Roger Borrello
12:54 PM Feature #10491: Tool to standardize PG cluster creation
Roger Borrello wrote:
> I added functionality so that the cluster can be controlled properly with *systemctl*.
>
...
Roger Borrello
10:25 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> If as in your example, the requested row is 1.000.000 and we iterate with brackets of 100 in size, it will take som... Alexandru Lungu
08:27 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> For 1e9 - 1, if the forcedMaxExponent is 2, then the right bracket is around (1e9 - 100) and offset is 99 (size is... Razvan-Nicolae Chichirau
07:22 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Review of 9383a:
* @bracket == forcedMaxExponent + 1@ I don't think this is a hard constraint. I think @bracket > ...
Alexandru Lungu
04:25 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Also commited rev. 16141 to remove some unnecessary history entries. Razvan-Nicolae Chichirau
04:14 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Alex: Please review *9383a/rev. 16138-16140*. Razvan-Nicolae Chichirau
07:28 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Huh, this will be tough. Having it in trunk will affect at least one production customer. We will have a meeting tomo... Alexandru Lungu
07:26 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Alexandru Lungu wrote:
> Will this change be compatible with current database, right? But it will simply be slower.
...
Eduard Soltan
07:24 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Got it. Then I think 10380a integration in trunk will be highly dependent upon customer's schedule to update the data... Alexandru Lungu
06:54 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Alexandru Lungu wrote:
> Did this happen only with run-time testing? The fix only include DDL changes ... were the...
Eduard Soltan
06:53 AM Bug #10480 (Internal Test): Wrong sort criteria in FOR LAST when index has desc component
I am OK with the changes.
> Testing of all customer applications has passed with 10480a.
Did this happen only w...
Alexandru Lungu
05:51 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Testing of all customer applications has passed with 10480a. Eduard Soltan
07:25 AM Bug #9016: Improve performance in FQLPreprocessor by using astCache
All regression tests passed, *9016a* can be merged. Dănuț Filimon
07:08 AM Feature #6720: lazy hydration
Alexandru Lungu wrote:
> > Well, I don't think lazy hydration really avoids creating BDT objects. Lazy hydration jus...
Alexandru Lungu
07:04 AM Feature #6720: lazy hydration
> Well, I don't think lazy hydration really avoids creating BDT objects. Lazy hydration just populates the data array... Alexandru Lungu
03:04 AM Feature #6720: lazy hydration
Greg Shah wrote:
> In these tests you aren't measuring the cost of creating the BDT values. That tends to be expens...
Andrei Plugaru
04:43 AM Bug #10385 (Internal Test): Incorrect reset of the cursor cache in Reposition
* Check javadoc: @If position = -1, this means that a operation was triggered by REPOSITION-BY-ID statement.@ this sh... Alexandru Lungu

09/08/2025

07:29 PM Feature #10491: Tool to standardize PG cluster creation
I added functionality so that the cluster can be controlled properly with *systemctl*.
*TBD:* In order to control...
Roger Borrello
10:57 AM Feature #6720: lazy hydration
In these tests you aren't measuring the cost of creating the BDT values. That tends to be expensive. Greg Shah
10:44 AM Feature #6720: lazy hydration
Based on the previous note, it seemed that hydrating a record from H2 would be slower than a persistent one. So, I we... Andrei Plugaru
04:54 AM Feature #6720: lazy hydration
I have analysed some performance snapshot of 2 large customer applications that use different DBMS and discovered som... Andrei Plugaru
08:15 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
Alexandru Lungu wrote:
> Review of 10385a:
>
> * Mind that @cursor.@ is viable is cursor is not null (i.e. the qu...
Eduard Soltan
06:59 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
Review of 10385a:
* Mind that @cursor.@ is viable is cursor is not null (i.e. the query is scrolling). If the quer...
Alexandru Lungu
02:04 AM Bug #10526 (Review): Progressive results don't get invalidated when buffer-copy is performed
Committed on 10526a, rev. 16148. Eduard Soltan
01:47 AM Bug #10526 (WIP): Progressive results don't get invalidated when buffer-copy is performed
I have the following test case:... Eduard Soltan
01:37 AM Bug #10526 (Closed): Progressive results don't get invalidated when buffer-copy is performed
Eduard Soltan

09/05/2025

11:21 AM Feature #9542: finish ORIGIN-HANDLE ProDataSet attribute
The implementations for these two APIs have 2 years now and they are unchanged ever since. I think we should consider... Ovidiu Maxiniuc
09:34 AM Feature #6720: lazy hydration
Update on the current status:
* I have added the implicit hydration of fields from unique indexes proposed by Alex i...
Andrei Plugaru
06:53 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
Alexandru Lungu wrote:
> Hmm, you are right. But this should still hold for Locator, right? So @trimToTableCount@ sh...
Eduard Soltan
06:26 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
> Doesn't DBUtils.trimToTableCount method trim the ids array only when the array size is bigger then query.getTableCo... Alexandru Lungu
06:03 AM Feature #9543: implement missing BUFFER attributes
Eric Faulhaber wrote:
> Is there anything left to do on this task, or can we close it?
@CAN-READ@ runtime support...
Eduard Soltan
05:44 AM Bug #10480: Wrong sort criteria in FOR LAST when index has desc component
Added @tests/table/index/TestSuite.cls@ unit tests.
From my observation, I noticed that @recid desc@ is used only ...
Eduard Soltan

09/04/2025

02:47 PM Feature #9543: implement missing BUFFER attributes
Is there anything left to do on this task, or can we close it? Eric Faulhaber
02:41 PM Feature #9542: finish ORIGIN-HANDLE ProDataSet attribute
Ovidiu, the gap markings for @prog.kw_first_bu@ and @prog.kw_first_qr@ both have the comment "not heavily tested". Do... Eric Faulhaber
09:06 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
Alexandru Lungu wrote:
> Review of 10385a:
>
Committed changes to handle review issues on rev. 16094.
> * In...
Eduard Soltan
08:20 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
Review of 10385a:
* Please make the Locator immutable as it will be easier to keep track of its data without being...
Alexandru Lungu
03:05 AM Bug #10385 (Review): Incorrect reset of the cursor cache in Reposition
I tried removing the following code in @CompoundQuery.retrieveImpl@:... Eduard Soltan
08:48 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> Also, since messing up with the size of the session cache is not possible, what if we would detect this one-by-one ... Alexandru Lungu
08:21 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> So, technically, it is right to cache records after commit only if it fits in this 1024 limit. Otherwise, with high... Razvan-Nicolae Chichirau
07:50 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> I was wondering, if we save so many records on a transaction commit, couldn't we pick it up from results (as we do ... Alexandru Lungu
07:34 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> What are the sizes of brackets to be cached when COMMIT occurs? I am wondering if we reach brackets of size 1.000 (... Razvan-Nicolae Chichirau
05:01 AM Support #6709: track nested FIND inside a related FOR loop
Rebased *6709a* to latest *trunk/16145*, the branch is now at revision *16152*. Dănuț Filimon
02:55 AM Bug #7793: incremental conversion with deleted table from .df
The following should be tested:
# Conversion test, the .df should contain an additional table from the start.
# Inc...
Dănuț Filimon
09:26 PM Feature #10491: Tool to standardize PG cluster creation
Revision 85 of the container project contains updates in preparation for PowerShell support. I broke a portion of the... Roger Borrello

09/03/2025

10:28 AM Bug #7793 (Internal Test): incremental conversion with deleted table from .df
Code Review Task Branch 6083a Revisions 16130 and 16131
The changes are good.
Greg Shah
07:09 AM Bug #7793: incremental conversion with deleted table from .df
Fixed a bug where the md5 field was initialized to null instead of filename: *6083a/16131*. Dănuț Filimon
05:51 AM Bug #7793: incremental conversion with deleted table from .df
I committed *6083a/16130* to address the #7793-28 review. Dănuț Filimon
08:13 AM Bug #10390: FIND FIRST buffer field change does not propagate into the next FIRST FIRST statements.
Because @persistence.load@ (@Session.getImpl@) returns the cached version of the @dmo@. The cached version of the @dm... Teodor Gorghe
06:56 AM Bug #10390: FIND FIRST buffer field change does not propagate into the next FIRST FIRST statements.
> In this form, that third FQL statement seems valid to me and is normal to return a record from database, since the ... Alexandru Lungu
07:45 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
PS, the code is:
> dmo.updateState(null, TRACKED, false);
So after committing, the DMOs are *no longer tracked*, ...
Alexandru Lungu
07:42 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
> By catching all the rows from the current bracket + what the called sub-procedure catches, the next record from the... Alexandru Lungu
03:35 AM Bug #9383: Cache only the current delegate on transaction commit if a ProgressiveResults is used
Increasing the lenient threshold does not solve #10172. Although all record properties are now cached, the problem st... Razvan-Nicolae Chichirau
04:24 AM Feature #10436: Detect Sequential Data Access and Prefetch Records from the Database
> Can it be used to cache records in advance?
This is exactly the point. But @AdaptiveFind@ is used when there is ...
Alexandru Lungu
02:26 AM Feature #10436: Detect Sequential Data Access and Prefetch Records from the Database
Alexandru Lungu wrote:
> Do you refer to patterns like the one in #10436-3 where you have a nested find?
Yes.
> @A...
Artur Școlnic
02:34 AM Bug #10385: Incorrect reset of the cursor cache in Reposition
*Question*, when a call to @Cursor.getResult@ is made with the cursor positioned between the rows (lets say at @posit... Eduard Soltan
 

Also available in: Atom