{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/135","repository_url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl","labels_url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/135/labels{/name}","comments_url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/135/comments","events_url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/135/events","html_url":"https://github.com/JuliaComputing/IndexedTables.jl/pull/135","id":306235611,"number":135,"title":"WIP: collect without inference","user":{"login":"piever","id":6333339,"avatar_url":"https://avatars3.githubusercontent.com/u/6333339?v=4","gravatar_id":"","url":"https://api.github.com/users/piever","html_url":"https://github.com/piever","followers_url":"https://api.github.com/users/piever/followers","following_url":"https://api.github.com/users/piever/following{/other_user}","gists_url":"https://api.github.com/users/piever/gists{/gist_id}","starred_url":"https://api.github.com/users/piever/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piever/subscriptions","organizations_url":"https://api.github.com/users/piever/orgs","repos_url":"https://api.github.com/users/piever/repos","events_url":"https://api.github.com/users/piever/events{/privacy}","received_events_url":"https://api.github.com/users/piever/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2018-03-18T12:22:19Z","updated_at":"2018-03-19T16:44:44Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/pulls/135","html_url":"https://github.com/JuliaComputing/IndexedTables.jl/pull/135","diff_url":"https://github.com/JuliaComputing/IndexedTables.jl/pull/135.diff","patch_url":"https://github.com/JuliaComputing/IndexedTables.jl/pull/135.patch"},"body":"Collect an iterable of `Tuples` or `NamedTuples` to a `Columns` object, without using inference. The `Columns` object is initialized with the type of the first element and progressively widened, should this type change.\r\nI assume that the iterator iterates `Tuples` (or `NamedTuples`) always of the same length and, in the `NamedTuples` case, always with the same fieldnames.\r\n\r\nThe condition to trigger widening is that at least one field of the iterate tuple is not a subtype of the `eltype` of the corresponding  column.\r\n\r\nWidening happens element-wise, meaning I perform `typejoin` on a field by field basis.\r\n\r\nTo work with `missing` in the future `typejoin` is not the correct operation, as:\r\n\r\n```julia\r\njulia> typejoin(Missing, Int)\r\nAny\r\n```\r\n\r\nbut `Base.promote_typejoin` should be sufficient to fix this.\r\n\r\nThe overall strategy is more or less a copy-paste of Base Julia strategy to collect generators of unknown type."},"comment":{"url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/comments/374281195","html_url":"https://github.com/JuliaComputing/IndexedTables.jl/pull/135#issuecomment-374281195","issue_url":"https://api.github.com/repos/JuliaComputing/IndexedTables.jl/issues/135","id":374281195,"user":{"login":"piever","id":6333339,"avatar_url":"https://avatars3.githubusercontent.com/u/6333339?v=4","gravatar_id":"","url":"https://api.github.com/users/piever","html_url":"https://github.com/piever","followers_url":"https://api.github.com/users/piever/followers","following_url":"https://api.github.com/users/piever/following{/other_user}","gists_url":"https://api.github.com/users/piever/gists{/gist_id}","starred_url":"https://api.github.com/users/piever/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piever/subscriptions","organizations_url":"https://api.github.com/users/piever/orgs","repos_url":"https://api.github.com/users/piever/repos","events_url":"https://api.github.com/users/piever/events{/privacy}","received_events_url":"https://api.github.com/users/piever/received_events","type":"User","site_admin":false},"created_at":"2018-03-19T16:44:44Z","updated_at":"2018-03-19T16:44:44Z","author_association":"COLLABORATOR","body":"I saw that but I think it's better than returning an `Array{Real}`, especially if there are precedents like `vcat`. The use case of mixing up large `Int64` and `Float64` while wanting to preserve the `Int64` exactly (where they are already at a size that risks overflow) seems limited."}}
{"actor":{"display_login":"piever"}}