You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Try to implement default implementation for functions for Dynamic type (so any function will be executed on underlying types dynamically and throw an exception on first incompatible type) - Support Dynamic type in most functions #69691
This issue contains tasks for further improvements of new JSON data type. Continuation of #54864.
Important tasks:
JSONtype fromString/Map/Tuple/ - Support alter from String to JSON #70442JSONtype fromObject- Support ALTER from Object to JSON #71784Map/Tuple/Objecttypes to newJSON- Implement simple CAST from Map/Tuple/Object to new JSON through serialization/deserialization from JSON string #71320JSONtypes with different parameters (skip paths, limits, type hints) - Support CAST and ALTER between JSON types with different parameters #72303Dynamictype (so any function will be executed on underlying types dynamically and throw an exception on first incompatible type) - Support Dynamic type in most functions #69691distinctDynamicTypes/distinctJSONPaths/distinctJSONPathsAndTypesfor better introspection of the content in the JSON column - Add aggregate functions distinctDynamicTypes/distinctJSONPaths/distinctJSONPathsAndTypes #68463Dynamictype inifNull/coalescefunctions - Support Dynamic type in functions ifNull and coalesce #72772Dynamictype in functionstoFloat64and similar - Support Dynamic in functions toFloat64/touInt32/etc #72989Nullable(JSON)- Support Nullable(JSON) #73556JSON/Dynamictypes - Allow ALTER UPDATE in JSON and Dynamic columns #82419Array(Dynamic)instead of unnamed Tuple for arrays of values with different types - Use Array(Dynamic) instead of unnamed tuple for arrays of values with different data types in JSON subcolumn types inference #74937Objectdata type - Remove deprecated Object type #85718tupleElementfunction - Support JSON type in tupleElement #91327type_json_skip_invalid_typed_pathsto use default value during bad parsing of a path with a hint type - feat(json): add type_json_skip_invalid_typed_paths setting #89886distinctJSONPathsaggregate function so it reads only metadata files with the list of paths - Optimize distinctJSONPaths aggregate function #92196json.$a.bfor union ofjson.a.bandjson.^a.bor function for such use case - Introduce new "combined" subcolumn for JSON data type that combines literal and sub-object values #98788JSONtype inJSONExtract*functions - Support for native JSON type in JSONExtract* functions. Fixes #88370. #96711JSONAllPathsfunction similar tomapKeysforMaptype - Add MergeTree skip index support for JSON paths using JSONAllPaths with bloom_filter, tokenbf_v1, ngrambf_v1, and text (inverted) index types #98886Tasks with no priority:
max_subcolumns_to_read.JSONAllValuesthat returns the list of values (casted to String maybe) stored in JSON column in sorted by path orderjson.array[N].keyforArray(JSON)subcolumns (comment)Dynamictype as first argument of functionhasjsonuntuple(json, array_of_paths)to select paths as separate columnsarrayElementfunction for JSON to read subcolumns likejson['key']and use optimization functions to subcolumns hereJSONRemoveKeysandJSONUpdateKeysversionandis_deletedcolumnsMap(String, Dynamic)Feel free to add any ideas for improvements/feature requests in the comments in this issue