Vartolomei Nicolae created AVRO-4155:
----------------------------------------
Summary: Record field names with a dot are allowed in C++
Key: AVRO-4155
URL: https://issues.apache.org/jira/browse/AVRO-4155
Project: Apache Avro
Issue Type: Bug
Components: c++
Reporter: Vartolomei Nicolae
C++ library allows producing schemas violating the avro spec which later can’t
be read. This is a foot gun which is not present in other implementations
(checked C and Java).
When adding a field to a record in C++ the field name is incorrectly parsed and
validated
[https://github.com/apache/avro/blob/82a2bc8b034de34626e2ab8bf091234122474d50/lang/c%2B%2B/impl/Schema.cc#L38]
as a namespaced type name rather than as a record field name. As a result, C++
library allows dots to be present in field names
https://github.com/apache/avro/blob/82a2bc8b034de34626e2ab8bf091234122474d50/lang/c%2B%2B/impl/Node.cc#L71.
This is not allowed by the spec and trying to read such a schema with C
implementation will fail.
C implementation does proper validation. Java implementation does too.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)