[CalendarServer-changes] [11134] CalendarServer/branches/users/gaya/sharedgroups-3/txdav/common/ datastore/sql_schema/upgrades/postgres-dialect/upgrade_from_18_to_19.sql

source_changes at macosforge.org source_changes at macosforge.org
Fri May 3 20:44:16 PDT 2013


Revision: 11134
          http://trac.calendarserver.org//changeset/11134
Author:   gaya at apple.com
Date:     2013-05-03 20:44:16 -0700 (Fri, 03 May 2013)
Log Message:
-----------
add update statements.  Untested, but no syntax errors.

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/sharedgroups-3/txdav/common/datastore/sql_schema/upgrades/postgres-dialect/upgrade_from_18_to_19.sql

Modified: CalendarServer/branches/users/gaya/sharedgroups-3/txdav/common/datastore/sql_schema/upgrades/postgres-dialect/upgrade_from_18_to_19.sql
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups-3/txdav/common/datastore/sql_schema/upgrades/postgres-dialect/upgrade_from_18_to_19.sql	2013-05-04 03:41:20 UTC (rev 11133)
+++ CalendarServer/branches/users/gaya/sharedgroups-3/txdav/common/datastore/sql_schema/upgrades/postgres-dialect/upgrade_from_18_to_19.sql	2013-05-04 03:44:16 UTC (rev 11134)
@@ -113,39 +113,102 @@
 alter table ADDRESSBOOK_HOME
 	add column	ADDRESSBOOK_PROPERTY_STORE_ID	integer	default nextval('RESOURCE_ID_SEQ') not null;
 
---  could set ADDRESSBOOK_PROPERTY_STORE_ID to addressbook resourceID to save ab properties:  But there are no props worth saving!
+update ADDRESSBOOK_HOME
+	set	ADDRESSBOOK_PROPERTY_STORE_ID = (
+		select ADDRESSBOOK_RESOURCE_ID
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_HOME_RESOURCE_ID = ADDRESSBOOK_HOME.RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+	)
+	where exists (
+		select *
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_HOME_RESOURCE_ID = ADDRESSBOOK_HOME.RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+  	);
 	
 
--------------------------------
--- Alter  ADDRESSBOOK_OBJECT --
--------------------------------
+--------------------------------
+-- change  ADDRESSBOOK_OBJECT --
+--------------------------------
 
 alter table ADDRESSBOOK_OBJECT
-	add column	KIND 	integer  	not null; 	-- enum OBJECT_KIND
--- KIND values set in addressbook data upgrade
+	add column	KIND	integer	not null;  -- enum ADDRESSBOOK_OBJECT_KIND
 
 alter table ADDRESSBOOK_OBJECT
 	add column	ADDRESSBOOK_HOME_RESOURCE_ID	integer	not null references ADDRESSBOOK_HOME on delete cascade;
 
--- TODO: update ADDRESSBOOK_HOME_RESOURCE_ID
+update ADDRESSBOOK_OBJECT
+	set	ADDRESSBOOK_HOME_RESOURCE_ID = (
+		select ADDRESSBOOK_HOME_RESOURCE_ID
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_ID = ADDRESSBOOK_OBJECT.ADDRESSBOOK_RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+	), KIND = 0 -- ADDRESSBOOK_OBJECT_KIND 'person'
+	where exists (
+		select *
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_ID = ADDRESSBOOK_OBJECT.ADDRESSBOOK_RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+  	);
 
 alter table ADDRESSBOOK_OBJECT
 	drop column	ADDRESSBOOK_RESOURCE_ID;
 
 	
------------------------------------------
--- Alter  ADDRESSBOOK_OBJECT_REVISIONS --
------------------------------------------
+------------------------------------------
+-- change  ADDRESSBOOK_OBJECT_REVISIONS --
+------------------------------------------
 
 alter table ADDRESSBOOK_OBJECT_REVISIONS
 	add column	OWNER_ADDRESSBOOK_HOME_RESOURCE_ID	integer	not null references ADDRESSBOOK_HOME on delete cascade;
 
--- TODO: update ADDRESSBOOK_HOME_RESOURCE_ID
+update ADDRESSBOOK_OBJECT_REVISIONS
+	set	OWNER_ADDRESSBOOK_HOME_RESOURCE_ID = (
+		select ADDRESSBOOK_HOME_RESOURCE_ID
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_ID = ADDRESSBOOK_OBJECT_REVISIONS.ADDRESSBOOK_RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+	)
+	where exists (
+		select *
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_ID = ADDRESSBOOK_OBJECT_REVISIONS.ADDRESSBOOK_RESOURCE_ID and
+			ADDRESSBOOK_BIND.BIND_MODE = 0 and 	-- CALENDAR_BIND_MODE 'own'
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME = 'addressbook'
+  	);
 
 alter table ADDRESSBOOK_OBJECT_REVISIONS
 	drop column	ADDRESSBOOK_RESOURCE_ID;
 
+----------------------------------------------------------------------------
+-- delete RESOURCE_PROPERTY rows for shared and non-default address books --
+----------------------------------------------------------------------------
 
+delete 
+	from RESOURCE_PROPERTY
+	where exists (
+		select *
+			from ADDRESSBOOK_BIND
+		where 
+			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_ID = RESOURCE_PROPERTY.RESOURCE_ID and (
+				ADDRESSBOOK_BIND.BIND_MODE != 0 or 	-- CALENDAR_BIND_MODE 'own'
+	 			ADDRESSBOOK_BIND.ADDRESSBOOK_RESOURCE_NAME != 'addressbook'
+	 		)
+  	);
+
+	
 -------------------------------------
 -- Drop ADDRESSBOOK related tables --
 -------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130503/769fdeef/attachment.html>


More information about the calendarserver-changes mailing list