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)

Reply via email to