You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sk...@apache.org on 2021/04/30 11:27:42 UTC

[ignite-3] branch main updated: IGNITE-14672 Added SQL related schemas for configuration. Fixes #117

This is an automated email from the ASF dual-hosted git repository.

sk0x50 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 4d5b16e  IGNITE-14672 Added SQL related schemas for configuration. Fixes #117
4d5b16e is described below

commit 4d5b16e89dfd62f9b5355018b8eea06a7f6d7847
Author: Alexander Belyak <ab...@gridgain.com>
AuthorDate: Fri Apr 30 14:27:07 2021 +0300

    IGNITE-14672 Added SQL related schemas for configuration. Fixes #117
    
    Signed-off-by: Slava Koptilin <sl...@gmail.com>
---
 ...nSchema.java => ColumnConfigurationSchema.java} | 30 ++++++++--------
 ...ema.java => ColumnTypeConfigurationSchema.java} | 29 +++++++---------
 ...ma.java => IndexColumnConfigurationSchema.java} | 25 ++++----------
 .../schemas/table/TableConfigurationSchema.java    |  9 +++++
 ...ema.java => TableIndexConfigurationSchema.java} | 40 ++++++++++++++--------
 5 files changed, 67 insertions(+), 66 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnConfigurationSchema.java
similarity index 72%
copy from modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
copy to modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnConfigurationSchema.java
index 835dc85..69fc03a 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnConfigurationSchema.java
@@ -17,30 +17,28 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
 import org.apache.ignite.configuration.annotation.Config;
+import org.apache.ignite.configuration.annotation.ConfigValue;
 import org.apache.ignite.configuration.annotation.Value;
 import org.apache.ignite.configuration.validation.Immutable;
 
-/**
- * Table configuartion schema class.
- */
+/** Configuration for single column in SQL table. */
 @Config
-public class TableConfigurationSchema {
-    /** Table name. */
+public class ColumnConfigurationSchema {
+    /** Column name. */
     @Value
     @Immutable
-    public String name;
+    String name;
 
-    /** Table partitions. */
-    @Min(0)
-    @Max(65000)
-    @Value(hasDefault = true)
-    public int partitions = 1024;
+    /** Column type. */
+    @ConfigValue
+    ColumnTypeConfigurationSchema type;
+
+    /** Nullable flag. */
+    @Value
+    boolean nullable;
 
-    /** Count of table partition replicas. */
-    @Min(1)
+    /** Default value. */
     @Value(hasDefault = true)
-    public int replicas = 0;
+    String defaultValue = "";
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeConfigurationSchema.java
similarity index 69%
copy from modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
copy to modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeConfigurationSchema.java
index 835dc85..ccb02ce 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/ColumnTypeConfigurationSchema.java
@@ -17,30 +17,25 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
 import org.apache.ignite.configuration.annotation.Config;
 import org.apache.ignite.configuration.annotation.Value;
-import org.apache.ignite.configuration.validation.Immutable;
 
-/**
- * Table configuartion schema class.
- */
+/** Configuration for SQL table column type. */
 @Config
-public class TableConfigurationSchema {
-    /** Table name. */
+public class ColumnTypeConfigurationSchema {
+    /** Type name. */
     @Value
-    @Immutable
-    public String name;
+    String type;
+
+    /** Length. */
+    @Value(hasDefault = true)
+    int length = 0;
 
-    /** Table partitions. */
-    @Min(0)
-    @Max(65000)
+    /** Precision. */
     @Value(hasDefault = true)
-    public int partitions = 1024;
+    int precision = 0;
 
-    /** Count of table partition replicas. */
-    @Min(1)
+    /** Scale. */
     @Value(hasDefault = true)
-    public int replicas = 0;
+    int scale = 0;
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/IndexColumnConfigurationSchema.java
similarity index 70%
copy from modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
copy to modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/IndexColumnConfigurationSchema.java
index 835dc85..e915040 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/IndexColumnConfigurationSchema.java
@@ -17,30 +17,19 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
 import org.apache.ignite.configuration.annotation.Config;
 import org.apache.ignite.configuration.annotation.Value;
 import org.apache.ignite.configuration.validation.Immutable;
 
-/**
- * Table configuartion schema class.
- */
+/** Configuration for single column in index. */
 @Config
-public class TableConfigurationSchema {
-    /** Table name. */
+public class IndexColumnConfigurationSchema {
+    /** Column name. */
     @Value
     @Immutable
-    public String name;
-
-    /** Table partitions. */
-    @Min(0)
-    @Max(65000)
-    @Value(hasDefault = true)
-    public int partitions = 1024;
+    String name;
 
-    /** Count of table partition replicas. */
-    @Min(1)
-    @Value(hasDefault = true)
-    public int replicas = 0;
+    /** Ascending flag. */
+    @Value
+    boolean asc;
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
index 835dc85..6e5ae3e 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
@@ -20,6 +20,7 @@ package org.apache.ignite.configuration.schemas.table;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import org.apache.ignite.configuration.annotation.Config;
+import org.apache.ignite.configuration.annotation.NamedConfigValue;
 import org.apache.ignite.configuration.annotation.Value;
 import org.apache.ignite.configuration.validation.Immutable;
 
@@ -43,4 +44,12 @@ public class TableConfigurationSchema {
     @Min(1)
     @Value(hasDefault = true)
     public int replicas = 0;
+
+    /** Columns configuration. */
+    @NamedConfigValue
+    ColumnConfigurationSchema columns;
+
+    /** Indices configuration. */
+    @NamedConfigValue
+    TableIndexConfigurationSchema indices;
 }
diff --git a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableIndexConfigurationSchema.java
similarity index 60%
copy from modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
copy to modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableIndexConfigurationSchema.java
index 835dc85..7d90331 100644
--- a/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableConfigurationSchema.java
+++ b/modules/api/src/main/java/org/apache/ignite/configuration/schemas/table/TableIndexConfigurationSchema.java
@@ -17,30 +17,40 @@
 
 package org.apache.ignite.configuration.schemas.table;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
 import org.apache.ignite.configuration.annotation.Config;
+import org.apache.ignite.configuration.annotation.NamedConfigValue;
 import org.apache.ignite.configuration.annotation.Value;
 import org.apache.ignite.configuration.validation.Immutable;
 
-/**
- * Table configuartion schema class.
- */
+/** SQL index configuration. */
 @Config
-public class TableConfigurationSchema {
-    /** Table name. */
+public class TableIndexConfigurationSchema {
+    /** Index name. */
     @Value
     @Immutable
-    public String name;
+    String name;
+
+    /** Index type name. */
+    @Value
+    String type;
+
+    /** Has default value flag. */
+    @Value(hasDefault = true)
+    boolean uniq = false;
+
+    /** Columns configuration for sorted indexes. */
+    @NamedConfigValue
+    IndexColumnConfigurationSchema columns;
+
+    /** Columns names for hash indexes. */
+    @Value(hasDefault = true)
+    String[] colNames = new String[0];
 
-    /** Table partitions. */
-    @Min(0)
-    @Max(65000)
+    /** Expression for PartialIndex: PARTIAL indexes. */
     @Value(hasDefault = true)
-    public int partitions = 1024;
+    String expr = "";
 
-    /** Count of table partition replicas. */
-    @Min(1)
+    /** Affinity column names for PrimaryIndex. */
     @Value(hasDefault = true)
-    public int replicas = 0;
+    String[] affinityColumns = new String[0];
 }