[
https://issues.apache.org/jira/browse/AVRO-3433?focusedWorklogId=737301&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-737301
]
ASF GitHub Bot logged work on AVRO-3433:
----------------------------------------
Author: ASF GitHub Bot
Created on: 06/Mar/22 22:43
Start Date: 06/Mar/22 22:43
Worklog Time Spent: 10m
Work Description: jklamer commented on a change in pull request #1580:
URL: https://github.com/apache/avro/pull/1580#discussion_r820296389
##########
File path: lang/rust/avro/src/schema.rs
##########
@@ -435,15 +474,15 @@ fn parse_json_integer_for_decimal(value:
&serde_json::Number) -> Result<DecimalM
#[derive(Default)]
struct Parser {
- input_schemas: HashMap<String, Value>,
+ input_schemas: HashMap<Name, Value>,
Review comment:
This makes me happy
##########
File path: lang/rust/avro/src/schema.rs
##########
@@ -292,6 +317,20 @@ impl Name {
}
}
+impl Hash for Name {
Review comment:
Is there a reason to not use derive to implement Hash?
##########
File path: lang/rust/avro/src/schema.rs
##########
@@ -241,17 +242,41 @@ impl Name {
}
}
+ /// Create a new `Name`.
+ /// Parses the optional `namespace` from the `name` string.
+ /// `aliases` will not be defined.
+ pub fn parse_str(name: &str) -> Name {
Review comment:
I think It would make sense to run this on the input to `Name::new`. I
think it would make the SDK more consistent. I would be worried by confusing of
`Name::new(&schema_str[..]) != Name::parse_str(&schema_str[..])`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 737301)
Time Spent: 20m (was: 10m)
> Rust: The canonical form should preserve schema references
> ----------------------------------------------------------
>
> Key: AVRO-3433
> URL: https://issues.apache.org/jira/browse/AVRO-3433
> Project: Apache Avro
> Issue Type: Bug
> Components: rust
> Affects Versions: 1.12.0
> Reporter: Martin Tzvetanov Grigorov
> Assignee: Martin Tzvetanov Grigorov
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Reported at
> [https://github.com/flavray/avro-rs/issues/182#issuecomment-1059762821]
> =================================
> There still seems to be an issue with {{can't refine}} errors, at least in
> some non-recursive cases. Take the following example:
> {code:java}
> fn main() {
> let schema = r#"
> {
> "name": "test.test",
> "type": "record",
> "fields": [
> {
> "name": "bar",
> "type": { "name": "test.foo", "type": "record", "fields": [{
> "name": "id", "type": "long" }] }
> },
> { "name": "baz", "type": "test.foo" }
> ]
> }
> "#;
> let schema = apache_avro::schema::Schema::parse_str(&schema).unwrap();
> println!("{}", serde_json::to_string(&schema).unwrap());
> } {code}
> This prints the following (the same thing happens if the {{test.foo}}
> definition is in a separate file):
> {code:java}
> $ target/release/avro-test | jq
> {
> "type": "record",
> "name": "test.test",
> "fields": [
> {
> "name": "bar",
> "type": {
> "type": "record",
> "name": "test.foo",
> "fields": [
> {
> "name": "id",
> "type": "long"
> }
> ]
> }
> },
> {
> "name": "baz",
> "type": {
> "type": "record",
> "name": "test.foo",
> "fields": [
> {
> "name": "id",
> "type": "long"
> }
> ]
> }
> }
> ]
> } {code}
> Which will cause the Java tooling to fail with the
> {{org.apache.avro.SchemaParseException: Can't redefine: test}} error above.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)