Package com.foundationdb.ais.model

Examples of com.foundationdb.ais.model.Sequence


                                        String defaultSchemaName,
                                        DropSequenceNode dropSequence,
                                        QueryContext context) {
        final TableName sequenceName = DDLHelper.convertName(defaultSchemaName, dropSequence.getObjectName());

        Sequence sequence = ddlFunctions.getAIS(session).getSequence(sequenceName);
        if((sequence == null) &&
           skipOrThrow(context, dropSequence.getExistenceCheck(), sequence, new NoSuchSequenceException(sequenceName))) {
            return;
        }
View Full Code Here


                        renamedColumns.put(change.getOldName(), change.getNewName());
                    }
                    Column oldColumn = oldTable.getColumn(change.getOldName());
                    Column newColumn = newTable.getColumn(change.getNewName());
                    if((oldColumn != null)) {
                        Sequence oldSeq = oldColumn.getIdentityGenerator();
                        Sequence newSeq = newColumn.getIdentityGenerator();
                        if((oldSeq == null) && (newSeq != null)) {
                            addedIdentity.add(newColumn.getName());
                        } else if((oldSeq != null) && (newSeq == null)) {
                            droppedSequences.add(oldSeq.getSequenceName());
                        }
                        // else both not null and not equal, not yet supported
                    }
                } break;
                case DROP: {
                    Column oldColumn = oldTable.getColumn(change.getOldName());
                    if((oldColumn != null) && (oldColumn.getIdentityGenerator() != null)) {
                        droppedSequences.add(oldColumn.getIdentityGenerator().getSequenceName());
                    }
                } break;
                case ADD: {
                    Column newColumn = newTable.getColumn(change.getNewName());
                    Sequence newSeq = newColumn.getIdentityGenerator();
                    if(newSeq != null) {
                        addedIdentity.add(newColumn.getName());
                    }
                } break;
            }
View Full Code Here

            parts[0] = context.getCurrentSchema();
        }

        TableName sequenceName = new TableName(parts[0], parts[1]);
        StoreAdapter store = context.getQueryContext().getStore();
        Sequence sequence = store.getSequence(sequenceName);
        long value = nextValue ?
            store.sequenceNextValue(sequence) :
            store.sequenceCurrentValue(sequence);

        logger.debug("Sequence loading : {} -> {}", sequenceName, value);
View Full Code Here

        }
        Column column = table.getColumn(parts[2]);
        if(column == null) {
            throw new NoSuchColumnException(String.format("%s.%s.%s", parts[0], parts[1], parts[2]));
        }
        Sequence seq = column.getIdentityGenerator();
        if(seq == null) {
            output.putNull();
        } else {
            output.putString(seq.getSequenceName().toStringEscaped(), null);
        }
    }
View Full Code Here

    public static TPreparedExpression generateDefaultExpression(Column column,
                                                                TPreparedExpression expression,
                                                                TypesRegistryService typesService,
                                                                TypesTranslator typesTranslator,
                                                                QueryContext queryContext) {
        Sequence sequence = column.getIdentityGenerator();
        if ((sequence != null) && Boolean.FALSE.equals(column.getDefaultIdentity())) {
            // FALSE => ALWAYS, override user value even if present
            expression = new TSequenceNextValueExpression(column.getType(), sequence);
        }
        else if (expression == null) {
View Full Code Here

    }

    private void expectSequences (String schemaName, String... sequenceNames) {
        final AkibanInformationSchema ais = ddl().getAIS(session());
        for (String name : sequenceNames) {
            final Sequence sequence = ais.getSequence(new TableName(schemaName, name));
            assertNotNull (schemaName + "." + name + " doesn't exist", sequence);
        }
       
    }
View Full Code Here

       
    }
    private void expectNotSequence (String schemaName, String... sequenceNames) {
        final AkibanInformationSchema ais = ddl().getAIS(session());
        for (String name : sequenceNames) {
            final Sequence sequence = ais.getSequence(new TableName(schemaName, name));
            assertNull (schemaName + "." + name + " still exists", sequence);
        }
    }
View Full Code Here

    @Test
    public void changeDataTypeDropsSequence() {
        final int id = createTable(SCHEMA, C_TABLE,
                                   "id INT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY",
                                   "name VARCHAR(255) NOT NULL");
        Sequence seq = getTable(id).getColumn("id").getIdentityGenerator();
        assertNotNull("id column has sequence", seq);
        writeRows(
                row(id, 1, "1"),
                row(id, 2, "2"),
                row(id, 3, "3")
        );
        runAlter(ChangeLevel.GROUP, "ALTER TABLE c ALTER COLUMN id SET DATA TYPE varchar(10)");
        assertNull("sequence was dropped", ddl().getAIS(session()).getSequence(seq.getSequenceName()));
        assertNull("id column has no sequence", getTable(id).getColumn("id").getIdentityGenerator());
        expectRows(
                id,
                row(id, "1", "1"),
                row(id, "2", "2"),
View Full Code Here

    @Test
    public void dropColumnDropsSequence() {
        final int id = createTable(SCHEMA, C_TABLE,
                                   "id INT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY",
                                   "name VARCHAR(255) NOT NULL");
        Sequence seq = getTable(id).getColumn("id").getIdentityGenerator();
        assertNotNull("id column has sequence", seq);
        writeRows(
                row(id, 1, "1"),
                row(id, 2, "2"),
                row(id, 3, "3")
        );
        runAlter(ChangeLevel.GROUP, "ALTER TABLE c DROP COLUMN id");
        assertNull("sequence was dropped", ddl().getAIS(session()).getSequence(seq.getSequenceName()));
        assertNull("id column does not exist", getTable(id).getColumn("id"));
        expectRowsSkipInternal(
                id,
                row(id, "1"),
                row(id, "2"),
View Full Code Here

    public void alterColumnDefaultIdentity() {
        final int id = createTable(SCHEMA, C_TABLE,
                                   "id INT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY");
        Column column = getTable(id).getColumn("id");
        assertEquals("identity is default", true, column.getDefaultIdentity());
        Sequence seq = column.getIdentityGenerator();
        assertNotNull("id column has sequence", seq);

        runAlter(ChangeLevel.METADATA, "ALTER TABLE c ALTER COLUMN id DROP DEFAULT");
        assertNull("Old seq was dropped", ais().getSequence(seq.getSequenceName()));

        runAlter(ChangeLevel.METADATA, "ALTER TABLE c ALTER COLUMN id SET GENERATED ALWAYS AS IDENTITY");
        Column newColumn = getTable(id).getColumn("id");
        assertEquals("altered is always", false, newColumn.getDefaultIdentity());
        seq = newColumn.getIdentityGenerator();
        assertEquals("Sequence name suffix",
                     true,
                     seq.getSequenceName().getTableName().endsWith("_seq"));
    }
View Full Code Here

TOP

Related Classes of com.foundationdb.ais.model.Sequence

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.