Skip to content

Commit 7d16c4d

Browse files
committed
Consolidate SQL scripts to *-0.000-25.000.sql
1 parent f62caa4 commit 7d16c4d

File tree

6 files changed

+563
-555
lines changed

6 files changed

+563
-555
lines changed

modules/ETLtest/resources/schemas/dbscripts/postgresql/etltest-0.00-16.30.sql renamed to modules/ETLtest/resources/schemas/dbscripts/postgresql/etltest-0.000-25.000.sql

Lines changed: 301 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,4 +621,304 @@ END;
621621

622622
$BODY$
623623
LANGUAGE plpgsql VOLATILE
624-
COST 100;
624+
COST 100;
625+
626+
/* 24.xxx SQL scripts */
627+
628+
CREATE OR REPLACE FUNCTION etltest.etltest
629+
(IN transformrunid integer
630+
, IN containerid entityid DEFAULT NULL::character varying
631+
, INOUT rowsinserted integer DEFAULT 0
632+
, INOUT rowsdeleted integer DEFAULT 0
633+
, INOUT rowsmodified integer DEFAULT 0
634+
, INOUT returnmsg character varying DEFAULT 'default message'::character varying
635+
, IN debug character varying DEFAULT ''::character varying
636+
, IN filterrunid integer DEFAULT NULL::integer
637+
, INOUT filterstarttimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
638+
, INOUT filterendtimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
639+
, INOUT previousfilterrunid integer DEFAULT (-1)
640+
, INOUT previousfilterstarttimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
641+
, INOUT previousfilterendtimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
642+
--, INOUT procVersion decimal DEFAULT 0
643+
, IN testmode integer DEFAULT (-1)
644+
, INOUT testinoutparam character varying DEFAULT ''::character varying
645+
, INOUT runcount integer DEFAULT 1
646+
, OUT return_status integer)
647+
RETURNS record AS
648+
$BODY$
649+
650+
/*
651+
Test modes
652+
1 normal operation
653+
2 return code > 0
654+
3 raise error
655+
4 input/output parameter persistence
656+
5 override of persisted input/output parameter
657+
6 Run filter strategy, require filterRunId. Test persistence.
658+
7 Modified since filter strategy, no source, require filterStartTimeStamp & filterEndTimeStamp,
659+
populated from output of previous run
660+
8 Modified since filter strategy with source, require filterStartTimeStamp & filterEndTimeStamp
661+
populated from the filter strategy IncrementalStartTime & IncrementalEndTime
662+
9 Sleep for 2 minutes before finishing
663+
664+
*/
665+
BEGIN
666+
667+
IF testMode IS NULL
668+
THEN
669+
returnMsg := 'No testMode set';
670+
return_status := 1;
671+
RETURN;
672+
END IF;
673+
674+
IF runCount IS NULL
675+
THEN
676+
runCount := 1;
677+
ELSE
678+
runCount := runCount + 1;
679+
END IF;
680+
681+
IF testMode = 1
682+
THEN
683+
RAISE NOTICE '%', 'Test print statement logging';
684+
rowsInserted := 1;
685+
rowsDeleted := 2;
686+
rowsModified := 4;
687+
returnMsg := 'Test returnMsg logging';
688+
return_status := 0;
689+
RETURN;
690+
END IF;
691+
692+
IF testMode = 2 THEN return_status := 1; RETURN; END IF;
693+
694+
IF testMode = 3
695+
THEN
696+
returnMsg := 'Intentional SQL Exception From Inside Proc';
697+
RAISE EXCEPTION '%', returnMsg;
698+
END IF;
699+
700+
IF testMode = 4 AND testInOutParam != 'after' AND runCount > 1
701+
THEN
702+
returnMsg := 'Expected value "after" for testInOutParam on run count = ' || runCount || ', but was ' || testInOutParam;
703+
return_status := 1;
704+
RETURN;
705+
END IF;
706+
707+
IF testMode = 5 AND testInOutParam != 'before' AND runCount > 1
708+
THEN
709+
returnMsg := 'Expected value "before" for testInOutParam on run count = ' || runCount || ', but was ' || testInOutParam;
710+
return_status := 1;
711+
RETURN;
712+
END IF;
713+
714+
IF testMode = 6
715+
THEN
716+
IF filterRunId IS NULL
717+
THEN
718+
returnMsg := 'Required filterRunId value not supplied';
719+
return_status := 1;
720+
RETURN;
721+
END IF;
722+
IF runCount > 1 AND (previousFilterRunId IS NULL OR previousFilterRunId >= filterRunId)
723+
THEN
724+
returnMsg := 'Required filterRunId was not persisted from previous run.';
725+
return_status := 1;
726+
RETURN;
727+
END IF;
728+
previousFilterRunId := filterRunId;
729+
END IF;
730+
731+
IF testMode = 7
732+
THEN
733+
IF runCount > 1 AND (filterStartTimeStamp IS NULL AND filterEndTimeStamp IS NULL)
734+
THEN
735+
returnMsg := 'Required filterStartTimeStamp or filterEndTimeStamp were not persisted from previous run.';
736+
return_status := 1;
737+
RETURN;
738+
END IF;
739+
filterStartTimeStamp := localtimestamp;
740+
filterEndTimeStamp := localtimestamp;
741+
END IF;
742+
743+
IF testMode = 8
744+
THEN
745+
IF runCount > 1 AND ((previousFilterStartTimeStamp IS NULL AND previousFilterEndTimeStamp IS NULL)
746+
OR (filterStartTimeStamp IS NULL AND filterEndTimeStamp IS NULL))
747+
THEN
748+
returnMsg := 'Required filterStartTimeStamp or filterEndTimeStamp were not persisted from previous run.';
749+
return_status := 1;
750+
RETURN;
751+
END IF;
752+
previousFilterStartTimeStamp := coalesce(filterStartTimeStamp, localtimestamp);
753+
previousFilterEndTimeStamp := coalesce(filterEndTimeStamp, localtimestamp);
754+
END IF;
755+
756+
IF testMode = 9
757+
THEN
758+
-- Sleep for 2 minutes
759+
SELECT pg_sleep(120);
760+
return_status := 1;
761+
RETURN;
762+
END IF;
763+
764+
-- set value for persistence tests
765+
IF testInOutParam != ''
766+
THEN
767+
testInOutParam := 'after';
768+
END IF;
769+
770+
return_status := 0;
771+
RETURN;
772+
773+
END;
774+
$BODY$
775+
LANGUAGE plpgsql;
776+
777+
CREATE OR REPLACE FUNCTION etltest.etltest
778+
(IN transformrunid integer
779+
, IN containerid entityid DEFAULT NULL::character varying
780+
, INOUT rowsinserted integer DEFAULT 0
781+
, INOUT rowsdeleted integer DEFAULT 0
782+
, INOUT rowsmodified integer DEFAULT 0
783+
, INOUT returnmsg character varying DEFAULT 'default message'::character varying
784+
, IN debug character varying DEFAULT ''::character varying
785+
, IN filterrunid integer DEFAULT NULL::integer
786+
, INOUT filterstarttimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
787+
, INOUT filterendtimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
788+
, INOUT previousfilterrunid integer DEFAULT (-1)
789+
, INOUT previousfilterstarttimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
790+
, INOUT previousfilterendtimestamp timestamp without time zone DEFAULT NULL::timestamp without time zone
791+
--, INOUT procVersion decimal DEFAULT 0
792+
, IN testmode integer DEFAULT (-1)
793+
, INOUT testinoutparam character varying DEFAULT ''::character varying
794+
, INOUT runcount integer DEFAULT 1
795+
, OUT return_status integer)
796+
RETURNS record AS
797+
$BODY$
798+
799+
/*
800+
Test modes
801+
1 normal operation
802+
2 return code > 0
803+
3 raise error
804+
4 input/output parameter persistence
805+
5 override of persisted input/output parameter
806+
6 Run filter strategy, require filterRunId. Test persistence.
807+
7 Modified since filter strategy, no source, require filterStartTimeStamp & filterEndTimeStamp,
808+
populated from output of previous run
809+
8 Modified since filter strategy with source, require filterStartTimeStamp & filterEndTimeStamp
810+
populated from the filter strategy IncrementalStartTime & IncrementalEndTime
811+
9 Sleep for 2 minutes before finishing
812+
813+
*/
814+
BEGIN
815+
816+
IF testMode IS NULL
817+
THEN
818+
returnMsg := 'No testMode set';
819+
return_status := 1;
820+
RETURN;
821+
END IF;
822+
823+
IF runCount IS NULL
824+
THEN
825+
runCount := 1;
826+
ELSE
827+
runCount := runCount + 1;
828+
END IF;
829+
830+
IF testMode = 1
831+
THEN
832+
RAISE NOTICE '%', 'Test print statement logging';
833+
rowsInserted := 1;
834+
rowsDeleted := 2;
835+
rowsModified := 4;
836+
returnMsg := 'Test returnMsg logging';
837+
return_status := 0;
838+
RETURN;
839+
END IF;
840+
841+
IF testMode = 2 THEN return_status := 1; RETURN; END IF;
842+
843+
IF testMode = 3
844+
THEN
845+
returnMsg := 'Intentional SQL Exception From Inside Proc';
846+
RAISE EXCEPTION '%', returnMsg;
847+
END IF;
848+
849+
IF testMode = 4 AND testInOutParam != 'after' AND runCount > 1
850+
THEN
851+
returnMsg := 'Expected value "after" for testInOutParam on run count = ' || runCount || ', but was ' || testInOutParam;
852+
return_status := 1;
853+
RETURN;
854+
END IF;
855+
856+
IF testMode = 5 AND testInOutParam != 'before' AND runCount > 1
857+
THEN
858+
returnMsg := 'Expected value "before" for testInOutParam on run count = ' || runCount || ', but was ' || testInOutParam;
859+
return_status := 1;
860+
RETURN;
861+
END IF;
862+
863+
IF testMode = 6
864+
THEN
865+
IF filterRunId IS NULL
866+
THEN
867+
returnMsg := 'Required filterRunId value not supplied';
868+
return_status := 1;
869+
RETURN;
870+
END IF;
871+
IF runCount > 1 AND (previousFilterRunId IS NULL OR previousFilterRunId >= filterRunId)
872+
THEN
873+
returnMsg := 'Required filterRunId was not persisted from previous run.';
874+
return_status := 1;
875+
RETURN;
876+
END IF;
877+
previousFilterRunId := filterRunId;
878+
END IF;
879+
880+
IF testMode = 7
881+
THEN
882+
IF runCount > 1 AND (filterStartTimeStamp IS NULL AND filterEndTimeStamp IS NULL)
883+
THEN
884+
returnMsg := 'Required filterStartTimeStamp or filterEndTimeStamp were not persisted from previous run.';
885+
return_status := 1;
886+
RETURN;
887+
END IF;
888+
filterStartTimeStamp := localtimestamp;
889+
filterEndTimeStamp := localtimestamp;
890+
END IF;
891+
892+
IF testMode = 8
893+
THEN
894+
IF runCount > 1 AND ((previousFilterStartTimeStamp IS NULL AND previousFilterEndTimeStamp IS NULL)
895+
OR (filterStartTimeStamp IS NULL AND filterEndTimeStamp IS NULL))
896+
THEN
897+
returnMsg := 'Required filterStartTimeStamp or filterEndTimeStamp were not persisted from previous run.';
898+
return_status := 1;
899+
RETURN;
900+
END IF;
901+
previousFilterStartTimeStamp := coalesce(filterStartTimeStamp, localtimestamp);
902+
previousFilterEndTimeStamp := coalesce(filterEndTimeStamp, localtimestamp);
903+
END IF;
904+
905+
IF testMode = 9
906+
THEN
907+
-- Sleep for 30 seconds minutes
908+
SELECT pg_sleep(30);
909+
return_status := 1;
910+
RETURN;
911+
END IF;
912+
913+
-- set value for persistence tests
914+
IF testInOutParam != ''
915+
THEN
916+
testInOutParam := 'after';
917+
END IF;
918+
919+
return_status := 0;
920+
RETURN;
921+
922+
END;
923+
$BODY$
924+
LANGUAGE plpgsql;

0 commit comments

Comments
 (0)