You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "John Karp (JIRA)" <ji...@apache.org> on 2014/02/20 21:19:24 UTC

[jira] [Created] (AVRO-1460) Perl API doesn't raise warning/error when encoding record with spurious fields

John Karp created AVRO-1460:
-------------------------------

             Summary: Perl API doesn't raise warning/error when encoding record with spurious fields
                 Key: AVRO-1460
                 URL: https://issues.apache.org/jira/browse/AVRO-1460
             Project: Avro
          Issue Type: Improvement
          Components: perl
            Reporter: John Karp
            Assignee: John Karp
            Priority: Minor


When serializing a record with a field that isn't specified in the schema, there should be some sort of warning or error. Otherwise, a simple typo in a field name can lead to silent loss of that field's data.

Test case that should pass but currently fails:
{noformat}
{
    my $schema = Avro::Schema->parse(<<EOJ);
          {
          "type": "record",
          "name": "test",
          "fields" : [
          {"name": "a", "type": "long"}
          ]
          }
EOJ
    my $enc = '';
    eval {
        Avro::BinaryEncoder->encode(
            schema => $schema,
            data => { a => 27, b => 'foo' },
            emit_cb => sub { $enc .= ${ $_[0] } },
        );
    };
    isa_ok $@, 'Avro::BinaryEncoder::Error';
}
{noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)