variant_type_name¶
Description¶
Resolves the data type of a variant column so that column may be typed for better performance.
Given a variant value (typically, something you get from looking up a path or element in a JSON object or array,) determine what type that value has.
The possible types are:
- “string” 
- “bool” 
- “float64” 
- “int64” 
- “object” 
- “array” 
- null 
Return type¶
string
Domain¶
This is a scalar function (calculates a single output value for a single input row.)
Categories¶
Usage¶
variant_type_name(value)
| Argument | Type | Optional | Repeatable | Restrictions | 
|---|---|---|---|---|
| value | variant | no | no | none | 
Examples¶
make_col obj:parse_json('{"str":"xx", "int":12345, "flt":3.1416, "bol":true, "obj":{}, "ary":[], "nul":null}')
make_col typ_str:variant_type_name(obj.str),
         typ_int:variant_type_name(obj.int),
         typ_flt:variant_type_name(obj.flt),
         typ_bol:variant_type_name(obj.bol),
         typ_obj:variant_type_name(obj.obj),
         typ_ary:variant_type_name(obj.ary),
         typ_nul:variant_type_name(obj.nul),
         typ_xxx:variant_type_name(obj.xxx)
This code parses a JSON object from string, and then constructs a column containing the name of the type of each object in that made object. The values of the columns will be:
| column | value | 
|---|---|
| typ_str | “string” | 
| typ_int | “int64” | 
| typ_flt | “float64” | 
| typ_bol | “bool” | 
| typ_obj | “object” | 
| typ_ary | “array” | 
| typ_nul | “null” | 
| typ_xxx | null |