Thanks for the tip Denis. I changed layout from flat to hashed as you have suggested, now new questions have showed up.
My dict looks like this:
<structure>
<key>
<attribute>
<name>ID</name>
<type>String</type>
</attribute>
</key>
<attribute>
<name>Description</name>
<type>String</type>
<null_value>Unknown</null_value>
</attribute>
<attribute>
<name>Description_long</name>
<type>String</type>
<null_value>Unknown</null_value>
</attribute>
</structure>
Please notice that ID key attribute is of type String, and layout is of type hashed.
If key is a string, I assumed that I will be able to call dict value with
select dictGetString('CCD_Moblie_Stations', 'Description', '1066800')
but now I get the error:
Illegal type String of third argument of function dictGetString, must be UInt64 or tuple(...).
How come that even when key is of String type I have to use toUInt64.
Problem with toUInt64 is tha when I have an empty string that should be converted to UInt64 format toUint64 function report an error
Attempt to read after eof: Cannot parse UInt64 from String, because value is too short
What I am trying to accomplish is to have id that I can use in dictGetString with as little transformations as possible.
Can you please help?