Index: openacs-4/packages/intermedia-driver/sql/oracle/intermedia-driver-tables-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/intermedia-driver/sql/oracle/intermedia-driver-tables-create.sql,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/intermedia-driver/sql/oracle/intermedia-driver-tables-create.sql 7 May 2008 15:15:12 -0000 1.1.2.1 +++ openacs-4/packages/intermedia-driver/sql/oracle/intermedia-driver-tables-create.sql 8 May 2008 14:52:46 -0000 1.1.2.2 @@ -24,33 +24,50 @@ -- Partly ported from ACES. -- Central table for site-wide search. -create table site_wide_index ( - object_id integer + +declare + v_aux integer; +begin + select count(table_name) into v_aux from user_tables where table_name = 'SITE_WIDE_INDEX'; + IF v_aux = 0 THEN + + execute immediate 'create table site_wide_index ( + object_id integer constraint sws_index_pk primary key constraint sws_index_fk references acs_objects(object_id) on delete cascade, - object_name varchar(4000), - indexed_content clob, - -- Dirk Gomez: no not null constraint because we also want to - -- be able to index objects which are not tied to an object, - -- in particular people. - package_id integer - constraint swi_package_id_fk - references apm_packages - on delete cascade, - -- Dirk Gomez: That's the place to put an object's relevant - -- date which is part of the ranking function. In calendar - -- this is the item date, in forum it could be the last reply - -- date to a thread etc. - relevant_date date -); + object_name varchar(4000), + indexed_content clob, + -- Dirk Gomez: no not null constraint because we also want to + -- be able to index objects which are not tied to an object, + -- in particular people. + package_id integer + constraint swi_package_id_fk + references apm_packages + on delete cascade, + -- Dirk Gomez: That''s the place to put an object''s relevant + -- date which is part of the ranking function. In calendar + -- this is the item date, in forum it could be the last reply + -- date to a thread etc. + relevant_date date + )'; + END IF; --- Intermedia sometimes is painful to debug, so I added a logging --- mechanism which relies on Oracle's autonomous transactions: DML --- statements are committed immediately so you can access this data --- from a different session right away. -create table sws_log_messages ( - logmessage varchar2(4000), - logtime date default sysdate); + select count(table_name) into v_aux from user_tables where table_name = 'SWS_LOG_MESSAGES'; + IF v_aux = 0 THEN + -- Intermedia sometimes is painful to debug, so I added a logging + -- mechanism which relies on Oracle's autonomous transactions: DML + -- statements are committed immediately so you can access this data + -- from a different session right away. + + execute immediate 'create table sws_log_messages ( + logmessage varchar2(4000), + logtime date default sysdate + )'; + + END IF; +END; +/ + exit;