Activity
From 02/03/2025 to 03/04/2025
03/04/2025
- 05:19 AM Bug #9633: bulk delete for permanent tables
- > The concern is only for buffers in the same session. I plan to add an API to post an event, intercepted via 'stateC...
- 05:17 AM Bug #9633: bulk delete for permanent tables
- Alexandru Lungu wrote:
> * Having an exception should attempt to unlock the records?
The point is for the outer blo... - 04:44 AM Bug #9633: bulk delete for permanent tables
- Review of 9656a:
> added Persistence.invalidateCache, as a central API to force cache invalidation. This allows sp... - 03:16 AM Bug #9633: bulk delete for permanent tables
- Starting to look into the changes ...
- 04:03 AM Feature #6720: lazy hydration
- > However, I think we have the JDBC to create the old buffer directly, at the moment the trigger is called instead of...
- 02:07 AM Feature #7020: always use "expanded" extent fields
- *7020c* was rebased to trunk *15752* and is now at revision *15777*. Last 5 revisions have some performance improveme...
03/03/2025
- 04:30 PM Feature #6720: lazy hydration
- Greg Shah wrote:
> I understand. I presume it is scoped to the trigger. It is implicitly nested inside the convert... - 03:29 PM Feature #6720: lazy hydration
- > The 'old' buffer is not a normal buffer. The @snapshot@ of a record is created at the time it is changed (only if a...
- 11:49 AM Feature #6720: lazy hydration
- The 'old' buffer is not a normal buffer. The @snapshot@ of a record is created at the time it is changed (only if a t...
- 01:38 PM Bug #9633 (Review): bulk delete for permanent tables
- I'm placing 9656a in review to get some info from Alexandru/Ovidiu.
One note about my previous concern:
* buffers... - 06:57 AM Bug #9633: bulk delete for permanent tables
- Created task branch 9656a from trunk rev 15750. The changes are in 15751:
* added @Persistence.invalidateCache@, as... - 11:48 AM Feature #9093: add protection for multi-tenant imports to optionally only import tables that are ...
- The regression tests returned with success, as well as my targetted testcases used for development. But these no not ...
- 08:53 AM Bug #9683: CompoundQuery is doing extra hydration attempts
- I committed rev 15726. It contains a new interface and a few implementing classes.
- 07:07 AM Bug #9701 (Test): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality c...
- I have now also ported the changes to @7156c/15546@ and @7156e/15734@.
- 06:44 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Andrei Plugaru wrote:
> I have merged to trunk as rev 15750.
>
> *Danut, should I also port it to 7156c and 7156e... - 06:40 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I have merged to trunk as rev 15750.
*Danut, should I also port it to 7156c and 7156e?* - 04:06 AM Bug #9701 (Merge Pending): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO e...
- Please merge 9701a to trunk now.
- 02:37 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- All the testing showed no regressions. ✅
I think this can be queued in for merge. - 05:33 AM Bug #8868 (Rejected): Fix "Can't normalize FWD value to use it with direct access." error for Fie...
- This fix made it into trunk as rev 15687, it was part of #9587. I am dead archiving 8868a and rejecting this issue.
- 04:30 AM Bug #9717: Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UNIQUE C...
- Incipient research shows that @UNIQUE CONSTRAINT@ is mostly a sugar syntax for an UNIQUE INDEX. The point is that @UN...
02/28/2025
- 09:05 AM Feature #9711: collation configuration cleanup
- Greg Shah wrote:
> > I agree that it is best to have the collation for all these databases in sync to the degree po... - 08:38 AM Bug #9717: Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UNIQUE C...
- The legacy UNIQUE INDEX transforms into UNIQUE INDEX in SQL. Recently, we discovered that queries over UNIQUE INDEXes...
- 08:31 AM Bug #9717 (New): Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UN...
- 05:57 AM Feature #7020: always use "expanded" extent fields
- *7020c* was rebased to trunk *15747* and is now at revision *15771*.
- 05:57 AM Bug #9683: CompoundQuery is doing extra hydration attempts
- 9683a seems to be on the right track.
At this is in an early stage, I may say that it has quite a high cognitive c... - 04:48 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- As the proposed changes are not really related to this task, I created a new one - #9714, which will address the remo...
- 04:46 AM Bug #9714: Remove LocalSyncher as it has become dead code
- From Eric in #9701-24:
> Please note that LocalSyncher is effectively dead code. We really should remove its use. It... - 04:45 AM Bug #9714 (New): Remove LocalSyncher as it has become dead code
- 02:18 AM Bug #9713: Remove singleBuffer from FQLPreprocessor constructor call
- This task was created based on #9695-27.
The main drive for this task is that The @private FQLPreprocessor(List<Re... - 02:11 AM Bug #9713 (New): Remove singleBuffer from FQLPreprocessor constructor call
02/27/2025
- 04:27 PM Feature #9711: collation configuration cleanup
- > I agree that it is best to have the collation for all these databases in sync to the degree possible, and if we ha...
- 04:16 PM Feature #9711: collation configuration cleanup
- Greg Shah wrote:
> For persistent databases, we need the collation used for the primary database to be consistent wi... - 11:33 AM Feature #9711: collation configuration cleanup
- For the @_temp@ database, please see my comments in #9699-15 through #9699-21. We should eliminate all hard coded cf...
- 11:30 AM Feature #9711: collation configuration cleanup
- This is meant to finish the work left open in #5491-20:
We need to simplify the configuration of the locale/collat... - 11:30 AM Feature #9711 (WIP): collation configuration cleanup
- 03:39 PM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Eric Faulhaber wrote:
> Please note that @LocalSyncher@ is effectively dead code. We really should remove its use. I... - 10:00 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Andrei Plugaru wrote:
> Alexandru Lungu wrote:
> > * Please investigate if there are @equals@ comparisons of @BaseR... - 09:53 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I think that should suffice. The changes are right at the heart of the persistence and surely the affected code will ...
- 09:44 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Thanks, Ovidiu, for the review.
As we want to test it more aggressively, I propose the following tests, apart from... - 09:32 AM Bug #9701 (Internal Test): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO e...
- I have reviewed the changes in 9701a/r15735.
I agree with the new code (with the reservation of the problem related ... - 08:09 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I have ran the fwd tests and they show no regressions.
- 07:28 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- The unit tests of a customer passed, however I have one more failing test in the fwd tests. So, I am running the fwd ...
- 04:44 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I will be following this test plan:
* unit tests for a large customer application [ai]
* fwd tests of another large... - 04:37 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Andrei, please do other remaining testing until Ovidiu provides a final Review (unit tests or/and ChUi regression tes...
- 03:31 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- *Ovidiu*, please take a look over the changes in @9701a@ when you are available.
- 11:40 AM Feature #9712: ensure that the language and encoding options in use across the current customer b...
- As found in #9699, some customers may be setup with invalid combinations of language and codepage. We need a list of...
- 11:37 AM Feature #9712 (New): ensure that the language and encoding options in use across the current cust...
- 11:35 AM Feature #5491 (Closed): custom locale/collation implementations
- The remaining work is in #9711.
- 07:33 AM Bug #9669 (Test): Optimize RecordMeta.applyInitialValues
- 07:08 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- Branch 9669a was merged to trunk as rev.15743 and archived.
- 06:24 AM Bug #9669 (Merge Pending): Optimize RecordMeta.applyInitialValues
- Please merge 9669a to trunk after 9466b.
- 06:13 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- FwdTests passed.
- 05:40 AM Bug #9669 (Internal Test): Optimize RecordMeta.applyInitialValues
- I am OK with the changes:
* please fix @if (data[i] != null) {@ brace positioning.
This can go into internal test... - 05:13 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- Removed getProperties in rev 15722.
- 05:00 AM Bug #9669 (Review): Optimize RecordMeta.applyInitialValues
- I committed the latest changes to rev 15721.
- 02:34 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- Alexandru Lungu wrote:
> ** Anyway, I think this approach is not completely right because you presume that the @dyna... - 06:22 AM Feature #9305 (WIP): Replace begins with interval based conditional
- For reference, I misunderstood the documentation. By "C locale", it doesn't mean "libc", but actual C locale (aka POS...
- 05:02 AM Feature #9305 (Review): Replace begins with interval based conditional
- As a resolution for #9305, I updated [[p2j:4GL_Database_Access_Performance_Tips]]. Please review.
02/26/2025
- 05:36 PM Bug #9669: Optimize RecordMeta.applyInitialValues
- Alexandru Lungu wrote:
> ** Anyway, I think this approach is not completely right because you presume that the @dyna... - 09:12 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- > Please post the test-cases you built for testing 9669a.
As part of 9669a review:
* There is a misalignment of... - 05:58 AM Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
- > Considering the nature of the changes, I went ahead with the testing, FwdTests and 2 large customer application uni...
- 03:02 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- Considering the nature of the changes, I went ahead with the testing, FwdTests and 2 large customer application unit ...
- 04:49 PM Bug #9683: CompoundQuery is doing extra hydration attempts
- I committed an early implementation for the RetrieveResults, the code is in 9683a/15725. Code formatting, javadoc and...
- 09:14 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- OK
- 09:07 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I just used the @assert@ to validate that I get the same results with the new implementation vs the old one while run...
- 09:05 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- > Assert as in @assert@ statement from Java. If so, did you run the Java process with @-ea@ to activate it? Personall...
- 07:57 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Alexandru Lungu wrote:
> Assert as in @assert@ statement from Java. If so, did you run the Java process with @-ea@ t... - 07:52 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- > So, I think I will abandon the idea to override equals, and, simply create another method which will do this checki...
- 07:30 AM Bug #9701 (Review): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality...
- *I committed @9701a/15735@.* As I said in the last note, I just created a new method in @Record@ to check if the data...
- 06:32 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- @equals@ is used explicitly only there, however I just realised it could be used as key in collections like @Set@ or ...
- 06:21 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- > I actually found just one usage of Record.equals in LocalSyncher.preSynch: if (foreignDMO null || foreignDMO.equals...
- 06:13 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Alexandru Lungu wrote:
> * Please investigate if there are @equals@ comparisons of @BaseRecord@ across FWD.
==
I a... - 04:57 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- > At the moment, I am thinking of overriding the equals in BaseRecord and make it check the elements in data array. I...
- 04:23 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- I found this note in @CompareOps.equals@: @// special case: an empty comhandle is considered be equal to the zero int...
- 03:32 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- At the moment, I am thinking of overriding the @equals@ in @BaseRecord@ and make it check the elements in data array....
- 08:13 AM Feature #9093 (Internal Test): add protection for multi-tenant imports to optionally only import ...
- Ovidiu Maxiniuc wrote:
> [...]
> I committed the changes and rebased the branch to latest trunk. Current revision i... - 05:54 AM Bug #9667 (Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
- 05:45 AM Bug #9667: Bottleneck in BaseRecord.getActiveUpdateDiffs
- Branch 9667a was merged into trunk as rev. 15737 and archived.
- 04:58 AM Bug #9667 (Merge Pending): Bottleneck in BaseRecord.getActiveUpdateDiffs
- Please merge 9667a to trunk after 9615a.
- 02:53 AM Bug #9667: Bottleneck in BaseRecord.getActiveUpdateDiffs
- Alexandru Lungu wrote:
> Afterwards:
> * 2 large customer application unit tests and ChUI regression tests.
All ...
02/25/2025
- 05:07 PM Feature #9093: add protection for multi-tenant imports to optionally only import tables that are ...
- Eric Faulhaber wrote:
> Code review 9093a/15727-15728:
>
> For a small update, this took me several read-throughs... - 03:16 PM Feature #9093: add protection for multi-tenant imports to optionally only import tables that are ...
- Code review 9093a/15727-15728:
For a small update, this took me several read-throughs to comprehend. However, I th... - 01:37 PM Bug #9669: Optimize RecordMeta.applyInitialValues
- Committed a small change to rev 15719.
- 05:17 AM Bug #9669 (Review): Optimize RecordMeta.applyInitialValues
- I addressed the review, the code is in rev 15718.
- 03:34 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- > My goal was to store the initial non null values, in case this bitset could be used in the future, but storing null...
- 03:10 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- Alexandru Lungu wrote:
> * @flip@ operation seems redundant. Instead of @or@-ing with @initialDataBitSet@ and then f... - 10:36 AM Feature #6720: lazy hydration
- > This affirmation is correct for the "new buffer", but not for the "old buffer". The old buffer stores a snapshot of...
- 09:42 AM Feature #6720: lazy hydration
- > Probably we'll have to do a full hydration of the record at the moment a missing property is accessed during the ex...
- 09:03 AM Feature #6720: lazy hydration
- Creating the snapshot of a partially-hydrated record will take only the information available at that time. I do not ...
- 08:41 AM Feature #6720: lazy hydration
- > Are we adding implicit accesses (in our runtime) to fields that are not otherwise accessed explicitly in the 4GL co...
- 08:30 AM Feature #6720: lazy hydration
- Are we adding implicit accesses (in our runtime) to fields that are not otherwise accessed explicitly in the 4GL code...
- 06:48 AM Feature #6720: lazy hydration
- Andrei, I just found another usage of @snapshot@. A so called @armCurrentChanged@ that can be triggered if you run a ...
- 06:38 AM Feature #6720: lazy hydration
- Starting from the testcase in the last note, Alex and I analyzed more @RecordBuffer.armWriteTrigger@ method.
We an... - 04:34 AM Feature #6720: lazy hydration
- I have finished the testcase from #6720-113 to have the hydrator invalidated and also modifying the record in the DB ...
- 03:27 AM Feature #6720: lazy hydration
- > In the last find next query it has as placeholder an unhydrated record. I think this could be prone to errors if th...
- 02:11 AM Feature #6720: lazy hydration
- I am further investigating the regressions on the FWD tests. I still think that the root issue could be related to th...
- 09:58 AM Bug #9701 (WIP): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- Created branch @9701a@ from rev. 15734.
- 06:04 AM Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
- In a profiled scenario (#9692), there are 3.5k @RecordBuffer.updateCurrentChanged@ calls. The DMOs used by this have ...
- 05:50 AM Bug #9701 (Test): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality c...
- 07:04 AM Bug #9702: BaseRecord.getDirtyIndices is slow
- PS: @BaseRecord.getUnvalidatedIndices@ seems to have a better performance, but for my tests this is called only 54k t...
- 06:44 AM Bug #9702: BaseRecord.getDirtyIndices is slow
- In a profiled scenario (#9692), there are 104k calls to @BaseRecord.getDirtyIndices@. The scenario is changing extent...
- 06:20 AM Bug #9702 (New): BaseRecord.getDirtyIndices is slow
- 03:43 AM Bug #9667 (Internal Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
- The changes look functionally right. There are still some formatting issues:
* @validation.validateMaybeFlush();@ is... - 03:16 AM Bug #9667 (Review): Bottleneck in BaseRecord.getActiveUpdateDiffs
- I committed the changes to rev 15717.
- 03:11 AM Bug #9667: Bottleneck in BaseRecord.getActiveUpdateDiffs
- I made the changes, considering that they are trivial, I will move on with testing.
02/24/2025
- 10:15 AM Bug #9670 (Test): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- Branch 9670a was merged to trunk rev 15731 and archived.
- 10:07 AM Bug #9670 (Merge Pending): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- Please merge to trunk now.
- 09:52 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- I ran the unittest suite of a large customer, no issues.
Let me know when this can be merged. - 09:17 AM Bug #9670 (Internal Test): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- I am OK with the changes. Please do some slim testing to ensure there are no obvious issues.
- 08:57 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- Please update the branch now.
- 08:54 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- The latest rev. is still 15715.
- 09:58 AM Feature #9305: Replace begins with interval based conditional
- > I assume from these mixed results that you are testing this on an analyzed table with a lot of data. The PostgreSQL...
- 09:49 AM Feature #9093: add protection for multi-tenant imports to optionally only import tables that are ...
- I'll let Eric do the code review but from a user perspective, the changes look really good. Nice job!
- 09:25 AM Bug #9667 (WIP): Bottleneck in BaseRecord.getActiveUpdateDiffs
- Review of 9667a:
* From @BaseRecord.getActiveUpdateDiffs@... - 09:15 AM Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
- Review of 9669a:
* @flip@ operation seems redundant. Instead of @or@-ing with @initialDataBitSet@ and then flip, p... - 03:45 AM Bug #9697 (WIP): Use only indexed fields when performing record snapshot
- Created @9697a@ based on rev. 15726.
- 03:29 AM Bug #9697: Use only indexed fields when performing record snapshot
- The scope of this task is to make @Record.snapshot@ use only the indexed fields.
The reason we got here is because o... - 03:22 AM Bug #9697 (WIP): Use only indexed fields when performing record snapshot
02/22/2025
- 01:00 PM Feature #9093 (Review): add protection for multi-tenant imports to optionally only import tables ...
- Please review.
- 12:59 PM Feature #9093 (WIP): add protection for multi-tenant imports to optionally only import tables tha...
- I did multiple tests with import from a multi-tenant enabled database. A first conclusion is that the database export...
02/21/2025
- 04:47 PM Feature #9305: Replace begins with interval based conditional
- Alexandru Lungu wrote:
> > Don't we need this to be (upper(rtrim(tt_1_1__im0_.f1)) in order to give the database a c... - 10:48 AM Feature #9305: Replace begins with interval based conditional
- > Don't we need this to be (upper(rtrim(tt_1_1__im0_.f1)) in order to give the database a chance to match an index? A...
- 10:42 AM Feature #9305: Replace begins with interval based conditional
- I was a bit puzzled why isn't @BEGIN@ implemented as an UDF?
I mean that was my first reaction, to see how @udf.begi... - 10:17 AM Feature #9305: Replace begins with interval based conditional
- Alexandru Lungu wrote:
> The conversion of a simple @find first tt where tt.f1 begins tst@ yields:
> [...]
>
> T... - 08:49 AM Feature #9305: Replace begins with interval based conditional
- The conversion of a simple @find first tt where tt.f1 begins tst@ yields:...
- 10:35 AM Bug #9683 (WIP): CompoundQuery is doing extra hydration attempts
- Regarding 9683a:
* for @collectRowData@, if the query is non-scrolling and off-end, the code still returns @new Obje... - 09:06 AM Bug #9683 (Review): CompoundQuery is doing extra hydration attempts
- Indeed there are callers of @processComponent@ and @collectRowData@ that do not use the row data, only the fact that ...
- 06:21 AM Bug #9683 (WIP): CompoundQuery is doing extra hydration attempts
- 06:15 AM Bug #9683: CompoundQuery is doing extra hydration attempts
- In a profiled scenario, when running a CompoundQuery, there are 63k calls to @Results.getRow@:
* 21.3k come from @Pr... - 05:54 AM Bug #9683 (Review): CompoundQuery is doing extra hydration attempts
- 10:04 AM Feature #6720: lazy hydration
- Andrei, having 9030b in trunk will be ideal, but I don't have enough focus and time to continue work onto that :/
P... - 09:54 AM Feature #6720: lazy hydration
- I did some investigation of the error I get in the FWD tests. The good news is that it seems that all have the same e...
- 03:31 AM Feature #6720: lazy hydration
- I have ran the FWD tests of another large customer application. Unfortunately, it shows some regressions :((
Howev... - 09:35 AM Feature #9542 (Test): finish ORIGIN-HANDLE ProDataSet attribute
- Branch 9544a which contains the changes from this task was merged into trunk as r15725 and then was archived.
- 09:34 AM Feature #9544 (Test): implement missing SESSION handle attributes
- Branch 9544a was merged into trunk as r15725 and then was archived.
- 07:40 AM Feature #9544 (Merge Pending): implement missing SESSION handle attributes
- Please merge to trunk.
- 08:55 AM Feature #7020: always use "expanded" extent fields
- *7020c* was rebased to trunk *15724* and is now at revision *15748*.
- 05:47 AM Bug #9669 (Review): Optimize RecordMeta.applyInitialValues
- I fixed the issue, 9669a/15717 is ready for review.
- 04:04 AM Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
- I did a bit of testing and found some regressions, will fix them.
02/20/2025
- 10:14 AM Bug #9669 (Review): Optimize RecordMeta.applyInitialValues
- I committed the code to 9669a/15716, it is ready for review.
- 05:41 AM Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
- 10:11 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- Replaced @CREATE_DYN_TT.timer@ with @CREATE_DYN_TT.timerWithReturn@. Committed changes.
- 09:47 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- I am ok with the changes. One small change request:
* In @TempTableBuilder@, the @boolean[] res = new boolean[1];@ i... - 04:05 AM Bug #9670 (Review): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- Extended this refactor for @DynamicQueryHelper@ and @TempTableBuilder@.
Added changes to 9670a/15715. - 02:13 AM Bug #9670 (WIP): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- 10:06 AM Feature #6720: lazy hydration
- > Well, I made getLoadedFields return a BitSet with loaded fields. This makes integration in markIncomplete seamless....
- 09:54 AM Feature #6720: lazy hydration
- Andrei Plugaru wrote:
> Yes, you are right, I will switch it back.
Done that in @6720b/15704@. - 09:42 AM Feature #6720: lazy hydration
- Alexandru Lungu wrote:
> > getLoadedFields
>
> Isn't this equivalent to the already existing @getProps@?
Well,... - 09:22 AM Feature #6720: lazy hydration
- > getLoadedFields
Isn't this equivalent to the already existing @getProps@?
> In BaseRecord.getUnhydratedFields... - 09:06 AM Feature #6720: lazy hydration
- *Committed @6720b/15703@ with the fix for the issue described in the last notes*. My approach was to create another m...
- 09:01 AM Feature #6720: lazy hydration
- Alexandru Lungu wrote:
> I think @readFields@ should be re-thinked a bit, because it has quite a weird integration w... - 04:03 AM Feature #6720: lazy hydration
- I think @readFields@ should be re-thinked a bit, because it has quite a weird integration with @liveProps@ - it may b...
- 10:01 AM Bug #9667 (Review): Bottleneck in BaseRecord.getActiveUpdateDiffs
- I committed the code to 9667a/15716, it is ready for review.
- 04:06 AM Bug #9667 (WIP): Bottleneck in BaseRecord.getActiveUpdateDiffs
02/19/2025
- 12:41 PM Feature #6720: lazy hydration
- I found another case where @6720b@ works incorrectly:...
- 10:21 AM Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- This task is straight-forward. Most API from UnclosablePreparedStatement are using a lambda function to time measure ...
- 10:20 AM Bug #9670 (Test): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
- 10:18 AM Bug #9669: Optimize RecordMeta.applyInitialValues
- In a profiled scenario (#9652), there are 3.6k calls to RecordMeta.applyInitialValues:
* all are generated by @Rec... - 10:13 AM Bug #9669 (Test): Optimize RecordMeta.applyInitialValues
- 05:27 AM Bug #9667: Bottleneck in BaseRecord.getActiveUpdateDiffs
- In a profiled scenario (#9652), there are 46k calls to @BaseRecord.getActiveUpdateDiffs@:
* 26.8k caused by DMO sett... - 05:09 AM Bug #9667 (Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
- 03:30 AM Bug #9590: Double LOAD for each record in FWD
- Rebased *9590a* to latest trunk *trunk/15713*, the branch is now at revision *15714*.
02/18/2025
- 10:19 AM Feature #6720: lazy hydration
- For solving the issue presented in #6720-98 I have created a new method which evicts the ResultSet from the cache and...
- 08:31 AM Feature #6720: lazy hydration
- FYI, @ownResultSet@ and @unownResultSet@ are things specific to #6720 effort - feel free to adjust their usage to fit...
- 07:29 AM Feature #6720: lazy hydration
- The issue regarding the lack of validation of uniqueness have been solved by calling @rs.isLast()@ and making the res...
- 02:16 AM Feature #6720: lazy hydration
- I actually see now why that if statement was missing. When we call @rs.next()@, the result set will be invalidated, s...
- 08:04 AM Feature #7020: always use "expanded" extent fields
- First try to solve contains for expanded extent fields in a temp-table looks like this:
For example, for a field n...
02/17/2025
- 10:52 AM Feature #6720: lazy hydration
- While I was investigating the unit tests for that large customer application, I found out a scenario that somehow doe...
- 04:31 AM Feature #6720: lazy hydration
- Please note that the unit tests are starting with an empty database, so all persistent data that is used is actually ...
- 02:35 AM Feature #6720: lazy hydration
- Eric Faulhaber wrote:
> My gut tells me this is related to something we are doing internally in the runtime (hopeful... - 04:18 AM Bug #9317 (Test): FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches...
- Ioana, feel free to also merge 9317a to 7156c and 7156d.
02/14/2025
- 02:34 PM Feature #6720: lazy hydration
- I suspect the application does not actually need 94%. My gut tells me this is related to something we are doing inter...
- 02:20 PM Feature #6720: lazy hydration
- > It seems that we need, at least during the unit tests for this large customer application, to hydrate over 94% of f...
- 10:03 AM Feature #6720: lazy hydration
- I have added counters to see how many fields are hydrated using the LazyResultSet vs using the fallback loader.
|_. ... - 08:45 AM Feature #6720: lazy hydration
- We have also discussed during the meeting, but I will also post here for reference. Each element of expanded extents ...
- 08:04 AM Feature #6720: lazy hydration
- Andrei, for denormalized extent, there can be tables with 100s or more of fields, with maybe 90% of them from extent....
- 07:40 AM Feature #6720: lazy hydration
- The current results:
|_. Counter name |_. Temp/Persistent|_. Hits |
|/2=. Total number of fields | Temp |1565973 |... - 04:59 AM Feature #6720: lazy hydration
- Alexandru Lungu wrote:
> Good statistic! Quick question: are the numbers cumulative for temp and persistent tables. ... - 04:49 AM Feature #6720: lazy hydration
- Good statistic! Quick question: are the numbers cumulative for temp and persistent tables. If so, can we make a disti...
- 04:01 AM Feature #6720: lazy hydration
- I have added also other counters to measure the impact of the approach presented in the last notes. Here are the resu...
- 01:54 PM Feature #7020: always use "expanded" extent fields
- > What do you think, should this be done in another task ?
No, let's solve it here, once and for all time. - 02:09 AM Feature #7020: always use "expanded" extent fields
- The *7020c* rebased with *trunk* revision *15703*. New revision is *15723*.
- 09:59 AM Bug #9633 (WIP): bulk delete for permanent tables
- 07:24 AM Bug #9318: Make record nursery visible on removeRecords
- I actually missed a regression in etf, so I am currently investigating it.
- 06:17 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- 9317a is merged to trunk as rev. 15708 and archived.
- 05:18 AM Bug #9317 (Merge Pending): FIRST/LAST clauses can avoid generating sub-selects if the WHERE claus...
- Please merge 9317a to trunk now.
02/13/2025
- 10:54 AM Feature #6720: lazy hydration
- Committed @6720b/15700@ with the the implementation to hydrate all the unhydrated fields when the session closes.
... - 07:16 AM Feature #6720: lazy hydration
- > Regarding, the idea to fully hydrate the records that are still loaded when the session closes. I also like it, I c...
- 06:21 AM Feature #6720: lazy hydration
- So, I have tried the example from the last note where I closed the session before the commit in debugger. As a result...
- 04:08 AM Feature #6720: lazy hydration
- Agree with #6720-80. Doing updates will keep the session open as long as the transaction is open. If there is no tran...
- 02:53 AM Feature #6720: lazy hydration
- Yesterday, I had a discussion with Alex, mainly focused on 2 things:
# Should the session really be closed when exit... - 09:48 AM Feature #7020: always use "expanded" extent fields
- I did some other small changes and *7020c* is now at revision *15707*.
With denorm-extent the name of the word tab... - 06:00 AM Bug #9590: Double LOAD for each record in FWD
- Committed *9590a/15680*. Avoid double firing of a FIND trigger when the DynamicResults use a RandomAccessQuery query....
- 03:55 AM Bug #9590: Double LOAD for each record in FWD
- The fix from #9590-22 is good for DynamicResults, but not ScrollingResults. We rely on the already parsed results and...
- 02:27 AM Bug #9633: bulk delete for permanent tables
- Eric Faulhaber wrote:
> Alexandru Lungu wrote:
> > We have the bulk delete for temporary tables, maybe that can be ...
02/12/2025
- 09:26 AM Bug #9633: bulk delete for permanent tables
- Alexandru Lungu wrote:
> We have the bulk delete for temporary tables, maybe that can be used as a source of inspira... - 08:50 AM Bug #9633: bulk delete for permanent tables
- We have the bulk delete for temporary tables, maybe that can be used as a source of inspiration.
- 08:47 AM Bug #9633: bulk delete for permanent tables
- Another note: we should always force an outer tx when we do the bulk delete. Because the code like @for each book ex...
- 09:18 AM Feature #6720: lazy hydration
- I currently have this change to @Hydrator.java@:...
- 07:27 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- 9317a/15689 passed the MT harness test ✅.
02/11/2025
- 09:47 AM Feature #9456 (WIP): implement SQL Server dialect and helpers
- I set up a MSSQL instance for a new customer and put to the test the DDLs FWD generates today. I know for sure a few ...
- 05:08 AM Bug #9633: bulk delete for permanent tables
- I want to stress that the run-time is there, but may be flawed considering it was dead-code by now. Some part is comm...
- 03:25 AM Bug #9633: bulk delete for permanent tables
- FWD emits bulk delete aka @deleteForAll@ only for temp-tables. We need to emit these also for permanent tables. The...
- 03:22 AM Bug #9633 (Review): bulk delete for permanent tables
02/10/2025
- 06:04 AM Feature #6720: lazy hydration
- > In 6720b, the records also have their hydrator refreshed. With your example, I would like to find out why the code ...
- 05:00 AM Feature #6720: lazy hydration
- > Currently, as I think the session should indeed be closed in this case, the solution is to catch the LazyHydrationE...
- 03:36 AM Feature #6720: lazy hydration
- Currently, as I think the session should indeed be closed in this case, the solution is to catch the @LazyHydrationEx...
- 02:54 AM Feature #6720: lazy hydration
- During regression testing of a large customer application I found some problems. Most of them have a @LazyHydrationEx...
02/07/2025
- 08:24 AM Feature #9623: honoring database users and database-defined access control
- OE has features that allow customers to:
# Define users at the database (the @_user@ table). *There is no group s... - 08:13 AM Feature #9623 (New): honoring database users and database-defined access control
- 06:34 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Committed on the testcases project, rev. 1704 the 10 new 4GL unit tests. These verify the number of results and the o...
- 04:19 AM Feature #7020 (Review): always use "expanded" extent fields
- 7020c was rebase to trunk revision 15687.
I have committed 15704/15705, please review:
Removed support for denorm...
02/06/2025
- 04:24 PM Feature #9544: implement missing SESSION handle attributes
- Greg Shah wrote:
> Code Review Task Branch 9544a Revision 15688
>
> No objections. The reporting changes only ne... - 11:16 AM Feature #9544 (Internal Test): implement missing SESSION handle attributes
- 11:15 AM Feature #9544: implement missing SESSION handle attributes
- Code Review Task Branch 9544a Revision 15688
No objections. The reporting changes only need simple testing with H... - 07:59 AM Feature #9544 (WIP): implement missing SESSION handle attributes
- I created branch 9544a and committed the updates on gap info for @FIRST-BUFFER@ and @FIRST-QUERY@ @SESSION@ attributes.
- 11:18 AM Feature #9542 (Review): finish ORIGIN-HANDLE ProDataSet attribute
- Code Review Task Branch 9544a Revision 15689
I saw the changes from this task were added to 9544a.
I see no iss... - 10:25 AM Feature #6720: lazy hydration
- *I finished rebasing 6720b to trunk.* 🥳
I also done some light testing to be sure we haven't lost the lazy hydrati... - 08:29 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Ioana-Cristina Prioteasa wrote:
> [...]
> The testing plan is now complete. While harness tests are currently unava... - 04:42 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- The two additional tests passing are *not* a direct result of 9317a. The failures occur when the outer join optimizat...
- 03:33 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- ETF passed .
02/05/2025
- 10:38 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Tested 150 performance tests and the average time for a run stands for what I observed in #9317-31.
|_.Scenario|_.... - 09:25 AM Feature #7020 (WIP): always use "expanded" extent fields
- I started removing some denormalized / custom-extent references and seems to work well.
But, there is an issue I for... - 04:09 AM Feature #7020: always use "expanded" extent fields
- So, should I remove all references to @denormalized@ / @custom-extents@ and keep just the @normalized@ and @expanded@...
- 07:41 AM Feature #6720: lazy hydration
- Usages of @getData@ I have analysed:
* @Persister.insert@ Here it is not checked whether all the fields are hydrated... - 03:46 AM Feature #6720: lazy hydration
- Committed @6720b/14923@. I have addressed the issue exposed in #6720-71 by changing the corresponding bit from @liveP...
- 07:22 AM Bug #9590: Double LOAD for each record in FWD
- Dănuț Filimon wrote:
> [...] but I am still struggling with the final @results.previous()@ call which triggers the a... - 06:56 AM Bug #9590: Double LOAD for each record in FWD
- My new approach was to take into consideration @results.isAutoFetch()@ when firing the trigger in @RecordBuffer.setRe...
- 05:40 AM Bug #9318: Make record nursery visible on removeRecords
- ETF Conversion went well, ran two tests using the default @implicit = false@ and @deleteIndex = null@, found no regre...
02/04/2025
- 04:18 PM Feature #9544: implement missing SESSION handle attributes
- You might as well make the gap marking change and let's just get this closed out.
- 01:48 PM Feature #9544: implement missing SESSION handle attributes
- I did basic tests and these seem to +work as expected+. Yet, the gaps seem so suggest there is still work to do here:...
- 01:18 PM Feature #9542: finish ORIGIN-HANDLE ProDataSet attribute
- One more thing:
In Ref manual, the attribute is reported as:... - 01:09 PM Feature #9542: finish ORIGIN-HANDLE ProDataSet attribute
- Actually the support for this attribute is 90% implemented. What is missing is the 'reset'. It seems like the @rules/...
- 10:36 AM Feature #6720: lazy hydration
- I probably found a possible problem with the usage of @getData@ in @Record.setPropertyValues@. The problem is that he...
- 07:14 AM Feature #6720: lazy hydration
- As @BaseRecord.getData@ is only used in about 10 places, my current plan is to make some testcases to stress out as m...
- 07:11 AM Feature #6720: lazy hydration
- I actually just managed also with persistent tables:...
- 05:24 AM Feature #6720: lazy hydration
- Andrei, even though it is not that prominent for __temp database, I think it is still applied if I am not mistaken. I...
- 05:20 AM Feature #6720: lazy hydration
- My current focus for now is to check if the rollback functionality works when the lazy hydration is in place. Unfortu...
- 03:23 AM Feature #6720: lazy hydration
- > In this case, all the fields are hydrated at the beginning instead of only the camelCase field when it is accessed....
- 03:13 AM Feature #6720: lazy hydration
- While I was going over the changes and trying to understand them, I tried a simple example that should have used the ...
- 08:50 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Ioana-Cristina Prioteasa wrote:
> Testing plan for *9317a*:
> * *Lorian[ls]/Andrei[ai]/Ioana[icp]*: Chui regression... - 08:19 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- The time is the total execution time of all queries executed during the test.
- 07:17 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- What is the timing reflect? The total time for a specific query? What was the query analyzed? Or do you mean all SQL ...
- 05:56 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- I enabled SQL logging during a performance test with a threshold of 0, ensuring all queries were logged. The test was...
- 03:08 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Ioana-Cristina Prioteasa wrote:
> Testing plan for *9317a*:
> * *Andrei[ai]*: large customer Gui application regres... - 07:13 AM Bug #9590: Double LOAD for each record in FWD
- Dănuț Filimon wrote:
> This was added in trunk/12101 for #5136.
Correction, the actual code from #9590-17 was add... - 03:55 AM Bug #9590: Double LOAD for each record in FWD
- Alexandru Lungu wrote:
> > The problem is that !shouldUpdateAnyLock(lockType) will be false because the query compon... - 03:48 AM Bug #9590: Double LOAD for each record in FWD
- Alexandru Lungu wrote:
> Why is this solution working? @fetch(true, lockType, false);@ was going to call @super.fetc... - 03:41 AM Bug #9590: Double LOAD for each record in FWD
- Why is this solution working? @fetch(true, lockType, false);@ was going to call @super.fetch(available, lockType, err...
- 03:34 AM Bug #9590: Double LOAD for each record in FWD
- Alexandru Lungu wrote:
> > The problem is that !shouldUpdateAnyLock(lockType) will be false because the query compon... - 03:29 AM Bug #9590: Double LOAD for each record in FWD
- > The problem is that !shouldUpdateAnyLock(lockType) will be false because the query component will have a dynamic pr...
- 02:34 AM Feature #7020: always use "expanded" extent fields
- I'm considering a solution: We could remove all references to denorm-extent and replace them with expanded-extents. T...
02/03/2025
- 04:34 PM Feature #7020: always use "expanded" extent fields
- Roger Borrello wrote:
> Does this mean "back to the drawing board", or is there a way around this?
Ugh, this is t... - 04:27 PM Feature #7020: always use "expanded" extent fields
- Stefanel Pezamosca wrote:
> So, pretty much all the errors I encountered while testing 7020c with expand-extents=tru... - 12:50 PM Feature #7020: always use "expanded" extent fields
- Ovidiu noted this when I posted that my attempt to import into the database with normalized extents resulted in too m...
- 12:08 PM Feature #7020: always use "expanded" extent fields
- Roger Borrello wrote:
> Constantin Asofiei wrote:
> > The regression testing needs to do a diff between current/tru... - 11:54 AM Feature #7020: always use "expanded" extent fields
- Constantin Asofiei wrote:
> The regression testing needs to do a diff between current/trunk DDLs and the new DDLs. ... - 11:42 AM Feature #7020: always use "expanded" extent fields
- The regression testing needs to do a diff between current/trunk DDLs and the new DDLs. We need to know how/if someth...
- 11:19 AM Feature #7020: always use "expanded" extent fields
- Greg Shah wrote:
> No, that tool is not ready yet. Please test using a normal import.
Results noted in #8982-8 - 09:30 AM Feature #7020 (Review): always use "expanded" extent fields
- I have committed to 7020c revision 15690 some changes to address this:
>DDLGeneratorWorker$Helper.addField negates e... - 09:25 AM Feature #7020: always use "expanded" extent fields
- No, that tool is not ready yet. Please test using a normal import.
- 09:18 AM Feature #7020: always use "expanded" extent fields
- Stefanel Pezamosca wrote:
> Roger Borrello wrote:
> > *No errors* in the build with @9537a-15672@. I was indicating... - 09:06 AM Feature #7020: always use "expanded" extent fields
- Roger Borrello wrote:
> *No errors* in the build with @9537a-15672@. I was indicating that the previous attempts (wi... - 08:57 AM Feature #7020: always use "expanded" extent fields
- Stefanel Pezamosca wrote:
> Roger Borrello wrote:
> > There are 2 builds of the customer application using @9537a-1... - 06:47 AM Feature #7020: always use "expanded" extent fields
- > Could you send me an email (sp) with the details ?
Details can be discussed in #9537. - 02:16 AM Feature #7020: always use "expanded" extent fields
- Roger Borrello wrote:
> There are 2 builds of the customer application using @9537a-15672@, one as we have always bu... - 09:29 AM Bug #9590: Double LOAD for each record in FWD
- Alexandru, you mentioned in the meeting the @Results.isAutoFetch()@ method which is used here:...
- 07:21 AM Bug #9590: Double LOAD for each record in FWD
- Dănuț Filimon wrote:
> The CompoundQuery ends up triggering the FIND once in the @CompoundQuery.last(), Object[] ids... - 07:13 AM Bug #9590: Double LOAD for each record in FWD
- The CompoundQuery ends up triggering the FIND once in the @CompoundQuery.last(), Object[] ids = retrieve(LAST, lockTy...
- 06:37 AM Bug #9590: Double LOAD for each record in FWD
- I've managed to fix the AdaptiveQuery scenario, currently looking into fixing the CompoundQuery scenario.
- 03:06 AM Bug #9590: Double LOAD for each record in FWD
- There's an issue with #9590-9, especially with how triggers are executed for certain result sets. In the AdaptiveQuer...
- 05:06 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- *9317a is rebased*, the revisions that need testing: *15679 - 15689*.
- 04:56 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- In the trunk version, @collectPropertyMatches@ defaults them to false and -1 when creating the @AstWalkListener@, so ...
- 04:39 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Rebasing 9317 cause some issues because of *trunk rev. 15656*:...
- 02:56 AM Bug #9317: FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches a uniq...
- Testing plan for *9317a*:
* *Ioana[icp]*: large customer application unit tests and regression tests - DONE
* *Andr...
Also available in: Atom