Examples of AISValidationFailure


Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    static FileDescriptorProto validateAndGenerate(HasStorage object,
                                                   ProtobufRowFormat.Type formatType,
                                                   FileDescriptorProto fileProto,
                                                   AISValidationOutput output) {
        if (!(object instanceof Group)) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is not a Group and cannot use Protocol Buffers")));
            return null;
        }
        Group group = (Group)object;
        if (formatType == ProtobufRowFormat.Type.SINGLE_TABLE) {
            if (!group.getRoot().getChildJoins().isEmpty()) {
                output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "has more than one table")));
                return null;
            }
        }
        int currentVersion = sumTableVersions(group.getRoot());
        if (fileProto != null) {
            int storedVersion = fileProto.getOptions()
                .getExtension(CustomOptions.GroupOptions.fdbsql).getVersion();
            if (storedVersion == currentVersion) {
                return fileProto;
            }
        }
        FileDescriptorSet set = null;
        if (fileProto != null) {
            FileDescriptorSet.Builder builder = FileDescriptorSet.newBuilder();
            builder.addFile(fileProto);
            set = builder.build();
        }
        AISToProtobuf ais2p = new AISToProtobuf(formatType, set);
        ais2p.addGroup(group);
        set = ais2p.build();
        fileProto = set.getFile(0); // Only added one group.
        // Make sure it will build before committing to this format.
        try {
            FileDescriptor.buildFrom(fileProto, DEPENDENCIES);
        }
        catch (DescriptorValidationException ex) {
            output.reportFailure(new AISValidationFailure(new ProtobufBuildException(ex)));
        }
        return fileProto;
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    }

    @Override
    public void validate(AISValidationOutput output) {
        if (prefixBytes == null) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is missing prefix bytes")));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    @Override
    public void validate(AISValidationOutput output) {
        super.validate(output);
        if (!(object instanceof Group)) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is not a Group")));
            return;
        }
        List<String> illegal = TupleRowDataConverter.checkTypes((Group)object, TupleUsage.KEY_AND_ROW);
        if (!illegal.isEmpty()) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "has some types that cannot be stored in a Tuple: " + illegal)));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

        if (usage == null) {
            return;
        }
        if (usage == TupleUsage.KEY_AND_ROW) {
            if (!(object instanceof Group)) {
                output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is not a Group and has no row")));
                return;
            }
        }
        List<String> illegal;
        if (object instanceof Group) {
            illegal = TupleRowDataConverter.checkTypes((Group)object, usage);
        }
        else if (object instanceof Index) {
            illegal = TupleRowDataConverter.checkTypes((Index)object, usage);
        }
        else if (object instanceof Sequence) {
            // No types to check
            illegal = Collections.emptyList();
        }
        else {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is not a Group or Index and cannot use Tuples")));
            return;
        }
        if (!illegal.isEmpty()) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "has some types that cannot be stored in a Tuple: " + illegal)));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    }

    @Override
    public void validate(AISValidationOutput output) {
        if (treeName == null) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is missing tree name")));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    }

    @Override
    public void validate(AISValidationOutput output) {
        if (storageKey == null) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is missing test storage_key")));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

    @Override
    public void validate(AISValidationOutput output) {
        super.validate(output);
        if (name == null) {
            output.reportFailure(new AISValidationFailure(new StorageDescriptionInvalidException(object, "is missing test name")));
        }
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

            }
        }
        AISValidationResults vResults = builder.akibanInformationSchema().validate(AISValidations.BASIC_VALIDATIONS);
       
        Assert.assertEquals(1, vResults.failures().size());
        AISValidationFailure fail = vResults.failures().iterator().next();
        Assert.assertEquals(ErrorCode.JOIN_TO_MULTIPLE_PARENTS, fail.errorCode());
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

        table.getColumns();

        AISValidationResults vResults = builder.akibanInformationSchema().validate(AISValidations.BASIC_VALIDATIONS);
       
        Assert.assertEquals(1, vResults.failures().size());
        AISValidationFailure fail = vResults.failures().iterator().next();
        Assert.assertEquals(ErrorCode.JOIN_TO_MULTIPLE_PARENTS, fail.errorCode());
    }
View Full Code Here

Examples of com.foundationdb.ais.model.validation.AISValidationFailure

        AISValidationResults vResults = builder.akibanInformationSchema().validate(AISValidations.BASIC_VALIDATIONS);
       
        Assert.assertEquals(4, vResults.failures().size());
        Iterator<AISValidationFailure> fails = vResults.failures().iterator();
        // Failure 1: join to unique key
        AISValidationFailure fail = fails.next();
        Assert.assertEquals(ErrorCode.JOIN_TO_MULTIPLE_PARENTS, fail.errorCode());
        // Failure 2: join to non-key
        fail = fails.next();
        Assert.assertEquals(ErrorCode.JOIN_TO_MULTIPLE_PARENTS, fail.errorCode());
        // Failure 3: 3 joins to parent
        fail = fails.next();
        Assert.assertEquals(ErrorCode.JOIN_TO_WRONG_COLUMNS, fail.errorCode());
        Assert.assertEquals("Table `s`.`child` join reference part `nk` does not match `s`.`parent` primary key part `pk`", fail.message());
        // Failure 4: 3 joins to parent
        fail = fails.next();
        Assert.assertEquals(ErrorCode.JOIN_TO_WRONG_COLUMNS, fail.errorCode());
        Assert.assertEquals("Table `s`.`child` join reference part `uk` does not match `s`.`parent` primary key part `pk`", fail.message());
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.