KDB+ Architecture
Q Programming Language
- Q - Message Handler (.Z Library)
- Q - Inter-Process Communication
- Q Language - Queries
- Q Language - Built-in Functions
- Q Language - Functions
- Q Language - Joins
- Q Language - Verb & Adverbs
- Q Language - Table
- Q Language - Dictionaries
- Q Language - Indexing
- Q Language - Lists
- Q Language - Temporal Data
- Q Language - Type Casting
- Q Programming Language
Q Advanced Topics
- Q Language - Maintenance Functions
- Q Language - Tables on Disk
- Q Language - Table Arithmetic
- Q Language - Functional Queries
- Q Language - Attributes
KDB+ Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Q Language - Type Casting
It is often required to change the data type of some data from one type to another. The standard casting function is the “$” dyadic operator.
Three approaches are used to cast from one type to another (except for string) −
Specify desired data type by its symbol name
Specify desired data type by its character
Specify desired data type by it short value.
Casting Integers to Floats
In the following example of casting integers to floats, all the three different ways of casting are equivalent −
q)a:9 18 27 q)$[`float;a] / Specify desired data type by its symbol name, 1st way 9 18 27f q)$["f";a] / Specify desired data type by its character, 2nd way 9 18 27f q)$[9h;a] / Specify desired data type by its short value, 3rd way 9 18 27f
Check if all the three operations are equivalent,
q)($[`float;a]~$["f";a]) and ($[`float;a] ~ $[9h;a]) 1b
Casting Strings to Symbols
Casting string to symbols and vice versa works a bit differently. Let’s check it with an example −
q)b: ("Hello";"World";"HelloWorld") / define a pst of strings q)b "Hello" "World" "HelloWorld" q)c: `$b / this is how to cast strings to symbols q)c / Now c is a pst of symbols `Hello`World`HelloWorld
Attempting to cast strings to symbols using the keyed words `symbol or 11h will fail with the type error −
q)b "Hello" "World" "HelloWorld" q)`symbol$b type q)11h$b type
Casting Strings to Non-Symbols
Casting strings to a data type other than symbol is accomppshed as follows −
q)b:900 / b contain single atomic integer q)c:string b / convert this integer atom to string “900” q)c "900" q)`int $ c / converting string to integer will return the / ASCII equivalent of the character “9”, “0” and / “0” to produce the pst of integer 57, 48 and / 48. 57 48 48i q)6h $ c / Same as above 57 48 48i q)"i" $ c / Same a above 57 48 48i q)"I" $ c 900i
So to cast an entire string (the pst of characters) to a single atom of data type x requires us to specify the upper case letter representing data type x as the first argument to the $ operator. If you specify the data type of x in any other way, it result in the cast being appped to each character of the string.
Advertisements