[evolvis-commits] r8613: Fixed the last change (in constraint about tasks) so that it also↵ works on PostgreSQL 7?=.2.=?UTF-8?Q?↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 16:47:06 CET 2011


Author: mirabilos
Date: 2011-02-24 16:47:06 +0100 (Thu, 24 Feb 2011)
New Revision: 8613

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/db-upgrade.pl
Log:
Fixed the last change (in constraint about tasks) so that it also
works on PostgreSQL 7.2.


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/db-upgrade.pl	2011-02-24 15:47:05 UTC (rev 8612)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/deb-specific/db-upgrade.pl	2011-02-24 15:47:06 UTC (rev 8613)
@@ -1179,7 +1179,38 @@
     if (is_lesser $version, $target) {
       debug "Upgrading with 20030312.sql" ;
 
-      @reqlist = @{ &parse_sql_file ("/usr/lib/gforge/db/20030312.sql") } ;
+      my $pg_version = &get_pg_version ;
+      
+      if (is_lesser $pg_version, "7.3") {
+	  @reqlist = (
+		      "DROP TRIGGER projtask_insert_depend_trig ON project_task",
+		      "DROP FUNCTION projtask_insert_depend ()",
+		      "CREATE OR REPLACE FUNCTION projtask_insert_depend () RETURNS OPAQUE AS '
+DECLARE
+	dependon RECORD;
+	delta INTEGER;
+BEGIN
+	IF NEW.start_date > NEW.end_date THEN
+		RAISE EXCEPTION ''START DATE CANNOT BE AFTER END DATE'';
+	END IF;
+	FOR dependon IN SELECT * FROM project_dependon_vw
+				WHERE project_task_id=NEW.project_task_id LOOP
+		IF dependon.end_date > NEW.start_date THEN
+			delta := dependon.end_date-NEW.start_date;
+			RAISE NOTICE ''Bumping Back: % Delta: % '',NEW.project_task_id,delta;
+			NEW.start_date := NEW.start_date+delta;
+			NEW.end_date := NEW.end_date+delta;
+		END IF;
+	END LOOP;
+	RETURN NEW;
+END;
+' LANGUAGE 'plpgsql'",
+"CREATE TRIGGER projtask_insert_depend_trig BEFORE INSERT OR UPDATE ON project_task
+	FOR EACH ROW EXECUTE PROCEDURE projtask_insert_depend()",
+		      ) ;
+      } else {
+	  @reqlist = @{ &parse_sql_file ("/usr/lib/gforge/db/20030312.sql") } ;
+      }
       foreach my $s (@reqlist) {
 	  $query = $s ;
 	  # debug $query ;



More information about the evolvis-commits mailing list