[
https://issues.apache.org/jira/browse/HCATALOG-17?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jakob Homan updated HCATALOG-17:
--------------------------------
Attachment: HCAT-17-2.patch
If we're optimizing for this, it's not necessary to keep a separate hash, since
{{fieldPositionMap}} is keyed off of the field name and {{containsKey}}
provides constant time results (modulo key collisions - I checked the source to
verify). Updated patch to use this.
Also added symmetrical null check in the constructor (as in the append method)
since we're accepting a {{List}} interface, which allows null values.
Also removed a check for null on {{fieldSchemas}} in the append method since
{{fieldSchemas}} is a final field and you can't successfully construct an
instance of {{HCatSchema}} with this field null.
> Shouldn't be able to add an HCatFieldSchema with the same name as existing
> --------------------------------------------------------------------------
>
> Key: HCATALOG-17
> URL: https://issues.apache.org/jira/browse/HCATALOG-17
> Project: HCatalog
> Issue Type: Bug
> Reporter: Jakob Homan
> Assignee: Jakob Homan
> Attachments: HCAT-17-2.patch, dupe_fields.patch
>
>
> (cloning from https://github.com/yahoo/howl/pull/6)
> As noted in HowlSchema.java, one should not be able to append an a field
> schema with the same name. The code says that this requires Comparable, which
> is not correct, since we're not doing ordering. Technically, this requires a
> correct equals, but since we don't want multiple fields with the same name in
> a schema (particularly since we index it via the name in the accompanying
> map), the correct check is just based on the name. This adds the check and
> throws a HowlException if this occurs.
> Unit test to verify is included.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira