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];
}