You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2021/04/15 14:45:00 UTC

[jira] [Created] (IGNITE-14556) Add Tuple validation.

Andrey Mashenkov created IGNITE-14556:
-----------------------------------------

             Summary: Add Tuple validation.
                 Key: IGNITE-14556
                 URL: https://issues.apache.org/jira/browse/IGNITE-14556
             Project: Ignite
          Issue Type: Improvement
            Reporter: Andrey Mashenkov


At a point of Table public method call by a user, we need to validate user input.

We can add this logic to check if value fields match the current schema version (no new fields).
 * For LIVE-Schema. If Tuple has one or more additional columns, then we should try to register a new schema first, then proceed with the user operation.
 * For STRICT-Schema.  If Tuple has one or more additional columns, then we should fail the user operation.
 * For KeyValueView, we should validate key Tuple as well, and fail if there are unknown columns. Because a key column span is immutable. The only exception may be if a user creates a schemaless table, then a schema of the 1-st version should be registered instantly.

Assumed, any column type mismatch or missed Non-Nullable columns will be caught and processed by RowAssembler.

 

It is possible to add the validation into a TupleBuilder and then just check the Tuple instance class (should be a builder). 
For any Tuple of unknown type or if a schema was changed concurrently (TupleBuilder validated input against outdated schema version), then fallback to default logic and re-validate input against the latest schema.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)