XenCraft's Unicode Collation for Progress

The XenCraft Unicode Collation for Progress (XenPUC) is a shared library that allows Progress to use a language-based collation instead of a binary collation. The collation is for use by Progress applications and database indexes using Unicode.


Are you a man or a machine?

If you and your customers are human, then you should be using language-based Unicode collation, and not a binary collation. Binary collations are fine for computers not people. The difference between binary and linguistic sorts is visualized on Comparing Binary Sort with Linguistic Sort.


XenCraft's first product XenPUC is a shared library that the Progress executables know to access directly. The same technique is used by Progress to provide Thai collation support in version 8 of Progress. Using this library, any Unicode application can have the benefit of language-based sorting.

Your Unicode (UTF-8) databases can now have indexes that sort using language rules instead of the ordering of characters in the Unicode standard. Similarly, string comparisons by the 4GL, will also use native language rules to compare strings and not the binary values of the characters in the string.

Although future versions of XenPUC may allow user-defined sorting, where you can change the sort ordering, version 1 comes with pre-defined sorts. XenCraft can configure the XenPUC library to use any sort ordering you like. We recommend you choose from one of the existing collations that Progress provides for its non-Unicode code pages, and we will apply that sort ordering to the Unicode data. However, we can customize for any preferences you may have. For example, if you use code page ISO8859-1 and BASIC (or BASIC9) collation, we can provide you with XenPUC that will sort all the characters in ISO8859-1, ahead of other Unicode characters and in the same order as you are used to. Actually, XenPUC is a bit cleverer than that, and will give you a reasonable collation for all Latin characters. Alternatively, you can request that Slavic, Cyrillic, Asian, Hebrew or Arabic characters be sorted ahead of characters in other languages, and that they be sorted according to native language rules.

The library is easy to configure and install, and easy to make available for deployment.

To Top