From 0cdd579c809f3041df8842adb4d6f74d9cabd457 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 1 Jul 2009 13:45:51 -0400 Subject: db dbi, interfaces to sqlite and pgsql, fixes, pass individual sql statements --- lib/sisu/v0/db_indexes.rb | 61 +++++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 26 deletions(-) (limited to 'lib/sisu/v0/db_indexes.rb') diff --git a/lib/sisu/v0/db_indexes.rb b/lib/sisu/v0/db_indexes.rb index c22d5700..315ae199 100644 --- a/lib/sisu/v0/db_indexes.rb +++ b/lib/sisu/v0/db_indexes.rb @@ -22,7 +22,7 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with @@ -63,36 +63,45 @@ module SiSU_DB_index @opt,@conn,@file,@sql_type=opt,conn,file,sql_type end def create_indexes # check added from pg not tested + def conn_execute_array(sql_arr) + @conn.transaction do |conn| + sql_arr.each do |sql| + conn.execute(sql) + end + end + end def base print "\n create documents common indexes\n" unless @opt.cmd =~/q/ - @conn.execute(' - CREATE INDEX object_nr ON documents(ocn); - CREATE INDEX digest_clean ON documents(digest_clean); - CREATE INDEX digest_all ON documents(digest_all); - CREATE INDEX lev1 ON documents(lev1); - CREATE INDEX lev2 ON documents(lev2); - CREATE INDEX lev3 ON documents(lev3); - CREATE INDEX lev4 ON documents(lev4); - CREATE INDEX lev5 ON documents(lev5); - CREATE INDEX lev6 ON documents(lev6); - CREATE INDEX endnote_nr ON endnotes(nr); - CREATE INDEX digest_en ON endnotes(digest_clean); - CREATE INDEX endnote_nr_asterisk ON endnotes_asterisk(nr); - CREATE INDEX endnote_asterisk ON endnotes_asterisk(clean); - CREATE INDEX digest_en_asterisk ON endnotes_asterisk(digest_clean); - CREATE INDEX endnote_nr_plus ON endnotes_plus(nr); - CREATE INDEX endnote_plus ON endnotes_plus(clean); - CREATE INDEX digest_en_plus ON endnotes_plus(digest_clean); - CREATE INDEX title ON metadata(title); - CREATE INDEX filename ON metadata(filename) - ') unless @opt.cmd =~/q/ + sql_arr=[ + %{CREATE INDEX object_nr ON documents(ocn);}, + %{CREATE INDEX digest_clean ON documents(digest_clean);}, + %{CREATE INDEX digest_all ON documents(digest_all);}, + %{CREATE INDEX lev1 ON documents(lev1);}, + %{CREATE INDEX lev2 ON documents(lev2);}, + %{CREATE INDEX lev3 ON documents(lev3);}, + %{CREATE INDEX lev4 ON documents(lev4);}, + %{CREATE INDEX lev5 ON documents(lev5);}, + %{CREATE INDEX lev6 ON documents(lev6);}, + %{CREATE INDEX endnote_nr ON endnotes(nr);}, + %{CREATE INDEX digest_en ON endnotes(digest_clean);}, + %{CREATE INDEX endnote_nr_asterisk ON endnotes_asterisk(nr);}, + %{CREATE INDEX endnote_asterisk ON endnotes_asterisk(clean);}, + %{CREATE INDEX digest_en_asterisk ON endnotes_asterisk(digest_clean);}, + %{CREATE INDEX endnote_nr_plus ON endnotes_plus(nr);}, + %{CREATE INDEX endnote_plus ON endnotes_plus(clean);}, + %{CREATE INDEX digest_en_plus ON endnotes_plus(digest_clean);}, + %{CREATE INDEX title ON metadata(title);}, + %{CREATE INDEX filename ON metadata(filename)}, + ] + conn_execute_array(sql_arr) end def text print "\n create documents text indexes\n" unless @opt.cmd =~/q/ - @conn.execute(' - CREATE INDEX clean ON documents(clean); - CREATE INDEX endnote ON endnotes(clean); - ') unless @opt.cmd =~/q/ + sql_arr=[ + %{CREATE INDEX clean ON documents(clean);}, + %{CREATE INDEX endnote ON endnotes(clean);} + ] + conn_execute_array(sql_arr) end base @opt.cmd=~/D/ || @opt.mod=~/psql/ ? '' : text -- cgit v1.2.3