public void collectInvalidObjects(Collection<LanguageObject> invalidObjects) { for (ValidatorFailure failure : getItems()) { if(failure.getInvalidObjectCount() > 0) { invalidObjects.addAll(failure.getInvalidObjects()); } } }
public void collectInvalidObjects(Collection<LanguageObject> invalidObjects) { for (ValidatorFailure failure : getItems()) { if(failure.getInvalidObjectCount() > 0) { invalidObjects.addAll(failure.getInvalidObjects()); } } }
public void collectInvalidObjects(Collection<LanguageObject> invalidObjects) { for (ValidatorFailure failure : getItems()) { if(failure.getInvalidObjectCount() > 0) { invalidObjects.addAll(failure.getInvalidObjects()); } } }
@Override protected boolean processMetadataValidatorReport(VDBKey key, ValidatorReport report) { if (throwMetadataErrors) { super.processMetadataValidatorReport(key, report); //remove ValidatorFailure firstFailure = report.getItems().iterator().next(); throw new VDBValidationError(RuntimePlugin.Event.TEIID40095, firstFailure.getMessage()); } return true; } };
public static void validateWithVisitor( AbstractValidationVisitor visitor, QueryMetadataInterface metadata, Command command) throws QueryValidatorException, TeiidComponentException { // Validate with visitor ValidatorReport report = Validator.validate(command, metadata, visitor); if (report.hasItems()) { ValidatorFailure firstFailure = report.getItems().iterator().next(); throw new QueryValidatorException(QueryPlugin.Event.TEIID30492, firstFailure.getMessage()); } }
public static void validateWithVisitor( AbstractValidationVisitor visitor, QueryMetadataInterface metadata, Command command) throws QueryValidatorException, TeiidComponentException { // Validate with visitor ValidatorReport report = Validator.validate(command, metadata, visitor); if (report.hasItems()) { ValidatorFailure firstFailure = report.getItems().iterator().next(); throw new QueryValidatorException(QueryPlugin.Event.TEIID30492, firstFailure.getMessage()); } }
public static void validateWithVisitor( AbstractValidationVisitor visitor, QueryMetadataInterface metadata, Command command) throws QueryValidatorException, TeiidComponentException { // Validate with visitor ValidatorReport report = Validator.validate(command, metadata, visitor); if (report.hasItems()) { ValidatorFailure firstFailure = report.getItems().iterator().next(); throw new QueryValidatorException(QueryPlugin.Event.TEIID30492, firstFailure.getMessage()); } }
@Test public void testDynamicIntoDeclaredTemp() throws Exception { StringBuffer procedure = new StringBuffer("CREATE VIRTUAL PROCEDURE ") //$NON-NLS-1$ .append("BEGIN\n") //$NON-NLS-1$ .append("CREATE LOCAL TEMPORARY TABLE x (column1 string);") //$NON-NLS-1$ .append("execute string 'SELECT e1 FROM pm1.g2' as e1 string INTO x;\n") //$NON-NLS-1$ .append("select cast(column1 as integer) from x;\n") //$NON-NLS-1$ .append("END\n"); //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); // Validate ValidatorReport report = helpValidateInModeler("pm1.vsp36", procedure.toString(), metadata); //$NON-NLS-1$ assertEquals(report.toString(), 0, report.getItems().size()); }
private void processReport(ModelMetaData model, AbstractMetadataRecord record, ValidatorReport report, ValidatorReport resolverReport) { if(resolverReport != null && resolverReport.hasItems()) { for (ValidatorFailure v:resolverReport.getItems()) { log(report, model, v.getStatus() == ValidatorFailure.Status.ERROR?Severity.ERROR:Severity.WARNING, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31080, record.getFullName(), v.getMessage())); } } }
private void processReport(ModelMetaData model, AbstractMetadataRecord record, ValidatorReport report, ValidatorReport resolverReport) { if(resolverReport != null && resolverReport.hasItems()) { for (ValidatorFailure v:resolverReport.getItems()) { log(report, model, v.getStatus() == ValidatorFailure.Status.ERROR?Severity.ERROR:Severity.WARNING, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31080, record.getFullName(), v.getMessage())); } } }
private void processReport(ModelMetaData model, AbstractMetadataRecord record, ValidatorReport report, ValidatorReport resolverReport) { if(resolverReport != null && resolverReport.hasItems()) { for (ValidatorFailure v:resolverReport.getItems()) { log(report, model, v.getStatus() == ValidatorFailure.Status.ERROR?Severity.ERROR:Severity.WARNING, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31080, record.getFullName(), v.getMessage())); } } }
@Test public void testValidateAssignmentWithFunctionOnParameter_InModeler() throws Exception{ // SQL is same as pm1.vsp36() in example1 String sql = "CREATE VIRTUAL PROCEDURE BEGIN DECLARE integer x; x = pm1.vsp36.param1 * 2; SELECT x; END"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); // Validate ValidatorReport report = helpValidateInModeler("pm1.vsp36", sql, metadata); //$NON-NLS-1$ assertEquals(0, report.getItems().size()); }
@Test public void testDisallowUpdateOnMultisourceElement() throws Exception { Set<String> models = new HashSet<String>(); models.add("pm1"); ValidatorReport report = helpValidateInModeler("pm1.vsp36", "UPDATE PM1.G1 set SOURCE_NAME='blah'", new MultiSourceMetadataWrapper(RealMetadataFactory.example1(), models)); //$NON-NLS-1$ assertEquals(report.toString(), 1, report.getItems().size()); }
@Test public void testInsertIntoVirtualWithQuery() throws Exception { QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); Command command = helpResolve("insert into vm1.g1 select 1, 2, true, 3", metadata); //$NON-NLS-1$ ValidatorReport report = Validator.validate(command, metadata); assertTrue(report.getItems().isEmpty()); }
@Test public void testValidateDynamicCommandWithNonTempGroup_InModeler() throws Exception{ // SQL is same as pm1.vsp36() in example1 String sql = "CREATE VIRTUAL PROCEDURE BEGIN execute string 'select ' || '1' as X integer into pm1.g3; END"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); // Validate ValidatorReport report = helpValidateInModeler("pm1.vsp36", sql, metadata); //$NON-NLS-1$ assertEquals(1, report.getItems().size()); assertEquals("Wrong number of elements being SELECTed INTO the target table. Expected 4 elements, but was 1.", report.toString()); //$NON-NLS-1$ }
@Test public void testDynamicDupUsing() throws Exception { String sql = "CREATE VIRTUAL PROCEDURE BEGIN execute string 'select ' || '1' as X integer into #temp using id=1, id=2; END"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); // Validate ValidatorReport report = helpValidateInModeler("pm1.vsp36", sql, metadata); //$NON-NLS-1$ assertEquals(1, report.getItems().size()); assertEquals("Elements cannot appear more than once in a SET or USING clause. The following elements are duplicated: [DVARS.id]", report.toString()); //$NON-NLS-1$ }
@Test public void testProcMetadataValidationError() throws Exception { String ddl = "create virtual procedure proc1(IN e1 varchar) RETURNS (e1 integer, e2 varchar(12)) AS begin create local temporary table x (e1 integer, e2 varchar not null); insert into x (e1) values (1); select * from x; end;"; buildModel("vm1", false, this.vdb, this.store, ddl); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); new MetadataValidator.ResolveQueryPlans().execute(vdb, store, report, new MetadataValidator()); assertEquals("TEIID31080 vm1.proc1 validation error: Element x.e2 of x is neither nullable nor has a default value. A value must be specified in the insert.", report.getItems().iterator().next().toString()); }
@Test public void testValidateAssignmentWithFunctionOnParameter_InServer() throws Exception{ String sql = "EXEC pm1.vsp36(5)"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); assertEquals(0, report.getItems().size()); }
@Test public void testDefect14886() throws Exception{ String sql = "CREATE VIRTUAL PROCEDURE BEGIN END"; //$NON-NLS-1$ QueryMetadataInterface metadata = RealMetadataFactory.example1Cached(); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); // Validate assertEquals(0, report.getItems().size()); }
@Test public void testDefect21389() throws Exception{ String sql = "CREATE VIRTUAL PROCEDURE BEGIN SELECT * INTO #temptable FROM pm1.g1; INSERT INTO #temptable (e1) VALUES ('a'); END"; //$NON-NLS-1$ TransformationMetadata metadata = RealMetadataFactory.example1(); Column c = metadata.getElementID("pm1.g1.e1"); //$NON-NLS-1$ c.setUpdatable(false); Command command = new QueryParser().parseCommand(sql); QueryResolver.resolveCommand(command, metadata); // Validate ValidatorReport report = Validator.validate(command, metadata); // Validate assertEquals(0, report.getItems().size()); }