File: /volume1/@appstore/Contacts/etc/sql/2.sql
DROP VIEW addressbook_object_metadata_without_photo_vcard_view;
DROP VIEW principal_id_to_addressbook_privilege_view;
DROP VIEW principal_id_to_addressbook_view;
DROP VIEW principal_with_group_id_view;
DROP VIEW addressbook_object_with_metadata_view;
ALTER TABLE principal
ALTER COLUMN display_name TYPE TEXT,
ALTER COLUMN account_name TYPE TEXT;
ALTER TABLE addressbook
ALTER COLUMN uri TYPE TEXT,
ALTER COLUMN display_name TYPE TEXT,
ALTER COLUMN color TYPE TEXT,
ALTER COLUMN description TYPE TEXT;
ALTER TABLE label
ALTER COLUMN display_name TYPE TEXT,
ALTER COLUMN color TYPE TEXT;
ALTER TABLE addressbook_object
ALTER COLUMN uri TYPE TEXT;
ALTER TABLE addressbook_object_metadata
ALTER COLUMN full_name TYPE TEXT,
ALTER COLUMN company TYPE TEXT,
ALTER COLUMN department TYPE TEXT,
ALTER COLUMN job_title TYPE TEXT,
ALTER COLUMN email TYPE TEXT,
ALTER COLUMN telephone TYPE TEXT,
ALTER COLUMN date TYPE TEXT,
ALTER COLUMN birthday TYPE TEXT;
ALTER TABLE addressbook_object_revision
ALTER COLUMN uri TYPE TEXT;
ALTER TABLE config
ALTER COLUMN key TYPE TEXT;
ALTER TABLE addressbook_object_search_token
ALTER COLUMN token TYPE TEXT;
ALTER TABLE external_source
ALTER COLUMN source TYPE TEXT,
ALTER COLUMN username TYPE TEXT,
ALTER COLUMN addressbook_location TYPE TEXT;
-- addressbook_object_with_metadata_view
CREATE VIEW public.addressbook_object_with_metadata_view
AS
SELECT
ABO.*, M.photo, M.full_name, M.company, M.department, M.job_title, M.email, M.telephone, M.date, M.birthday
FROM
public.addressbook_object as ABO
INNER JOIN public.addressbook_object_metadata as M ON ABO.id = M.id_addressbook_object;
ALTER VIEW public.addressbook_object_with_metadata_view OWNER TO "Contacts";
-- principal_with_group_id_view
CREATE VIEW public.principal_with_group_id_view
AS
SELECT
P.*, G.id_group
FROM
public.principal as P
LEFT OUTER JOIN public.principal_many_group_has_many_member AS G ON P.id = G.id_member;
ALTER VIEW public.principal_with_group_id_view OWNER TO "Contacts";
-- principal_id_to_addressbook_view
CREATE VIEW public.principal_id_to_addressbook_view
AS
SELECT
DISTINCT
P.id as id_principal, P.owner_id as owner_id_principal,
A.*,
R.mode, R.status
FROM
public.addressbook as A,
public.many_principal_has_many_addressbook as R,
public.principal_with_group_id_view as P
WHERE (P.id = R.id_principal OR P.id_group = R.id_principal) AND A.id = R.id_addressbook;
ALTER VIEW public.principal_id_to_addressbook_view OWNER TO "Contacts";
-- principal_id_to_addressbook_privilege_view
CREATE VIEW public.principal_id_to_addressbook_privilege_view
AS
SELECT
DISTINCT
P.id as id_principal, P.owner_id as owner_id_principal,
R.id_addressbook, R.mode, R.status
FROM
public.many_principal_has_many_addressbook as R,
public.principal_with_group_id_view as P
WHERE P.id = R.id_principal OR P.id_group = R.id_principal;
ALTER VIEW public.principal_id_to_addressbook_privilege_view OWNER TO "Contacts";
-- addressbook_object_metadata_without_photo_vcard_view
CREATE VIEW public.addressbook_object_metadata_without_photo_vcard_view
AS
SELECT
ABO.id, ABO.id_addressbook, ABO.uri, ABO.kind, ABO.md5, ABO.is_hidden, ABO.usage_frequency, ABO.created_time, ABO.modified_time,
M.full_name, M.company, M.department, M.job_title, M.email, M.telephone, M.date, M.birthday
FROM
public.addressbook_object as ABO
INNER JOIN public.addressbook_object_metadata as M ON ABO.id = M.id_addressbook_object;
ALTER VIEW public.addressbook_object_metadata_without_photo_vcard_view OWNER TO "Contacts";