Commit d8498ba0 authored by mitshel's avatar mitshel
Browse files

Внесено исправление в процедуру sp_mark_dbl, позволяющее пересчитывать...

Внесено исправление в процедуру sp_mark_dbl, позволяющее пересчитывать дубликаты из режима yes в режим strong и наоборот без предварительной очистки.
parent 256249a4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ maxitems = 60
# dublicates_find = no     - поиск дубликатов не производится (ранее найденные дубликаты так и остаются с пометкой дубликата в базе данных)
# dublicates_find = yes    - производится поиск дубликатов на основании спсика авторов и названия произведения
# dublicates_find = strong - производится поиск дубликатов на основании полей title, format и filesize
# dublicates_find = clear  - производится очистка данных о дубликатах в БД (необходимо выполнить если осуществлен переход со значения  yes на strong)
# dublicates_find = clear  - производится очистка данных о дубликатах в БД 
# при этом дубликат всегда помещается в базу, но помечается как дубликат и может исключаться из выдачи
# при поиске по наименованиям и по авторам. В случае поиска по каталогам, книги, помеченные как дубликаты все равно будут показываться
dublicates_find = yes
+6 −4
Original line number Diff line number Diff line
@@ -152,8 +152,9 @@ BEGIN
  DECLARE idx,prev,current,orig_id INT;
  DECLARE ids VARCHAR(512);
  DECLARE cur CURSOR for select GROUP_CONCAT(DISTINCT book_id order by filesize DESC SEPARATOR ':') as ids 
                      from books where avail<>0 group by BOOK_CMPSTR(book_id,cmp_type) having count(*)>1 and SUM(CASE WHEN (doublicat=0) THEN 1 ELSE 0 END)<>1;
                      from books where avail<>0 group by BOOK_CMPSTR(book_id,cmp_type) having SUM(IF(doublicat=0,1,0))<>1;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

  IF cmp_type=1 or cmp_type=2 THEN
     OPEN cur;

@@ -181,6 +182,7 @@ BEGIN
  IF cmp_type=3 THEN
     UPDATE books SET doublicat=0;
  END IF;

END //

CREATE PROCEDURE sp_newinfo(period INT)
+6 −4
Original line number Diff line number Diff line
@@ -40,8 +40,9 @@ BEGIN
  DECLARE idx,prev,current,orig_id INT;
  DECLARE ids VARCHAR(512);
  DECLARE cur CURSOR for select GROUP_CONCAT(DISTINCT book_id order by filesize DESC SEPARATOR ':') as ids 
                      from books where avail<>0 group by BOOK_CMPSTR(book_id,cmp_type) having count(*)>1 and SUM(CASE WHEN (doublicat=0) THEN 1 ELSE 0 END)<>1;
                      from books where avail<>0 group by BOOK_CMPSTR(book_id,cmp_type) having SUM(IF(doublicat=0,1,0))<>1;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

  IF cmp_type=1 or cmp_type=2 THEN
     OPEN cur;

@@ -69,6 +70,7 @@ BEGIN
  IF cmp_type=3 THEN
     UPDATE books SET doublicat=0;
  END IF;

END //

DELIMITER ;