Wail Alkowaileet created ASTERIXDB-1609: -------------------------------------------
Summary: TwitterParser does parse closed-nullable fields. Key: ASTERIXDB-1609 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1609 Project: Apache AsterixDB Issue Type: Bug Components: Data Model, Feeds Reporter: Wail Alkowaileet TwitterParser doesn't support types NULL/MISSING To reproduce, connect TwitterFeed using the defined type below. I roundtrip-ed it using load statement and it was successfully loaded. DDL: {noformat} drop dataverse feeds if exists; create dataverse feeds; use dataverse feeds; create type userType1 as open { 'utc_offset':int64?, 'friends_count':int64?, 'profile_image_url_https':string?, 'listed_count':int64?, 'profile_background_image_url':string?, 'default_profile_image':boolean?, 'favourites_count':int64?, 'description':string?, 'created_at':string?, 'is_translator':boolean?, 'profile_background_image_url_https':string?, 'protected':boolean?, 'screen_name':string?, 'id_str':string?, 'profile_link_color':string?, 'id':int64?, 'geo_enabled':boolean?, 'profile_background_color':string?, 'lang':string?, 'profile_sidebar_border_color':string?, 'profile_text_color':string?, 'verified':boolean?, 'profile_image_url':string?, 'time_zone':string?, 'contributors_enabled':boolean?, 'profile_background_tile':boolean?, 'profile_banner_url':string?, 'statuses_count':int64?, 'followers_count':int64?, 'profile_use_background_image':boolean?, 'default_profile':boolean?, 'name':string?, 'location':string?, 'profile_sidebar_fill_color':string?, 'url':string? } create type smallType1 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType1 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType1 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType1 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType1 as open { 'small':smallType1?, 'large':largeType1?, 'thumb':thumbType1?, 'medium':mediumType1? } create type listType2 as open { 'content_type':string?, 'bitrate':int64?, 'url':string? } create type video_infoType1 as open { 'aspect_ratio':[int64]?, 'duration_millis':int64?, 'variants':[listType2]? } create type listType1 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType1?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'video_info':video_infoType1?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string? } create type extended_entitiesType1 as open { 'media':[listType1]? } create type smallType2 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType2 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType2 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType2 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType2 as open { 'small':smallType2?, 'large':largeType2?, 'thumb':thumbType2?, 'medium':mediumType2? } create type listType3 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType2?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string? } create type listType4 as open { 'display_url':string?, 'indices':[int64]?, 'expanded_url':string?, 'url':string? } create type listType5 as open { 'indices':[int64]?, 'text':string? } create type listType6 as open { 'indices':[int64]?, 'screen_name':string?, 'id_str':string?, 'name':string?, 'id':int64? } create type entitiesType1 as open { 'media':[listType3]?, 'urls':[listType4]?, 'hashtags':[listType5]?, 'user_mentions':[listType6]? } create type bounding_boxType1 as open { 'coordinates':[[[double]]]?, 'type':string? } create type placeType1 as open { 'country_code':string?, 'country':string?, 'full_name':string?, 'bounding_box':bounding_boxType1?, 'place_type':string?, 'name':string?, 'id':string?, 'url':string? } create type userType2 as open { 'utc_offset':int64?, 'friends_count':int64?, 'profile_image_url_https':string?, 'listed_count':int64?, 'profile_background_image_url':string?, 'default_profile_image':boolean?, 'favourites_count':int64?, 'description':string?, 'created_at':string?, 'is_translator':boolean?, 'profile_background_image_url_https':string?, 'protected':boolean?, 'screen_name':string?, 'id_str':string?, 'profile_link_color':string?, 'id':int64?, 'geo_enabled':boolean?, 'profile_background_color':string?, 'lang':string?, 'profile_sidebar_border_color':string?, 'profile_text_color':string?, 'verified':boolean?, 'profile_image_url':string?, 'time_zone':string?, 'contributors_enabled':boolean?, 'profile_background_tile':boolean?, 'profile_banner_url':string?, 'statuses_count':int64?, 'followers_count':int64?, 'profile_use_background_image':boolean?, 'default_profile':boolean?, 'name':string?, 'profile_sidebar_fill_color':string?, 'location':string?, 'url':string? } create type listType7 as open { 'display_url':string?, 'indices':[int64]?, 'expanded_url':string?, 'url':string? } create type listType8 as open { 'indices':[int64]?, 'text':string? } create type listType9 as open { 'indices':[int64]?, 'screen_name':string?, 'id_str':string?, 'name':string?, 'id':int64? } create type smallType3 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType3 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType3 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType3 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType3 as open { 'small':smallType3?, 'large':largeType3?, 'thumb':thumbType3?, 'medium':mediumType3? } create type listType10 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType3?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string? } create type entitiesType2 as open { 'urls':[listType7]?, 'hashtags':[listType8]?, 'user_mentions':[listType9]?, 'media':[listType10]? } create type smallType4 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType4 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType4 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType4 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType4 as open { 'small':smallType4?, 'large':largeType4?, 'thumb':thumbType4?, 'medium':mediumType4? } create type listType12 as open { 'content_type':string?, 'url':string?, 'bitrate':int64? } create type video_infoType2 as open { 'aspect_ratio':[int64]?, 'duration_millis':int64?, 'variants':[listType12]? } create type listType11 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType4?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string?, 'video_info':video_infoType2? } create type extended_entitiesType2 as open { 'media':[listType11]? } create type bounding_boxType2 as open { 'coordinates':[[[double]]]?, 'type':string? } create type placeType2 as open { 'country_code':string?, 'country':string?, 'full_name':string?, 'bounding_box':bounding_boxType2?, 'place_type':string?, 'name':string?, 'id':string?, 'url':string? } create type quoted_statusType1 as open { 'created_at':string?, 'truncated':boolean?, 'source':string?, 'retweet_count':int64?, 'retweeted':boolean?, 'filter_level':string?, 'is_quote_status':boolean?, 'id_str':string?, 'favorite_count':int64?, 'id':int64?, 'text':string?, 'lang':string?, 'user':userType2?, 'favorited':boolean?, 'quoted_status_id':int64?, 'possibly_sensitive':boolean?, 'entities':entitiesType2?, 'quoted_status_id_str':string?, 'extended_entities':extended_entitiesType2?, 'in_reply_to_status_id_str':string?, 'in_reply_to_status_id':int64?, 'in_reply_to_user_id_str':string?, 'in_reply_to_screen_name':string?, 'in_reply_to_user_id':int64?, 'place':placeType2? } create type coordinatesType1 as open { 'coordinates':[double]?, 'type':string? } create type geoType1 as open { 'coordinates':[double]?, 'type':string? } create type scopesType1 as open { 'followers':boolean? } create type retweeted_statusType1 as open { 'created_at':string?, 'truncated':boolean?, 'source':string?, 'retweet_count':int64?, 'retweeted':boolean?, 'filter_level':string?, 'is_quote_status':boolean?, 'id_str':string?, 'favorite_count':int64?, 'id':int64?, 'text':string?, 'lang':string?, 'user':userType1?, 'favorited':boolean?, 'extended_entities':extended_entitiesType1?, 'possibly_sensitive':boolean?, 'entities':entitiesType1?, 'place':placeType1?, 'quoted_status':quoted_statusType1?, 'quoted_status_id':int64?, 'quoted_status_id_str':string?, 'in_reply_to_status_id_str':string?, 'in_reply_to_status_id':int64?, 'in_reply_to_user_id_str':string?, 'in_reply_to_screen_name':string?, 'in_reply_to_user_id':int64?, 'coordinates':coordinatesType1?, 'geo':geoType1?, 'scopes':scopesType1? } create type listType13 as open { 'indices':[int64]?, 'screen_name':string?, 'id_str':string?, 'name':string?, 'id':int64? } create type smallType5 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType5 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType5 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType5 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType5 as open { 'small':smallType5?, 'large':largeType5?, 'thumb':thumbType5?, 'medium':mediumType5? } create type listType14 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType5?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string? } create type listType15 as open { 'display_url':string?, 'indices':[int64]?, 'expanded_url':string?, 'url':string? } create type listType16 as open { 'indices':[int64]?, 'text':string? } create type listType17 as open { 'indices':[int64]?, 'text':string? } create type entitiesType3 as open { 'user_mentions':[listType13]?, 'media':[listType14]?, 'urls':[listType15]?, 'hashtags':[listType16]?, 'symbols':[listType17]? } create type userType3 as open { 'friends_count':int64?, 'profile_image_url_https':string?, 'listed_count':int64?, 'profile_background_image_url':string?, 'default_profile_image':boolean?, 'favourites_count':int64?, 'description':string?, 'created_at':string?, 'is_translator':boolean?, 'profile_background_image_url_https':string?, 'protected':boolean?, 'screen_name':string?, 'id_str':string?, 'profile_link_color':string?, 'id':int64?, 'geo_enabled':boolean?, 'profile_background_color':string?, 'lang':string?, 'profile_sidebar_border_color':string?, 'profile_text_color':string?, 'verified':boolean?, 'profile_image_url':string?, 'contributors_enabled':boolean?, 'profile_background_tile':boolean?, 'profile_banner_url':string?, 'statuses_count':int64?, 'followers_count':int64?, 'profile_use_background_image':boolean?, 'default_profile':boolean?, 'name':string?, 'location':string?, 'profile_sidebar_fill_color':string?, 'utc_offset':int64?, 'time_zone':string?, 'url':string? } create type smallType6 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType6 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType6 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType6 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType6 as open { 'small':smallType6?, 'large':largeType6?, 'thumb':thumbType6?, 'medium':mediumType6? } create type listType19 as open { 'content_type':string?, 'bitrate':int64?, 'url':string? } create type video_infoType3 as open { 'aspect_ratio':[int64]?, 'duration_millis':int64?, 'variants':[listType19]? } create type listType18 as open { 'display_url':string?, 'indices':[int64]?, 'sizes':sizesType6?, 'id_str':string?, 'expanded_url':string?, 'media_url_https':string?, 'id':int64?, 'type':string?, 'media_url':string?, 'url':string?, 'source_user_id':int64?, 'source_status_id':int64?, 'source_status_id_str':string?, 'source_user_id_str':string?, 'video_info':video_infoType3? } create type extended_entitiesType3 as open { 'media':[listType18]? } create type userType4 as open { 'utc_offset':int64?, 'friends_count':int64?, 'profile_image_url_https':string?, 'listed_count':int64?, 'profile_background_image_url':string?, 'default_profile_image':boolean?, 'favourites_count':int64?, 'description':string?, 'created_at':string?, 'is_translator':boolean?, 'profile_background_image_url_https':string?, 'protected':boolean?, 'screen_name':string?, 'id_str':string?, 'profile_link_color':string?, 'id':int64?, 'geo_enabled':boolean?, 'profile_background_color':string?, 'lang':string?, 'profile_sidebar_border_color':string?, 'profile_text_color':string?, 'verified':boolean?, 'profile_image_url':string?, 'time_zone':string?, 'contributors_enabled':boolean?, 'profile_background_tile':boolean?, 'profile_banner_url':string?, 'statuses_count':int64?, 'followers_count':int64?, 'profile_use_background_image':boolean?, 'default_profile':boolean?, 'name':string?, 'profile_sidebar_fill_color':string?, 'location':string?, 'url':string? } create type smallType7 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType7 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType7 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType7 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType7 as open { 'small':smallType7?, 'large':largeType7?, 'thumb':thumbType7?, 'medium':mediumType7? } create type listType21 as open { 'content_type':string?, 'bitrate':int64?, 'url':string? } create type video_infoType4 as open { 'aspect_ratio':[int64]?, 'variants':[listType21]?, 'duration_millis':int64? } create type listType20 as open { 'display_url':string?, 'source_user_id':int64?, 'type':string?, 'media_url':string?, 'source_status_id':int64?, 'url':string?, 'indices':[int64]?, 'sizes':sizesType7?, 'id_str':string?, 'expanded_url':string?, 'source_status_id_str':string?, 'media_url_https':string?, 'id':int64?, 'source_user_id_str':string?, 'video_info':video_infoType4? } create type extended_entitiesType4 as open { 'media':[listType20]? } create type smallType8 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type largeType8 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type thumbType8 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type mediumType8 as open { 'w':int64?, 'h':int64?, 'resize':string? } create type sizesType8 as open { 'small':smallType8?, 'large':largeType8?, 'thumb':thumbType8?, 'medium':mediumType8? } create type listType22 as open { 'display_url':string?, 'source_user_id':int64?, 'type':string?, 'media_url':string?, 'source_status_id':int64?, 'url':string?, 'indices':[int64]?, 'sizes':sizesType8?, 'id_str':string?, 'expanded_url':string?, 'source_status_id_str':string?, 'media_url_https':string?, 'id':int64?, 'source_user_id_str':string? } create type listType23 as open { 'display_url':string?, 'indices':[int64]?, 'expanded_url':string?, 'url':string? } create type listType24 as open { 'indices':[int64]?, 'screen_name':string?, 'id_str':string?, 'name':string?, 'id':int64? } create type listType25 as open { 'indices':[int64]?, 'text':string? } create type entitiesType4 as open { 'media':[listType22]?, 'urls':[listType23]?, 'user_mentions':[listType24]?, 'hashtags':[listType25]? } create type bounding_boxType3 as open { 'coordinates':[[[double]]]?, 'type':string? } create type placeType3 as open { 'country_code':string?, 'country':string?, 'full_name':string?, 'bounding_box':bounding_boxType3?, 'place_type':string?, 'name':string?, 'id':string?, 'url':string? } create type quoted_statusType2 as open { 'created_at':string?, 'truncated':boolean?, 'source':string?, 'retweet_count':int64?, 'retweeted':boolean?, 'filter_level':string?, 'is_quote_status':boolean?, 'id_str':string?, 'favorite_count':int64?, 'id':int64?, 'text':string?, 'lang':string?, 'user':userType4?, 'favorited':boolean?, 'extended_entities':extended_entitiesType4?, 'possibly_sensitive':boolean?, 'entities':entitiesType4?, 'quoted_status_id':int64?, 'quoted_status_id_str':string?, 'in_reply_to_status_id_str':string?, 'in_reply_to_status_id':int64?, 'in_reply_to_user_id_str':string?, 'in_reply_to_screen_name':string?, 'in_reply_to_user_id':int64?, 'place':placeType3? } create type bounding_boxType4 as open { 'coordinates':[[[double]]]?, 'type':string? } create type placeType4 as open { 'country_code':string?, 'country':string?, 'full_name':string?, 'bounding_box':bounding_boxType4?, 'place_type':string?, 'name':string?, 'id':string?, 'url':string? } create type geoType2 as open { 'coordinates':[double]?, 'type':string? } create type coordinatesType2 as open { 'coordinates':[double]?, 'type':string? } create type Tweet as open { 'id':string, 'created_at':string?, 'source':string?, 'retweeted_status':retweeted_statusType1?, 'retweet_count':int64?, 'retweeted':boolean?, 'filter_level':string?, 'is_quote_status':boolean?, 'id_str':string?, 'favorite_count':int64?, 'text':string?, 'lang':string?, 'favorited':boolean?, 'truncated':boolean?, 'timestamp_ms':string?, 'entities':entitiesType3?, 'user':userType3?, 'extended_entities':extended_entitiesType3?, 'in_reply_to_status_id_str':string?, 'in_reply_to_status_id':int64?, 'in_reply_to_user_id_str':string?, 'in_reply_to_screen_name':string?, 'in_reply_to_user_id':int64?, 'possibly_sensitive':boolean?, 'quoted_status':quoted_statusType2?, 'quoted_status_id':int64?, 'quoted_status_id_str':string?, 'place':placeType4?, 'geo':geoType2?, 'coordinates':coordinatesType2? } create dataset Tweets (Tweet) primary key id; {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)