You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Ryan Blue (JIRA)" <ji...@apache.org> on 2015/11/04 18:13:28 UTC

[jira] [Commented] (PARQUET-390) GroupType.union(Type toMerge, boolean strict) does not honor strict parameter

    [ https://issues.apache.org/jira/browse/PARQUET-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14989939#comment-14989939 ] 

Ryan Blue commented on PARQUET-390:
-----------------------------------

Thanks for the bug report, Michael. I think you're right about this.

Could you share with us what you're using this for? This was originally used for building an overall schema for the files in a job, but it isn't necessary to do that and we mostly removed the need to in PARQUET-139. I'd like to see what your use case for it is. Thanks!

> GroupType.union(Type toMerge, boolean strict) does not honor strict parameter
> -----------------------------------------------------------------------------
>
>                 Key: PARQUET-390
>                 URL: https://issues.apache.org/jira/browse/PARQUET-390
>             Project: Parquet
>          Issue Type: Bug
>          Components: parquet-mr
>            Reporter: Michael Allman
>              Labels: parquet
>
> This is the code as it currently stands in master:
> {code}
> @Override
> protected Type union(Type toMerge, boolean strict) {
>   if (toMerge.isPrimitive()) {
>     throw new IncompatibleSchemaModificationException("can not merge primitive type " + toMerge + " into group type " + this);
>   }
>   return new GroupType(toMerge.getRepetition(), getName(), mergeFields(toMerge.asGroupType()));
> }
> {code}
> Note the call to {{mergeFields}} omits the {{strict}} parameter. I believe the code should be:
> {code}
> @Override
> protected Type union(Type toMerge, boolean strict) {
>   if (toMerge.isPrimitive()) {
>     throw new IncompatibleSchemaModificationException("can not merge primitive type " + toMerge + " into group type " + this);
>   }
>   return new GroupType(toMerge.getRepetition(), getName(), mergeFields(toMerge.asGroupType(), strict));
> }
> {code}
> Note the call to {{mergeFields}} includes the {{strict}} parameter.
> I would work on this myself, but I'm having considerable trouble working with the codebase (see e.g. http://stackoverflow.com/questions/31229445/build-failure-apache-parquet-mr-source-mvn-install-failure). Given the (assumed) simplicity of the fix, can a seasoned Parquet contributor take this up? Cheers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)