#!/usr/bin/perl -w

=head1 NAME

mkRS.pl - Скрипт для создания таблиц для русского поиска 

B<$base> информации о вопросах 

=head1 SYNOPSIS

mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно 
        без предупреждения удаляя их) и очищает ProcessedBySearch.



=head1 DESCRIPTION

Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch,
добавляет информацию в таблицы word2question, nests, nf. Поле 
ProcessedBySearch устанавливается в 1. Обрабатывает 
Questions_per_cicle*cicles_number вопросов, сбрасывая 
информацию в базу каждые Questions_per_cicle вопросов.
Значения по умолчанию:
Questions_per_cicle=500;
cicles_number=1.


=head1 AUTHOR

Роман Семизаров


=cut


use locale;
use DBI;
use POSIX qw (locale_h);
use lib "../lib";
use chgkfiles;
use dbchgk;
my $minstop=2000;

my $DUMPDIR = $ENV{DUMPDIR} || "../dump";

open (STDERR,">$DUMPDIR/errors");
do "common.pl";
do "chgk.cnf";


die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize;

checktable('word2question','delete');

checktable('nests','delete');

checktable('nf','delete');


print "Creating word2question table...\n";

	mydo("CREATE TABLE word2question (
		id     INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                            KEY idkey (id),
		word   INT UNSIGNED NOT NULL, 
                            KEY wordkey (word),
		questions  MEDIUMBLOB
               ) type MyISAM"
            )

	or die "Can't create WORD2QUESTION table: $!\n";

print "Creating nests table...\n";

	mydo("CREATE TABLE nests (
		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                            KEY idkey (id),
		w1   CHAR($maxwsize) BINARY NOT NULL, 
                            KEY w1key (w1),
		w2   INT UNSIGNED NOT NULL,
                            KEY w2key (w2)             
	) type MyISAM")

	or die "Can't create NESTS table: $!\n";




print "Creating nf table...\n";


mydo("CREATE TABLE nf (
		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                    KEY idkey (id),
		word CHAR(30) BINARY NOT NULL, 
                            KEY wordkey (word),
	        flag  CHAR(5),
	        number INT UNSIGNED
  ) type MyISAM") or die "Can't create NF table: $!\n";


mydo("UPDATE Questions SET ProcessedBySearch=NULL");








