I'm confused.
My understanding:
- Tables have CRCs, and indexes have CRCs.
- A change to a table, even adding a field at the end, changes the CRC.
- Among many other things, the table CRC (and field list, from what I can see) is compiled into the r-code.
I made a program that displays the contents of a table (with one record and one column), and compiled it. I ran it against the DB and it worked (expected). Then I added a second column to the table and assigned it a value in the record, and then compiled the source again into a new .r.
Now I have two object files compiled from the same source, and each contains a different table CRC. When run, the programs give different results: one displays column 1, the other displays columns 1 and 2. Both run without error.
My confusion is that after making the schema change I expected the first .r to complain about the fact that the table CRC has changed. I expected it to compared the CRC in the metaschema to the CRC in the .r and report a mismatch.
Said another way, in which circumstances would one encounter an 1896 error?