[Info-ingres] Is my Ingres server running on Windows?

Roy Hann specially at processed.almost.meat
Wed Sep 6 12:45:47 UTC 2023


Sarkaut Mohn wrote:

> Roy Hann schrieb am Dienstag, 5. September 2023 um 10:54:50 UTC+2:
>> chris.cla... at gmail.com wrote: 
>> 
>> > On Monday, September 4, 2023 at 6:48:09 AM UTC-7, Roy Hann wrote: 
>> >> Short of querying ima_version, or parsing the _version() string, or 
>> >> similar antics, is there a convenient way to tell if my application is 
>> >> connected to Ingres running on Windows? 
>> >> 
>> >> Clearly I am hoping for something like dbmsinfo('platform')...
>> > [snip]
>> > 
>> > Out of curiosity, what sort of decisions to you want to make once you 
>> > have this determined in the application?
>> I want to know what kind of UUID I'm getting back from 
>> 
>> SELECT uuid() 
>> 
>> On a 'nix I'll get a Type-1 UUID; on Windows I'll get a Type-4 and the 
>> human-readable representation will be scrambled (seemingly because it's 
>> ignoring endian-ness): e.g. 4dbbb0f1-e68d-834a-8e47-359b73beb840. 
>> According to me that -834a- bit should be -4a83-. 
>> 
>> If I know the UUID is coming from Windows I can select hex(uuid()) and 
>> format it correctly myself. 
>> 
>> The formatting is my issue; I don't care that the two versions return 
>> different types of UUID--though I can't imagine it's desirable. 
>
> If you wanted to get v1 UUID on Windows, you can use II_UUID_MAC set to TRUE.
> On Windows, Ingres runs the OS function UuidCreate which generates v4 UUIDs. 
> With II_UUID_MAC=TRUE, Ingres uses OS function UuidCreateSequential
> which generates v1 UUIDs. On Linux, Ingres uses an own customized code
> and generates v1 UUIDs.

Ah-hah! I did not know about that. Thank you. 

There is still the problem that on Windows the human-readble
representation is garbled though.

As for my original question: I've resigned myself to looking for "win"
in the _version() string. It's not very horrible.

Roy



More information about the Info-ingres mailing list