libLSSearch =========== This package contains classes for searching database records. Its a library with reusable (subclassed) classes and a command bundle containing commands. TODO: document the split between the command classes and the SQL generation classes Defaults ======== LSFullSearchDebugEnabled SQL === SQL issued by person fullsearch ---snip--- *APPLOG* fullsearch: 'helge' *APPLOG* subsearch: '<0x08306F1C[LSFullSearch]: text='helge' entity=Person related-entities=Address includes-own-attrs>' *APPLOG* qualifier: 0x083963B4 *APPLOG*PG SQL: SELECT DISTINCT t1.anniversary, t1.assistant_name, t1.associated_categories, t1.associated_company, t1.associated_contacts, t1.birthday, t1.boss_name, t1.company_id, t1.contact_id, t1.db_status, t1.degree, t1.department, t1.description, t1.dir_server, t1.email_alias, t1.fileas, t1.firstname, t1.freebusy_url, t1.im_address, t1.pop3_account, t1.is_account, t1.is_customer, t1.is_extra_account, t1.is_intra_account, t1.is_locked, t1.is_person, t1.is_private, t1.is_readonly, t1.is_template_user, t1.keywords, t1.login, t1.middlename, t1.name, t1.name_affix, t1.name_title, t1.number, t1.object_version, t1.occupation, t1.office, t1.owner_id, t1.partner_name, t1.password, t1.priority, t1.salutation, t1.sensitivity, t1.sex, t1.show_email2_as, t1.show_email3_as, t1.show_email_as, t1.source_url, t1.template_user_id, t1.url FROM person t1, address t2 WHERE (((LOWER(t1.assistant_name) LIKE '%helge%' OR LOWER(t1.associated_categories) LIKE '%helge%' OR LOWER(t1.associated_company) LIKE '%helge%' OR LOWER(t1.associated_contacts) LIKE '%helge%' OR LOWER(t1.boss_name) LIKE '%helge%' OR LOWER(t1.degree) LIKE '%helge%' OR LOWER(t1.department) LIKE '%helge%' OR LOWER(t1.description) LIKE '%helge%' OR LOWER(t1.dir_server) LIKE '%helge%' OR LOWER(t1.email_alias) LIKE '%helge%' OR LOWER(t1.fileas) LIKE '%helge%' OR LOWER(t1.firstname) LIKE '%helge%' OR LOWER(t1.freebusy_url) LIKE '%helge%' OR LOWER(t1.im_address) LIKE '%helge%' OR LOWER(t1.pop3_account) LIKE '%helge%' OR LOWER(t1.keywords) LIKE '%helge%' OR LOWER(t1.login) LIKE '%helge%' OR LOWER(t1.middlename) LIKE '%helge%' OR LOWER(t1.name) LIKE '%helge%' OR LOWER(t1.name_affix) LIKE '%helge%' OR LOWER(t1.name_title) LIKE '%helge%' OR LOWER(t1.number) LIKE '%helge%' OR t1.object_version LIKE '%helge%' OR LOWER(t1.occupation) LIKE '%helge%' OR LOWER(t1.office) LIKE '%helge%' OR LOWER(t1.partner_name) LIKE '%helge%' OR LOWER(t1.priority) LIKE '%helge%' OR LOWER(t1.salutation) LIKE '%helge%' OR t1.sensitivity LIKE '%helge%' OR LOWER(t1.sex) LIKE '%helge%' OR LOWER(t1.show_email2_as) LIKE '%helge%' OR LOWER(t1.show_email3_as) LIKE '%helge%' OR LOWER(t1.show_email_as) LIKE '%helge%' OR LOWER(t1.source_url) LIKE '%helge%' OR LOWER(t1.url) LIKE '%helge%' OR LOWER(t2.zipcity) LIKE '%helge%' OR LOWER(t2.country) LIKE '%helge%' OR LOWER(t2.name1) LIKE '%helge%' OR LOWER(t2.name2) LIKE '%helge%' OR LOWER(t2.name3) LIKE '%helge%' OR LOWER(t2.source_url) LIKE '%helge%' OR LOWER(t2.state) LIKE '%helge%' OR LOWER(t2.street) LIKE '%helge%' OR LOWER(t2.type) LIKE '%helge%' OR LOWER(t2.zip) LIKE '%helge%' )) AND (t1.db_status <> 'archived')) AND ((t1.is_template_user is NULL) OR (t1.is_template_user = 0)) AND t1.company_id = t2.company_id *APPLOG* subsearch: '<0x08306D54[LSFullSearch]: text='helge' entity=Person related-entities=Telephone>' *APPLOG* qualifier: 0x0836EB84 *APPLOG* PG SQL: SELECT DISTINCT t2.anniversary, t2.assistant_name, t2.associated_categories, t2.associated_company, t2.associated_contacts, t2.birthday, t2.boss_name, t2.company_id, t2.contact_id, t2.db_status, t2.degree, t2.department, t2.description, t2.dir_server, t2.email_alias, t2.fileas, t2.firstname, t2.freebusy_url, t2.im_address, t2.pop3_account, t2.is_account, t2.is_customer, t2.is_extra_account, t2.is_intra_account, t2.is_locked, t2.is_person, t2.is_private, t2.is_readonly, t2.is_template_user, t2.keywords, t2.login, t2.middlename, t2.name, t2.name_affix, t2.name_title, t2.number, t2.object_version, t2.occupation, t2.office, t2.owner_id, t2.partner_name, t2.password, t2.priority, t2.salutation, t2.sensitivity, t2.sex, t2.show_email2_as, t2.show_email3_as, t2.show_email_as, t2.source_url, t2.template_user_id, t2.url FROM telephone t1, person t2 WHERE (((LOWER(t1.info) LIKE '%helge%' OR LOWER(t1.number) LIKE '%helge%' OR LOWER(t1.real_number) LIKE '%helge%' OR LOWER(t1.type) LIKE '%helge%' OR LOWER(t1.url) LIKE '%helge%' )) AND (t2.db_status <> 'archived')) AND ((t2.is_template_user is NULL) OR (t2.is_template_user = 0)) AND t2.company_id = t1.company_id *APPLOG* subsearch: '<0x08306B4C[LSFullSearch]: text='helge' entity=Person related-entities=CompanyInfo>' *APPLOG* qualifier: 0x0839C144 *APPLOG* PG SQL: SELECT DISTINCT t2.anniversary, t2.assistant_name, t2.associated_categories, t2.associated_company, t2.associated_contacts, t2.birthday, t2.boss_name, t2.company_id, t2.contact_id, t2.db_status, t2.degree, t2.department, t2.description, t2.dir_server, t2.email_alias, t2.fileas, t2.firstname, t2.freebusy_url, t2.im_address, t2.pop3_account, t2.is_account, t2.is_customer, t2.is_extra_account, t2.is_intra_account, t2.is_locked, t2.is_person, t2.is_private, t2.is_readonly, t2.is_template_user, t2.keywords, t2.login, t2.middlename, t2.name, t2.name_affix, t2.name_title, t2.number, t2.object_version, t2.occupation, t2.office, t2.owner_id, t2.partner_name, t2.password, t2.priority, t2.salutation, t2.sensitivity, t2.sex, t2.show_email2_as, t2.show_email3_as, t2.show_email_as, t2.source_url, t2.template_user_id, t2.url FROM company_info t1, person t2 WHERE (((LOWER(t1.comment) LIKE '%helge%' )) AND (t2.db_status <> 'archived')) AND ((t2.is_template_user is NULL) OR (t2.is_template_user = 0)) AND t2.company_id = t1.company_id *APPLOG* fullsearch done. *APPLOG* fullsearch: check permissions ... *APPLOG* PG SQL: SELECT t1.owner_id, t1.is_private, t1.is_readonly, t1.company_id FROM person t1 WHERE t1.company_id IN (554680,550800,35200) *APPLOG* PG SQL: SELECT DISTINCT t1.anniversary, t1.assistant_name, t1.associated_categories, t1.associated_company, t1.associated_contacts, t1.boss_name, t1.company_id, t1.contact_id, t1.db_status, t1.department, t1.description, t1.dir_server, t1.email, t1.email_alias, t1.fileas, t1.freebusy_url, t1.im_address, t1.is_location_team, t1.is_team, t1.login, t1.name_affix, t1.name_title, t1.number, t1.object_version, t1.occupation, t1.office, t1.owner_id, t1.partner_name, t1.sensitivity FROM team t1, company_assignment t2 WHERE t2.sub_company_id = 550800 AND t1.company_id = t2.company_id *APPLOG* PG SQL: SELECT t1.object_id, t1.auth_id, t1.permissions FROM object_acl t1 WHERE t1.object_id in ('35200', '554680', '550800') *APPLOG* check read-access of 2 gids ... *APPLOG* fullsearch: checked permissions. *APPLOG* PG SQL: SELECT DISTINCT t1.attribute, t1.company_id, t1.company_value_id, t1.db_status, t1.is_enum, t1.is_label_localized, t1.label, t1.type, t1.uid, t1.value_string FROM company_value t1 WHERE t1.company_id IN (550800,35200) *APPLOG* PG SQL: SELECT DISTINCT t1.company_id, t1.db_status, t1.info, t1.number, t1.real_number, t1.telephone_id, t1.type, t1.url FROM telephone t1 WHERE t1.company_id IN (550800,35200) ---snap---