@Test public void testCreateUpdateProcedure24() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer var2.var1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testCreateUpdateProcedure29() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "var1 = 1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testDefect14912_CreateUpdateProcedure57_FunctionWithElementParamInAssignmentStatement() { // Tests that the function params are resolved before the function for assignment statements String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE string var1;\n"; //$NON-NLS-1$ procedure = procedure + "var1 = badFunction(badElement);"; //$NON-NLS-1$ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userCommand = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userCommand, Table.TriggerEvent.UPDATE, "TEIID31118 Element \"badElement\" is not defined by any relevant group."); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure31() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "Declare integer var1;\n"; //$NON-NLS-1$ procedure = procedure + "var1 = 'x' + ROWS_UPDATED;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testDeclareStatement() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer VARIABLES.var1 = VARIABLES.var1;\n"; //$NON-NLS-1$ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testAssignChanging() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$ procedure = procedure + "CHANGING.e1 = Select pm1.g1.e1 from pm1.g1;\n"; //$NON-NLS-1$ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
/** * delete procedures should not reference input or changing vars. */ @Test public void testDefect16451() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure += "BEGIN ATOMIC\n"; //$NON-NLS-1$ procedure += "Select pm1.g1.e2 from pm1.g1 where e1 = NEW.e1;\n"; //$NON-NLS-1$ procedure += "END\n"; //$NON-NLS-1$ String userUpdateStr = "delete from vm1.g1 where e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.DELETE, "TEIID31119 Symbol \"NEW\".e1 is specified with an unknown group context"); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure28() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "var1 = Select pm1.g1.e2 from pm1.g1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testDynamicStatementType() { String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ StringBuffer procedure = new StringBuffer("FOR EACH ROW ") //$NON-NLS-1$ .append("BEGIN\n") //$NON-NLS-1$ .append("DECLARE object VARIABLES.X = null;\n") //$NON-NLS-1$ .append("execute string VARIABLES.X;\n") //$NON-NLS-1$ .append("ROWS_UPDATED =0;\n") //$NON-NLS-1$ .append("END\n"); //$NON-NLS-1$ helpFailUpdateProcedure(procedure.toString(), userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testAssignInput() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$ procedure = procedure + "INPUTS.e1 = Select pm1.g1.e1 from pm1.g1;\n"; //$NON-NLS-1$ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testProcedureCreateDrop() { StringBuffer proc = new StringBuffer("FOR EACH ROW") //$NON-NLS-1$ .append("\nBEGIN") //$NON-NLS-1$ .append("\n drop table t1;") //$NON-NLS-1$ .append("\n create local temporary table t1 (e1 string);") //$NON-NLS-1$ .append("\nEND"); //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(proc.toString(), userUpdateStr, Table.TriggerEvent.UPDATE, "Group does not exist: t1"); //$NON-NLS-1$ }
@Test public void testCreateUpdateProcedure39() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$ procedure = procedure + "if(pm1.g1.e2 =1 and var1=1)\n"; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "Select pm1.g1.e2 from pm1.g1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testCreateUpdateProcedure4() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE boolean var1;\n"; //$NON-NLS-1$ procedure = procedure + "if(var1 =1);\n"; //$NON-NLS-1$ procedure = procedure + "var1 = Select pm1.g1.e2 from pm1.g1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testCreateUpdateProcedure5() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE boolean var1;\n"; //$NON-NLS-1$ procedure = procedure + "var1 = var1 + var1;\n"; //$NON-NLS-1$ procedure = procedure + "var1 = Select pm1.g1.e2 from pm1.g1 whwre var1 = var1+var1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testCreateUpdateProcedure27() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer VARIABLES.var1.var2;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testCreateUpdateProcedure53() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN\n"; //$NON-NLS-1$ procedure = procedure + "DECLARE integer var1;\n"; //$NON-NLS-1$ procedure = procedure + "var1 = INPUTS.e4;"; //$NON-NLS-1$ procedure = procedure + "ROWS_UPDATED =0;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE); }
@Test public void testAmbigousInput() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure = procedure + "BEGIN ATOMIC\n"; //$NON-NLS-1$ procedure = procedure + "select e1;\n"; //$NON-NLS-1$ procedure = procedure + "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE, "TEIID31117 Element \"e1\" is ambiguous and should be qualified, at a single scope it exists in [CHANGING, \"NEW\", \"OLD\"]"); //$NON-NLS-1$ }
@Test public void testInvalidInputInUpdate() { String procedure = "FOR EACH ROW "; //$NON-NLS-1$ procedure += "BEGIN ATOMIC\n"; //$NON-NLS-1$ procedure += "DECLARE integer var1;\n"; //$NON-NLS-1$ procedure += "Select pm1.g1.e2, new.e2 from pm1.g1;\n"; //$NON-NLS-1$ procedure += "UPDATE pm1.g1 SET pm1.g1.e1 = new.e1, pm1.g1.e2 = new.e1;\n"; //$NON-NLS-1$ procedure += "END\n"; //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(procedure, userUpdateStr, Table.TriggerEvent.UPDATE, "TEIID30082 Cannot set symbol 'pm1.g1.e2' with expected type integer to expression '\"new\".e1'"); //$NON-NLS-1$ }
@Test public void testTempGroupElementShouldNotBeResolable() { StringBuffer proc = new StringBuffer("FOR EACH ROW") //$NON-NLS-1$ .append("\nBEGIN") //$NON-NLS-1$ .append("\n select 1 as a into #temp;") //$NON-NLS-1$ .append("\n select #temp.a from pm1.g1;") //$NON-NLS-1$ .append("\nEND"); //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(proc.toString(), userUpdateStr, Table.TriggerEvent.UPDATE, "TEIID31119 Symbol #temp.a is specified with an unknown group context"); //$NON-NLS-1$ }
@Test public void testTempGroupElementShouldNotBeResolable1() { StringBuffer proc = new StringBuffer("FOR EACH ROW") //$NON-NLS-1$ .append("\nBEGIN") //$NON-NLS-1$ .append("\n select 1 as a into #temp;") //$NON-NLS-1$ .append("\n insert into #temp (a) values (#temp.a);") //$NON-NLS-1$ .append("\nEND"); //$NON-NLS-1$ String userUpdateStr = "UPDATE vm1.g1 SET e1='x'"; //$NON-NLS-1$ helpFailUpdateProcedure(proc.toString(), userUpdateStr, Table.TriggerEvent.UPDATE, "TEIID31119 Symbol #temp.a is specified with an unknown group context"); //$NON-NLS-1$ }