[
https://issues.apache.org/jira/browse/IGNITE-14479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey Mashenkov updated IGNITE-14479:
--------------------------------------
Description:
# The Column default value is a part of schema configuration and intended to be
transferred among nodes, incl. server nodes where can be no user classes.
Thus, the default value MUST be of the natively supported type or a byte[] with
a serialized value.
# We should be able to write default to a row in raw format (as already
serialized into byte[]) during a marshaling stage.
# We should always write defaults to Row during a marshaling stage as Row has
no markers that a default value is stored for the column in the row.
was:
h3. Motivation.
Let's add default values support that is widely used in SQL.
This will allow a user to work with Table binary views more efficiently
specifying only a subset of columns in some cases.
h3. Description.
This task is related to Table binary views as well as non-binary views with
truncated classes.
# The Column default value is a part of schema configuration and intended to be
transferred among nodes, incl. server nodes where can be no user classes.
Thus, the value MUST be of the natively supported type or a byte[] with a
serialized value that can be compared as byte[].
# Tuple has no default-value-map support (like null-map), so we should always
write defaults (specified in the current version of schema) to Tuple during a
marshaling stage.
Thus, we should be able to answer if a 'null' value was set or a value was not
set to Tuple and write a default column value to Row explicitly if it was not
specified in Tuple.
Seems, a Tuple contract needs to be extended.
> Column default values serialization.
> ------------------------------------
>
> Key: IGNITE-14479
> URL: https://issues.apache.org/jira/browse/IGNITE-14479
> Project: Ignite
> Issue Type: New Feature
> Reporter: Andrey Mashenkov
> Priority: Major
> Labels: iep-54, ignite-3
> Fix For: 3.0.0-alpha3
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> # The Column default value is a part of schema configuration and intended to
> be transferred among nodes, incl. server nodes where can be no user classes.
> Thus, the default value MUST be of the natively supported type or a byte[]
> with a serialized value.
> # We should be able to write default to a row in raw format (as already
> serialized into byte[]) during a marshaling stage.
> # We should always write defaults to Row during a marshaling stage as Row has
> no markers that a default value is stored for the column in the row.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)