in src/append.jl [280:296]
function is_equivalent_schema(sch1::Tables.Schema, sch2::Tables.Schema)
(sch1.names == sch2.names) || (return false)
for (t1, t2) in zip(sch1.types, sch2.types)
tt1 = Base.nonmissingtype(t1)
tt2 = Base.nonmissingtype(t2)
if t1 == t2
continue
elseif tt1 <: AbstractVector && tt2 <: AbstractVector && eltype(tt1) == eltype(tt2)
continue
elseif isstructtype(tt1) && isstructtype(tt2)
is_equivalent_type_by_field(tt1, tt2)
else
return false
end
end
true
end