This is an automated email from the ASF dual-hosted git repository.
tkalkirill pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 02a5423610 IGNITE-19630 Convert default value from Column to
TableColumnDescriptor (#2136)
02a5423610 is described below
commit 02a54236100bd476a15b8f6cb0255c50a3af671a
Author: Roman Puchkovskiy <[email protected]>
AuthorDate: Fri Jun 2 14:49:17 2023 +0400
IGNITE-19630 Convert default value from Column to TableColumnDescriptor
(#2136)
---
.../table/distributed/schema/NonHistoricSchemas.java | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/NonHistoricSchemas.java
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/NonHistoricSchemas.java
index 49b622b8a1..47ebc362fd 100644
---
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/NonHistoricSchemas.java
+++
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/schema/NonHistoricSchemas.java
@@ -26,6 +26,8 @@ import
org.apache.ignite.internal.catalog.commands.DefaultValue;
import org.apache.ignite.internal.catalog.descriptors.TableColumnDescriptor;
import org.apache.ignite.internal.hlc.HybridTimestamp;
import org.apache.ignite.internal.schema.Column;
+import org.apache.ignite.internal.schema.DefaultValueProvider;
+import
org.apache.ignite.internal.schema.DefaultValueProvider.FunctionalValueProvider;
import org.apache.ignite.internal.schema.SchemaDescriptor;
import org.apache.ignite.internal.schema.SchemaManager;
import org.apache.ignite.internal.schema.SchemaRegistry;
@@ -104,7 +106,16 @@ public class NonHistoricSchemas implements Schemas {
column.name(),
column.type().spec().asColumnType(),
column.nullable(),
- DefaultValue.constant(column.defaultValue())
+ defaultValue(column.defaultValueProvider())
);
}
+
+ private static DefaultValue defaultValue(DefaultValueProvider
defaultValueProvider) {
+ if (defaultValueProvider instanceof FunctionalValueProvider) {
+ FunctionalValueProvider functionalProvider =
(FunctionalValueProvider) defaultValueProvider;
+ return DefaultValue.functionCall(functionalProvider.name());
+ } else {
+ return DefaultValue.constant(defaultValueProvider.get());
+ }
+ }
}