You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Kevin J. Price (JIRA)" <ji...@apache.org> on 2016/02/03 00:15:40 UTC

[jira] [Updated] (AVRO-1792) Cannot specify a 'null' default value

     [ https://issues.apache.org/jira/browse/AVRO-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kevin J. Price updated AVRO-1792:
---------------------------------
    Description: 
Using the new Schema.Field constructors added in 1.8.0, it is no longer possible to use the Java API to construct a schema field with a 'null' default value. That is, the following schema cannot be constructed without using the deprecated API:

{code}
{
	"type": "record",
	"name": "base",
	"fields": [{
		"name": "a",
		"type": ["null", "string"],
		"default": null
	}]
}
{code}

This is because passing a "null" value to the new API implies no default. Passing the "JsonProperties.NULL_VALUE" sentinel value doesn't work either, because when it is parsed by "JacksonUtils.toJsonNode", it turns into "null".

  was:
Using the new Schema.Field constructors added in 1.8.0, it is no longer possible to use the Java API to construct a schema field with a 'null' default value. That is, the following schema cannot be constructed without using the deprecated API:

{code}
{
	"type": "record",
	"name": "base",
	"fields": [{
		"name": "a",
		"type": ["null", "string"],
		"default": null
	}]
}
{code}

This is because passing a "null" value to the new API implies no default, and passing the "JsonProperties.NULL_VALUE" sentinel value doesn't work either, because when it is parsed by "JacksonUtils.toJsonNode", it turns into "null".


> Cannot specify a 'null' default value
> -------------------------------------
>
>                 Key: AVRO-1792
>                 URL: https://issues.apache.org/jira/browse/AVRO-1792
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.8.0
>            Reporter: Kevin J. Price
>            Priority: Minor
>
> Using the new Schema.Field constructors added in 1.8.0, it is no longer possible to use the Java API to construct a schema field with a 'null' default value. That is, the following schema cannot be constructed without using the deprecated API:
> {code}
> {
> 	"type": "record",
> 	"name": "base",
> 	"fields": [{
> 		"name": "a",
> 		"type": ["null", "string"],
> 		"default": null
> 	}]
> }
> {code}
> This is because passing a "null" value to the new API implies no default. Passing the "JsonProperties.NULL_VALUE" sentinel value doesn't work either, because when it is parsed by "JacksonUtils.toJsonNode", it turns into "null".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)