You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2022/08/29 14:48:05 UTC

[ignite-3] 02/04: Drop modification builders.

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

amashenkov pushed a commit to branch ignite-17580
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 7be2c70b8bb68931824dc78b37b3e29d3d90f83e
Author: amashenkov <an...@gmail.com>
AuthorDate: Mon Aug 29 16:52:51 2022 +0300

    Drop modification builders.
---
 .../schema/modification/AlterColumnBuilder.java    |  77 ---------------
 .../modification/TableModificationBuilder.java     |  83 ----------------
 .../ignite/schema/modification/package-info.java   |  22 -----
 .../modification/AlterColumnBuilderImpl.java       |  75 ---------------
 .../modification/TableModificationBuilderImpl.java | 106 ---------------------
 5 files changed, 363 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java
deleted file mode 100644
index d2dbf8606a..0000000000
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/AlterColumnBuilder.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.modification;
-
-import org.apache.ignite.schema.definition.ColumnType;
-
-/**
- * Alter column builder.
- *
- * <p>NOTE: Only safe actions that can be applied automatically on-fly are allowed.
- */
-public interface AlterColumnBuilder {
-    /**
-     * Renames a column.
-     *
-     * @param newName New column name.
-     * @return {@code this} for chaining.
-     */
-    AlterColumnBuilder withNewName(String newName);
-
-    /**
-     * Convert column to a new type.
-     *
-     * <p>Note: New type must be compatible with old.
-     *
-     * @param newType New column type.
-     * @return {@code this} for chaining.
-     */
-    AlterColumnBuilder convertTo(ColumnType newType);
-
-    /**
-     * Sets new column default value.
-     *
-     * @param defaultValue Default value.
-     * @return {@code this} for chaining.
-     */
-    AlterColumnBuilder withNewDefault(Object defaultValue);
-
-    /**
-     * Set nullability attribute.
-     *
-     * @return {@code this} for chaining.
-     */
-    AlterColumnBuilder asNullable();
-
-    /**
-     * Mark column as non-nullable.
-     *
-     * <p>Note: Replacement param is mandatory, all previously stored 'nulls' will be treated as replacement value on read.
-     *
-     * @param replacement Non-null value, that 'null' will be converted to.
-     * @return {@code this} for chaining.
-     */
-    AlterColumnBuilder asNonNullable(Object replacement);
-
-    /**
-     * Builds alter column descriptor and pass it to parent table modification builder.
-     *
-     * @return Parent builder.
-     */
-    TableModificationBuilder done();
-}
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java
deleted file mode 100644
index af4508544f..0000000000
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/TableModificationBuilder.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.modification;
-
-import org.apache.ignite.schema.definition.ColumnDefinition;
-import org.apache.ignite.schema.definition.index.IndexDefinition;
-
-/**
- * Collect schema modification commands and pass them to manager to create a schema upgrade script.
- */
-public interface TableModificationBuilder {
-    /**
-     * Adds new value column.
-     *
-     * @param column Column.
-     * @return {@code this} for chaining.
-     */
-    TableModificationBuilder addColumn(ColumnDefinition column);
-
-    /**
-     * Adds new non-affinity key column.
-     *
-     * @param column Column.
-     * @return {@code this} for chaining.
-     */
-    TableModificationBuilder addKeyColumn(ColumnDefinition column);
-
-    /**
-     * Creates alter column builder..
-     *
-     * @param columnName Column name.
-     * @return Alter column builder.
-     */
-    AlterColumnBuilder alterColumn(String columnName);
-
-    /**
-     * Drops value column.
-     *
-     * <p>Note: Key column drop is not allowed.
-     *
-     * @param columnName Column.
-     * @return {@code this} for chaining.
-     */
-    TableModificationBuilder dropColumn(String columnName);
-
-    /**
-     * Adds new table index.
-     *
-     * @param indexDefinition Table index.
-     * @return {@code this} for chaining.
-     */
-    TableModificationBuilder addIndex(IndexDefinition indexDefinition);
-
-    /**
-     * Drops table index.
-     *
-     * <p>Note: PK can't be dropped.
-     *
-     * @param indexName Index name.
-     * @return {@code this} for chaining.
-     */
-    TableModificationBuilder dropIndex(String indexName);
-
-    /**
-     * Apply changes.
-     */
-    void apply();
-}
diff --git a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java b/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java
deleted file mode 100644
index 1b154cad5e..0000000000
--- a/modules/api/src/main/java/org/apache/ignite/schema/modification/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Table schema manipulation API.
- */
-
-package org.apache.ignite.schema.modification;
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java
deleted file mode 100644
index 0b1a12d25d..0000000000
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/AlterColumnBuilderImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.schema.modification;
-
-import org.apache.ignite.schema.definition.ColumnType;
-import org.apache.ignite.schema.modification.AlterColumnBuilder;
-import org.apache.ignite.schema.modification.TableModificationBuilder;
-
-/**
- * Alter column builder.
- */
-class AlterColumnBuilderImpl implements AlterColumnBuilder {
-    /** Table modification builder. */
-    private final TableModificationBuilderImpl tableBuilder;
-
-    /**
-     * Constructor.
-     *
-     * @param tableBuilder Table modification builder.
-     */
-    AlterColumnBuilderImpl(TableModificationBuilderImpl tableBuilder) {
-        this.tableBuilder = tableBuilder;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder withNewName(String newName) {
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder convertTo(ColumnType newType) {
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder withNewDefault(Object defaultValue) {
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder asNullable() {
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder asNonNullable(Object replacement) {
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder done() {
-        return tableBuilder;
-    }
-}
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java
deleted file mode 100644
index 563399fc02..0000000000
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/modification/TableModificationBuilderImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.schema.modification;
-
-import org.apache.ignite.internal.schema.definition.TableDefinitionImpl;
-import org.apache.ignite.schema.definition.ColumnDefinition;
-import org.apache.ignite.schema.definition.PrimaryKeyDefinition;
-import org.apache.ignite.schema.definition.index.IndexDefinition;
-import org.apache.ignite.schema.modification.AlterColumnBuilder;
-import org.apache.ignite.schema.modification.TableModificationBuilder;
-
-/**
- * Table modification builder.
- */
-public class TableModificationBuilderImpl implements TableModificationBuilder {
-    /** Table. */
-    private final TableDefinitionImpl table;
-
-    /**
-     * Constructor.
-     *
-     * @param table Table.
-     */
-    public TableModificationBuilderImpl(TableDefinitionImpl table) {
-        this.table = table;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder addColumn(ColumnDefinition column) {
-        if (table.hasColumn(column.name())) {
-            throw new IllegalArgumentException("Duplicate column: name='" + column.name() + '\'');
-        }
-
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder addKeyColumn(ColumnDefinition column) {
-        if (table.hasColumn(column.name())) {
-            throw new IllegalArgumentException("Duplicate column: name=" + column.name() + '\'');
-        }
-
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public AlterColumnBuilder alterColumn(String columnName) {
-        return new AlterColumnBuilderImpl(this);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder dropColumn(String columnName) {
-        if (table.hasKeyColumn(columnName)) {
-            throw new IllegalArgumentException("Can't drop key column: name=" + columnName);
-        }
-
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder addIndex(IndexDefinition indexDefinition) {
-        assert !PrimaryKeyDefinition.PRIMARY_KEY_NAME.equals(indexDefinition.name());
-
-        if (table.indices().stream().anyMatch(i -> i.name().equals(indexDefinition.name()))) {
-            throw new IllegalArgumentException("Index already exists: name=" + indexDefinition.name() + '\'');
-        }
-
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public TableModificationBuilder dropIndex(String indexName) {
-        if (PrimaryKeyDefinition.PRIMARY_KEY_NAME.equals(indexName)) {
-            throw new IllegalArgumentException("Can't drop primary key index: name=" + indexName);
-        }
-
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void apply() {
-
-    }
-}