Log file contains more data than 4D

4D v17 HF3

We’re building a Postgres mirror of our 4D database to enable richer data mining and reporting without involving 4D’s SQL engine. We’re using 4D’s existing mirroring features along with LOG FILE TO JSON to convert 4D’s journal files into json files that we can then use to update Postgres.

We’ve discovered an odd issue. In 4D, we have a field in our Inventory table named Status. It’s defined in 4D as a field type of Alpha, 1 character. It’s purpose is to accept a single character code like “D” for demo.

We seem to have a bug in our code, or maybe a lazy developer… the user interface will present this as D - Demo. If we assign this single character field to D - Demo, it gets written into the database as just D as you would expect (truncated to one character), but we see the full “D - Demo” string in the journal file!

I’m wondering how and why there could be a discrepancy between the data stored in the main database and the data included in the journal file?

I think we figured this out… the journal file is including the data that was actually stored in the record at the time it was saved.

If you modify a different field after the field length has changed, the journal file still contains the original data that’s a longer length.