>I am going to post here a response I got from Tim Penner in the TAOW a bit
earlier today. While it does not change my mind that this issue should be
characterized as a bug, it does clarify what the issue really is.

It's a bug. If 4D wants to document it as standard behavior, that's their
business. But it's still a bug and will lead to real-world problems. This
is the kind of bug I'd rank *extremely* serious. Why? Well, imagine any
number of data change scenarios some of which change the field on one way
and some in another. Depending on the exact sequence of steps the same
modification will result in putting the data into a different state. This
is exactly the sort of situation that can run undetected for
days/weeks/months in the field. And then what do you do? There is literally
no way to unscramble the eggs. You have *no idea* what quality your data is
at that point. It has any number of undetectable, subtle flaws. The number
may be zero, the number may be .0005% of the candidate fields, it may be
7.23% of the candidate fields. Unless you've got source data to completely
rebuild everything from scratch, you'll never know and never be able to fix
it.

Object fields sound better and better to me all the time ;-) They're
non-relational, accessed through a "novel" and incomplete JSON
serialization scheme, take a lot of space (the same data in primitives
takes less room), have a bunch of adjacent/extra commands devoted to
working with them....and, I'm told, are *not* designed to be used for the
majority of cases where JSON fields are commonly used in ORDBS and NoSQL
systems. I just don't get it.

Anyway, modifying and saving a field of this sort should be
*deterministic*. Making it functionally non-deterministic isn't defensible
for a RDMS in any way.

 Input --> [Function] ---> It depends

That's fine if you want something random, it's not fine in any other case.

It's a bug. But, again, 4D is free to say it isn't. Their business, their
rules.

> Am I the only one that was clueless that there is a field dirty field
flag that controls whether or not a field gets updated or not during a save
record. Guess that does make sense.

For a long time you would bump up against this on large data types and the
Old() function. That's about the only practical way I remember it being an
issue for us.
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to