[
https://issues.apache.org/jira/browse/AVRO-3263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated AVRO-3263:
---------------------------------
Labels: pull-request-available (was: )
> Perl Encoder: schema validation of union of records warns when passing over
> an invalid schema with a long field
> ---------------------------------------------------------------------------------------------------------------
>
> Key: AVRO-3263
> URL: https://issues.apache.org/jira/browse/AVRO-3263
> Project: Apache Avro
> Issue Type: Bug
> Components: perl
> Reporter: Miguel
> Assignee: Miguel
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.11.1
>
> Original Estimate: 2h
> Time Spent: 10m
> Remaining Estimate: 1h 50m
>
> When searching for a valid schema to encode a field that is a union of
> records, the Perl encoder warns if the payload doesn't contain a _long_ field
> required in one of the records' schemas.
> Example. The following snippet:
> {code:perl}
> my $schema = Avro::Schema->parse(<<EOJ);
> [
> {
> "type": "record",
> "name": "rectangle",
> "fields": [{ "name": "width", "type": "long" }, { "name": "height",
> "type": "long"}]
> },
> {
> "type": "record",
> "name": "square",
> "fields": [{ "name": "dim", "type": "long" }]
> }
> ]
> EOJ
> my $enc = '';
> Avro::BinaryEncoder->encode(
> schema => $schema,
> data => { dim => 10 },
> emit_cb => sub {
> $enc .= ${ $_[0] }
> },
> );
> {code}
> Throws the following warnings:
> {code:java}
> Use of uninitialized value $data in pack at
> ...avro/lang/perl/lib/Avro/Schema.pm line 287.
> Use of uninitialized value $data in string eq at
> ...avro/lang/perl/lib/Avro/Schema.pm line 289.
> {code}
> The same doesn't happen if _width_ and _height_ are _int_'s.
> This behavior unnecessarily pollutes the logs and can even cause failures in
> the cases where the encoder is called from a context that doesn't allow
> warnings.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)