425 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			425 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Zotlabs\Update;
 | 
						|
 | 
						|
class _1191 {
 | 
						|
function run() {
 | 
						|
 | 
						|
	$r = q("SELECT 1 FROM principals LIMIT 1");
 | 
						|
 | 
						|
	if($r !== false) {
 | 
						|
		return UPDATE_SUCCESS;
 | 
						|
	}
 | 
						|
	else {
 | 
						|
		if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
 | 
						|
			$r1 = q("CREATE TABLE addressbooks (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					principaluri VARCHAR(255),
 | 
						|
					displayname VARCHAR(255),
 | 
						|
					uri VARCHAR(200),
 | 
						|
					description TEXT,
 | 
						|
					synctoken INTEGER NOT NULL DEFAULT 1
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r2 = q("ALTER TABLE ONLY addressbooks ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r3 = q("CREATE UNIQUE INDEX addressbooks_ukey ON addressbooks USING btree (principaluri, uri);");
 | 
						|
 | 
						|
			$r4 = q("CREATE TABLE cards (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					addressbookid INTEGER NOT NULL,
 | 
						|
					carddata BYTEA,
 | 
						|
					uri VARCHAR(200),
 | 
						|
					lastmodified INTEGER,
 | 
						|
					etag VARCHAR(32),
 | 
						|
					size INTEGER NOT NULL
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r5 = q("ALTER TABLE ONLY cards ADD CONSTRAINT cards_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r6 = q("CREATE UNIQUE INDEX cards_ukey ON cards USING btree (addressbookid, uri);");
 | 
						|
 | 
						|
			$r7 = q("CREATE TABLE addressbookchanges (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					uri VARCHAR(200) NOT NULL,
 | 
						|
					synctoken INTEGER NOT NULL,
 | 
						|
					addressbookid INTEGER NOT NULL,
 | 
						|
					operation SMALLINT NOT NULL
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r8 = q("ALTER TABLE ONLY addressbookchanges ADD CONSTRAINT addressbookchanges_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r9 = q("CREATE INDEX addressbookchanges_addressbookid_synctoken_ix ON addressbookchanges USING btree (addressbookid, synctoken);");
 | 
						|
 | 
						|
			$r10 = q("CREATE TABLE calendarobjects (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					calendardata BYTEA,
 | 
						|
					uri VARCHAR(200),
 | 
						|
					calendarid INTEGER NOT NULL,
 | 
						|
					lastmodified INTEGER,
 | 
						|
					etag VARCHAR(32),
 | 
						|
					size INTEGER NOT NULL,
 | 
						|
					componenttype VARCHAR(8),
 | 
						|
					firstoccurence INTEGER,
 | 
						|
					lastoccurence INTEGER,
 | 
						|
					uid VARCHAR(200)
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r11 = q("ALTER TABLE ONLY calendarobjects ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r12 = q("CREATE UNIQUE INDEX calendarobjects_ukey ON calendarobjects USING btree (calendarid, uri);");
 | 
						|
 | 
						|
			$r13 = q("CREATE TABLE calendars (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					synctoken INTEGER NOT NULL DEFAULT 1,
 | 
						|
					components VARCHAR(21)
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r14 = q("ALTER TABLE ONLY calendars ADD CONSTRAINT calendars_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r15 = q("CREATE TABLE calendarinstances (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					calendarid INTEGER NOT NULL,
 | 
						|
					principaluri VARCHAR(100),
 | 
						|
					access SMALLINT NOT NULL DEFAULT '1', -- '1 = owner, 2 = read, 3 = readwrite'
 | 
						|
					displayname VARCHAR(100),
 | 
						|
					uri VARCHAR(200),
 | 
						|
					description TEXT,
 | 
						|
					calendarorder INTEGER NOT NULL DEFAULT 0,
 | 
						|
					calendarcolor VARCHAR(10),
 | 
						|
					timezone TEXT,
 | 
						|
					transparent SMALLINT NOT NULL DEFAULT '0',
 | 
						|
					share_href VARCHAR(100),
 | 
						|
					share_displayname VARCHAR(100),
 | 
						|
					share_invitestatus SMALLINT NOT NULL DEFAULT '2' --  '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid'
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r16 = q("ALTER TABLE ONLY calendarinstances ADD CONSTRAINT calendarinstances_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r17 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_uri ON calendarinstances USING btree (principaluri, uri);");
 | 
						|
 | 
						|
			$r18 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_calendarid ON calendarinstances USING btree (principaluri, calendarid);");
 | 
						|
 | 
						|
			$r19 = q("CREATE UNIQUE INDEX calendarinstances_principaluri_share_href ON calendarinstances USING btree (principaluri, share_href);");
 | 
						|
 | 
						|
			$r20 = q("CREATE TABLE calendarsubscriptions (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					uri VARCHAR(200) NOT NULL,
 | 
						|
					principaluri VARCHAR(100) NOT NULL,
 | 
						|
					source TEXT,
 | 
						|
					displayname VARCHAR(100),
 | 
						|
					refreshrate VARCHAR(10),
 | 
						|
					calendarorder INTEGER NOT NULL DEFAULT 0,
 | 
						|
					calendarcolor VARCHAR(10),
 | 
						|
					striptodos SMALLINT NULL,
 | 
						|
					stripalarms SMALLINT NULL,
 | 
						|
					stripattachments SMALLINT NULL,
 | 
						|
					lastmodified INTEGER
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r21 = q("ALTER TABLE ONLY calendarsubscriptions ADD CONSTRAINT calendarsubscriptions_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r22 = q("CREATE UNIQUE INDEX calendarsubscriptions_ukey ON calendarsubscriptions USING btree (principaluri, uri);");
 | 
						|
 | 
						|
			$r23 = q("CREATE TABLE calendarchanges (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					uri VARCHAR(200) NOT NULL,
 | 
						|
					synctoken INTEGER NOT NULL,
 | 
						|
					calendarid INTEGER NOT NULL,
 | 
						|
					operation SMALLINT NOT NULL DEFAULT 0
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r24 = q("ALTER TABLE ONLY calendarchanges ADD CONSTRAINT calendarchanges_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r25 = q("CREATE INDEX calendarchanges_calendarid_synctoken_ix ON calendarchanges USING btree (calendarid, synctoken);");
 | 
						|
 | 
						|
			$r26 = q("CREATE TABLE schedulingobjects (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					principaluri VARCHAR(255),
 | 
						|
					calendardata BYTEA,
 | 
						|
					uri VARCHAR(200),
 | 
						|
					lastmodified INTEGER,
 | 
						|
					etag VARCHAR(32),
 | 
						|
					size INTEGER NOT NULL
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r27 = q("CREATE TABLE locks (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					owner VARCHAR(100),
 | 
						|
					timeout INTEGER,
 | 
						|
					created INTEGER,
 | 
						|
					token VARCHAR(100),
 | 
						|
					scope SMALLINT,
 | 
						|
					depth SMALLINT,
 | 
						|
					uri TEXT
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r28 = q("ALTER TABLE ONLY locks ADD CONSTRAINT locks_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r29 = q("CREATE INDEX locks_token_ix ON locks USING btree (token);");
 | 
						|
 | 
						|
			$r30 = q("CREATE INDEX locks_uri_ix ON locks USING btree (uri);");
 | 
						|
 | 
						|
			$r31 = q("CREATE TABLE principals (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					uri VARCHAR(200) NOT NULL,
 | 
						|
					email VARCHAR(80),
 | 
						|
					displayname VARCHAR(80)
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r32 = q("ALTER TABLE ONLY principals ADD CONSTRAINT principals_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r33 = q("CREATE UNIQUE INDEX principals_ukey ON principals USING btree (uri);");
 | 
						|
 | 
						|
			$r34 = q("CREATE TABLE groupmembers (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					principal_id INTEGER NOT NULL,
 | 
						|
					member_id INTEGER NOT NULL
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r35 = q("ALTER TABLE ONLY groupmembers ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r36 = q("CREATE UNIQUE INDEX groupmembers_ukey ON groupmembers USING btree (principal_id, member_id);");
 | 
						|
 | 
						|
			$r37 = q("CREATE TABLE propertystorage (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					path VARCHAR(1024) NOT NULL,
 | 
						|
					name VARCHAR(100) NOT NULL,
 | 
						|
					valuetype INT,
 | 
						|
					value BYTEA
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r38 = q("ALTER TABLE ONLY propertystorage ADD CONSTRAINT propertystorage_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r39 = q("CREATE UNIQUE INDEX propertystorage_ukey ON propertystorage (path, name);");
 | 
						|
 | 
						|
			$r40 = q("CREATE TABLE users (
 | 
						|
					id SERIAL NOT NULL,
 | 
						|
					username VARCHAR(50),
 | 
						|
					digesta1 VARCHAR(32)
 | 
						|
				);"
 | 
						|
			);
 | 
						|
 | 
						|
			$r41 = q("ALTER TABLE ONLY users ADD CONSTRAINT users_pkey PRIMARY KEY (id);");
 | 
						|
 | 
						|
			$r42 = q("CREATE UNIQUE INDEX users_ukey ON users USING btree (username);");
 | 
						|
 | 
						|
			if(
 | 
						|
				$r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8 && $r9 && $r10
 | 
						|
				&& $r11 && $r12 && $r13 && $r14 && $r15 && $r16 && $r17 && $r18 && $r19 && $r20
 | 
						|
				&& $r21 && $r22 && $r23 && $r24 && $r25 && $r26 && $r27 && $r28 && $r29 && $r30
 | 
						|
				&& $r31 && $r32 && $r33 && $r34 && $r35 && $r36 && $r37 && $r38 && $r39 && $r40
 | 
						|
				&& $r41 && $r42
 | 
						|
			)
 | 
						|
				return UPDATE_SUCCESS;
 | 
						|
			return UPDATE_FAILED;
 | 
						|
		}
 | 
						|
		else {
 | 
						|
			$r1 = q("CREATE TABLE if not exists addressbooks (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					principaluri VARBINARY(255),
 | 
						|
					displayname VARCHAR(255),
 | 
						|
					uri VARBINARY(200),
 | 
						|
					description TEXT,
 | 
						|
					synctoken INT(11) UNSIGNED NOT NULL DEFAULT '1',
 | 
						|
					UNIQUE(principaluri(100), uri(100))
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r2 = q("CREATE TABLE if not exists cards (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					addressbookid INT(11) UNSIGNED NOT NULL,
 | 
						|
					carddata MEDIUMBLOB,
 | 
						|
					uri VARBINARY(200),
 | 
						|
					lastmodified INT(11) UNSIGNED,
 | 
						|
					etag VARBINARY(32),
 | 
						|
					size INT(11) UNSIGNED NOT NULL
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r3 = q("CREATE TABLE if not exists addressbookchanges (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					uri VARBINARY(200) NOT NULL,
 | 
						|
					synctoken INT(11) UNSIGNED NOT NULL,
 | 
						|
					addressbookid INT(11) UNSIGNED NOT NULL,
 | 
						|
					operation TINYINT(1) NOT NULL,
 | 
						|
					INDEX addressbookid_synctoken (addressbookid, synctoken)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r4 = q("CREATE TABLE if not exists calendarobjects (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					calendardata MEDIUMBLOB,
 | 
						|
					uri VARBINARY(200),
 | 
						|
					calendarid INTEGER UNSIGNED NOT NULL,
 | 
						|
					lastmodified INT(11) UNSIGNED,
 | 
						|
					etag VARBINARY(32),
 | 
						|
					size INT(11) UNSIGNED NOT NULL,
 | 
						|
					componenttype VARBINARY(8),
 | 
						|
					firstoccurence INT(11) UNSIGNED,
 | 
						|
					lastoccurence INT(11) UNSIGNED,
 | 
						|
					uid VARBINARY(200),
 | 
						|
					UNIQUE(calendarid, uri),
 | 
						|
					INDEX calendarid_time (calendarid, firstoccurence)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r5 = q("CREATE TABLE if not exists calendars (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					synctoken INTEGER UNSIGNED NOT NULL DEFAULT '1',
 | 
						|
					components VARBINARY(21)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r6 = q("CREATE TABLE if not exists calendarinstances (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					calendarid INTEGER UNSIGNED NOT NULL,
 | 
						|
					principaluri VARBINARY(100),
 | 
						|
					access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite',
 | 
						|
		 			displayname VARCHAR(100),
 | 
						|
					uri VARBINARY(200),
 | 
						|
					description TEXT,
 | 
						|
		 			calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
					calendarcolor VARBINARY(10),
 | 
						|
					timezone TEXT,
 | 
						|
					transparent TINYINT(1) NOT NULL DEFAULT '0',
 | 
						|
					share_href VARBINARY(100),
 | 
						|
					share_displayname VARCHAR(100),
 | 
						|
					share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid',
 | 
						|
					UNIQUE(principaluri, uri),
 | 
						|
					UNIQUE(calendarid, principaluri),
 | 
						|
					UNIQUE(calendarid, share_href)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r7 = q("CREATE TABLE if not exists calendarchanges (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					uri VARBINARY(200) NOT NULL,
 | 
						|
					synctoken INT(11) UNSIGNED NOT NULL,
 | 
						|
					calendarid INT(11) UNSIGNED NOT NULL,
 | 
						|
					operation TINYINT(1) NOT NULL,
 | 
						|
					INDEX calendarid_synctoken (calendarid, synctoken)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r8 = q("CREATE TABLE if not exists calendarsubscriptions (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					uri VARBINARY(200) NOT NULL,
 | 
						|
					principaluri VARBINARY(100) NOT NULL,
 | 
						|
					source TEXT,
 | 
						|
					displayname VARCHAR(100),
 | 
						|
					refreshrate VARCHAR(10),
 | 
						|
					calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
					calendarcolor VARBINARY(10),
 | 
						|
					striptodos TINYINT(1) NULL,
 | 
						|
					stripalarms TINYINT(1) NULL,
 | 
						|
					stripattachments TINYINT(1) NULL,
 | 
						|
					lastmodified INT(11) UNSIGNED,
 | 
						|
					UNIQUE(principaluri, uri)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r9 = q("CREATE TABLE if not exists schedulingobjects (
 | 
						|
					id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					principaluri VARBINARY(255),
 | 
						|
					calendardata MEDIUMBLOB,
 | 
						|
					uri VARBINARY(200),
 | 
						|
					lastmodified INT(11) UNSIGNED,
 | 
						|
					etag VARBINARY(32),
 | 
						|
					size INT(11) UNSIGNED NOT NULL
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r10 = q("CREATE TABLE if not exists locks (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					owner VARCHAR(100),
 | 
						|
					timeout INTEGER UNSIGNED,
 | 
						|
					created INTEGER,
 | 
						|
					token VARBINARY(100),
 | 
						|
					scope TINYINT,
 | 
						|
					depth TINYINT,
 | 
						|
					uri VARBINARY(1000),
 | 
						|
					INDEX(token),
 | 
						|
					INDEX(uri(100))
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r11 = q("CREATE TABLE if not exists principals (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					uri VARBINARY(200) NOT NULL,
 | 
						|
					email VARBINARY(80),
 | 
						|
					displayname VARCHAR(80),
 | 
						|
					UNIQUE(uri)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r12 = q("CREATE TABLE if not exists groupmembers (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					principal_id INTEGER UNSIGNED NOT NULL,
 | 
						|
					member_id INTEGER UNSIGNED NOT NULL,
 | 
						|
					UNIQUE(principal_id, member_id)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r13 = q("CREATE TABLE if not exists propertystorage (
 | 
						|
					id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					path VARBINARY(1024) NOT NULL,
 | 
						|
					name VARBINARY(100) NOT NULL,
 | 
						|
					valuetype INT UNSIGNED,
 | 
						|
					value MEDIUMBLOB
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r14 = q("CREATE UNIQUE INDEX path_property ON propertystorage (path(600), name(100));");
 | 
						|
 | 
						|
			$r15 = q("CREATE TABLE if not exists users (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					username VARBINARY(50),
 | 
						|
					digesta1 VARBINARY(32),
 | 
						|
					UNIQUE(username)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			$r16 = q("CREATE TABLE if not exists calendarinstances (
 | 
						|
					id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
 | 
						|
					calendarid INTEGER UNSIGNED NOT NULL,
 | 
						|
					principaluri VARBINARY(100),
 | 
						|
					access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite',
 | 
						|
					displayname VARCHAR(100),
 | 
						|
					uri VARBINARY(200),
 | 
						|
					description TEXT,
 | 
						|
					calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0',
 | 
						|
					calendarcolor VARBINARY(10),
 | 
						|
					timezone TEXT,
 | 
						|
					transparent TINYINT(1) NOT NULL DEFAULT '0',
 | 
						|
					share_href VARBINARY(100),
 | 
						|
					share_displayname VARCHAR(100),
 | 
						|
					share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid',
 | 
						|
					UNIQUE(principaluri, uri),
 | 
						|
					UNIQUE(calendarid, principaluri),
 | 
						|
					UNIQUE(calendarid, share_href)
 | 
						|
				) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
 | 
						|
			);
 | 
						|
 | 
						|
			if($r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8 && $r9 && $r10 && $r11 && $r12 && $r13 && $r14 && $r15 && $r16)
 | 
						|
				return UPDATE_SUCCESS;
 | 
						|
			return UPDATE_FAILED;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
} |