Question
· Jan 19, 2023

Why is node ordering different between two environments ?

I have noticed that the way the nodes are ordered is different between 2 different environments.

If I create the following global :

set ^TEMP("Z")=1
set ^TEMP("Ä")=1

Then I dump it with zwrite, I get this (which is expected):

^TEMP("Z")=1
^TEMP("Ä")=1

However, on another machine, it gives me this :

^TEMP("Ä")=1
^TEMP("Z")=1

The same goes for the following command (which return 0 or 1, depending environment) : 

write "Z"]]"Ä"

Both are running Windows 10, but one is running IRIS 2021.1, the other CACHE 2017.2.2.

I don't think that's the reason, maybe there's something else (a configuration in Portal). Has anyone encountered a similar problem and knows what is wrong?

I also tested the following JS code: 

alert("Z"<"Ä");

It displays "1" in both environments (so AFAIK this is a CACHE issue, not an operating system issue).

Product version: Caché 2017.1
$ZV: Cache for Windows (x86-64) 2017.2.2 (Build 867_4_20455) Mon Nov 16 2020 19:02:06 EST
Discussion (5)2
Log in or sign up to continue

Both are set to "deu8". I checked properties : 

The only difference is in collation tables. Both are set to "German2", but "Additional" column is not the same : 
CACHE : Cache standard, German1, German3
IRIS : German1, German3, German5, IRIS standard
I guess that's the reason. Not sure how it can be fixed (so CACHE behave like IRIS). All "edit" buttons are grayed.

You are on the right path, I use deuw and see

some differences grown by history

  • sort ÄÖÜ + ß (sharp S) after Z as by ASCII
  • sort Ä after A, Ö after O, Ü after U  but before Z
  • ignore trema. sort Ä=A, Ö=O, Ü=U   no idea about ß

4 and 5 may contribute to the lastest nonsense of German Language Authoroties
that introduced sharp_S also in uppercase.
<we lived since ever without it and didn't miss anything>

Your case:
You can't change the collation of an existing Global
But you can apply a different collation before first use in SMP
to overwrite default collation of the  DB
System > Configuration > Local Databases > Globals > New Global 

So you set up a global ^TEMP3  with collation German3
and run MERGE ^TEMP3=^TEMP  and have a new collation.


Some time back I set that to have different index collations for
German, Hungarian, Italian, French, Slovenian, ...
see my post Multi Language Sort