Index: openacs-4/packages/search/search.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/search/search.info,v
diff -u -r1.46.2.1 -r1.46.2.2
--- openacs-4/packages/search/search.info 21 Mar 2019 16:33:30 -0000 1.46.2.1
+++ openacs-4/packages/search/search.info 1 Mar 2021 18:20:47 -0000 1.46.2.2
@@ -9,7 +9,7 @@
f
t
-
+
OpenACS
Site wide search
2017-08-06
@@ -18,7 +18,7 @@
GPL version 2
3
-
+
Index: openacs-4/packages/search/sql/oracle/search-packages-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/search/sql/oracle/search-packages-create.sql,v
diff -u -r1.5 -r1.5.12.1
--- openacs-4/packages/search/sql/oracle/search-packages-create.sql 7 Jun 2008 20:29:01 -0000 1.5
+++ openacs-4/packages/search/sql/oracle/search-packages-create.sql 1 Mar 2021 18:20:47 -0000 1.5.12.1
@@ -47,7 +47,22 @@
object_id acs_objects.object_id%TYPE,
event search_observer_queue.event%TYPE
) is
+ l_count integer;
begin
+ --
+ -- We see cases, where the object to be removed from the observer
+ -- queue does not exist anymore. Probably, this is due to some
+ -- race condition.
+ --
+
+ if p_event = 'DELETE' then
+ select count(*) from acs_objects into l_count
+ where object_id = p_object_id);
+ if l_count = 0 then
+ return;
+ end if;
+ end if;
+
insert into search_observer_queue (
object_id,
event
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/search/sql/oracle/upgrade/upgrade-5.10.0d3-5.10.0d4.sql'.
Fisheye: No comparison available. Pass `N' to diff?
Index: openacs-4/packages/search/sql/postgresql/search-packages-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/search/sql/postgresql/search-packages-create.sql,v
diff -u -r1.7 -r1.7.6.1
--- openacs-4/packages/search/sql/postgresql/search-packages-create.sql 30 Mar 2013 18:50:29 -0000 1.7
+++ openacs-4/packages/search/sql/postgresql/search-packages-create.sql 1 Mar 2021 18:20:47 -0000 1.7.6.1
@@ -1,35 +1,47 @@
-- Search Observer Package
--
--- @cvs-id $Id$
+-- @cvs-id $Id$
--
-- procedure search_observer__enqueue/2
--
+select define_function_args('search_observer__enqueue','object_id,event');
+
CREATE OR REPLACE FUNCTION search_observer__enqueue(
p_object_id integer,
p_event varchar
) RETURNS integer AS $$
DECLARE
BEGIN
+ --
+ -- We see cases, where the object to be removed from the observer
+ -- queue does not exist anymore. Probably, this is due to some
+ -- race condition.
+ --
+ if p_event = 'DELETE' then
+
+ IF NOT EXISTS (select 1 from acs_objects where object_id = p_object_id) then
+ return 0;
+ end if;
+
+ end if;
+
insert into search_observer_queue (
- object_id,
- event
+ object_id,
+ event
) values (
p_object_id,
- p_event
+ p_event
);
return 0;
END;
$$ LANGUAGE plpgsql;
-select define_function_args('search_observer__enqueue','object_id,event');
-
-
--
-- procedure search_observer__dequeue/3
--
@@ -41,8 +53,8 @@
DECLARE
BEGIN
- delete from search_observer_queue
- where object_id = p_object_id
+ delete from search_observer_queue
+ where object_id = p_object_id
and event = p_event
and to_char(event_date,'yyyy-mm-dd hh24:mi:ss.us-tz') = to_char(p_event_date,'yyyy-mm-dd hh24:mi:ss.us-tz');
@@ -52,4 +64,3 @@
$$ LANGUAGE plpgsql;
select define_function_args('search_observer__dequeue','object_id,event_date,event');
-
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/search/sql/postgresql/upgrade/upgrade-5.10.0d3-5.10.0d4.sql'.
Fisheye: No comparison available. Pass `N' to diff?