aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/db_indexes.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/db_indexes.rb')
-rw-r--r--lib/sisu/v0/db_indexes.rb61
1 files changed, 35 insertions, 26 deletions
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