Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FLINK-9557] [formats] Parse 'integer' type as BigDecimal #6153

Closed
wants to merge 1 commit into from

Conversation

twalthr
Copy link
Contributor

@twalthr twalthr commented Jun 12, 2018

What is the purpose of the change

This PR changes the behavior of how a JSON schema is converted into type information for the integer type. Currently, we treat integer as a BigInteger. However, the Table and SQL API are not able to handle BigInteger and this cannot be changed easily because there is no equivalent SQL type but only DECIMAL. In order to avoid confusion for users and support end-to-end use cases that read and write to JSON formatted connectors, the best solution is to treat integer as BigDecimal. The serializers/deserializers still support BigInteger for specific use cases.

Brief change log

  • Change default behavior of the JSON schema converter

Verifying this change

This change is already covered by existing tests.

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
  • The S3 file system connector: no

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? not applicable

@twalthr
Copy link
Contributor Author

twalthr commented Jun 12, 2018

The change is also compliant to the JSON schema standard:

Note that JSON Schema vocabularies are free to define their own
   extended type system.  This should not be confused with the core data
   model types defined here.  As an example, "integer" is a reasonable
   type for a vocabulary to define as a value for a keyword, but the
   data model makes no distinction between integers and other numbers.

https://www.ietf.org/id/draft-handrews-json-schema-01.txt

@fhueske
Copy link
Contributor

fhueske commented Jun 26, 2018

Looks good.
+1 to merge

@asfgit asfgit closed this in 25fbcf8 Jun 26, 2018
sampathBhat pushed a commit to sampathBhat/flink that referenced this pull request Jul 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants