aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v2/db_create.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v2/db_create.rb')
-rw-r--r--lib/sisu/v2/db_create.rb591
1 files changed, 591 insertions, 0 deletions
diff --git a/lib/sisu/v2/db_create.rb b/lib/sisu/v2/db_create.rb
new file mode 100644
index 00000000..d46fd4c3
--- /dev/null
+++ b/lib/sisu/v2/db_create.rb
@@ -0,0 +1,591 @@
+# coding: utf-8
+=begin
+
+ * Name: SiSU
+
+ * Description: a framework for document structuring, publishing and search
+
+ * Author: Ralph Amissah
+
+ * Copyright: (C) 1997 - 2010, Ralph Amissah, All Rights Reserved.
+
+ * License: GPL 3 or later:
+
+ SiSU, a framework for document structuring, publishing and search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ 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
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see <http://www.gnu.org/licenses/>.
+
+ If you have Internet connection, the latest version of the GPL should be
+ available at these locations:
+ <http://www.fsf.org/licensing/licenses/gpl.html>
+ <http://www.gnu.org/licenses/gpl.html>
+
+ <http://www.jus.uio.no/sisu/gpl.fsf/toc.html>
+ <http://www.jus.uio.no/sisu/gpl.fsf/doc.html>
+ <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt>
+
+ * SiSU uses:
+ * Standard SiSU markup syntax,
+ * Standard SiSU meta-markup syntax, and the
+ * Standard SiSU object citation numbering and system
+
+ * Hompages:
+ <http://www.jus.uio.no/sisu>
+ <http://www.sisudoc.org>
+
+ * Download:
+ <http://www.jus.uio.no/sisu/SiSU/download.html>
+
+ * Ralph Amissah
+ <ralph@amissah.com>
+ <ralph.amissah@gmail.com>
+
+ ** Description: modules shared by the different db types, dbi, postgresql,
+ sqlite
+
+=end
+module SiSU_DB_create
+ require "#{SiSU_lib}/db_columns" # db_columns.rb
+ class Create < SiSU_DB_columns::Column_size
+ require "#{SiSU_lib}/sysenv" # sysenv.rb
+ @@dl=nil
+ def initialize(opt,conn,file,sql_type='pg')
+ @opt,@conn,@file,@sql_type=opt,conn,file,sql_type
+ @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX
+ @comment=Comment.new(@conn,@sql_type)
+ @@dl ||=SiSU_Env::Info_env.new.digest.length
+ end
+ def available
+ DBI.available_drivers.each do |driver|
+ puts "Driver: #{driver}"
+ DBI.data_sources(driver).each do |dsn|
+ puts "\tDatasource: #{dsn}"
+ end
+ end
+ end
+ def create_db
+ @env=SiSU_Env::Info_env.new(@opt.fns)
+ tell=SiSU_Screen::Ansi.new(@opt.cmd,'invert','Create PG db:',%{"SiSU_#{@env.path.stub_pwd}"})
+ tell.colorize unless @opt.cmd =~/q/
+ SiSU_Env::System_call.new.create_pg_db(@env.path.stub_pwd) #watch use of path.stub_pwd instead of stub
+ end
+ def output_dir?
+ dir=SiSU_Env::Info_env.new('')
+ if @opt.cmd =~/d/
+ dir.path.webserv_stub_ensure
+ end
+ end
+ def create_table
+ def metadata
+ print %{
+ currently using sisu dbi module
+ to be populated from documents files
+ create tables metadata
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE metadata (
+ tid BIGINT PRIMARY KEY,
+ title VARCHAR(#{lt_title}) NULL,
+ subtitle VARCHAR(#{lt_subtitle}) NULL,
+ author VARCHAR(#{lt_author}) NULL,
+/* plan to replace creator field, currently used, with author field */
+ creator VARCHAR(#{lt_author}) NULL,
+ author_title VARCHAR(#{lt_author_title}) NULL,
+ author_nationality VARCHAR(#{lt_author_nationality}) NULL,
+ illustrator VARCHAR(#{lt_illustrator}) NULL,
+ translator VARCHAR(#{lt_translator}) NULL,
+ subject VARCHAR(#{lt_subject}) NULL,
+ date VARCHAR(#{lt_date}) NULL,
+ date_added_to_site VARCHAR(#{lt_date}) NULL,
+ date_created VARCHAR(#{lt_date}) NULL,
+ date_issued VARCHAR(#{lt_date}) NULL,
+ date_available VARCHAR(#{lt_date}) NULL,
+ date_valid VARCHAR(#{lt_date}) NULL,
+ date_modified VARCHAR(#{lt_date}) NULL,
+ date_translated VARCHAR(#{lt_date}) NULL,
+/* date DATE, */
+/* date_added_to_site DATE, */
+/* date_created DATE, */
+/* date_issued DATE, */
+/* date_available DATE, */
+/* date_valid DATE, */
+/* date_modified DATE, */
+/* date_translated DATE, */
+ type VARCHAR(#{lt_type}) NULL,
+ description VARCHAR(#{lt_description}) NULL,
+ publisher VARCHAR(#{lt_publisher}) NULL,
+ contributor VARCHAR(#{lt_contributor}) NULL,
+ prepared_by VARCHAR(#{lt_prepared_by}) NULL,
+ digitized_by VARCHAR(#{lt_digitized_by}) NULL,
+ format VARCHAR(#{lt_format}) NULL,
+ identifier VARCHAR(#{lt_identifier}) NULL,
+ source VARCHAR(#{lt_source}) NULL,
+ language VARCHAR(#{lt_language}) NULL,
+ language_original VARCHAR(#{lt_language_original}) NULL,
+ relation VARCHAR(#{lt_relation}) NULL,
+ coverage VARCHAR(#{lt_coverage}) NULL,
+ rights VARCHAR(#{lt_rights}) NULL,
+ copyright VARCHAR(#{lt_copyright}) NULL,
+ owner VARCHAR(#{lt_owner}) NULL,
+ keywords VARCHAR(#{lt_keywords}) NULL,
+ comment VARCHAR(#{lt_comment}) NULL,
+ loc VARCHAR(#{lt_loc}) NULL,
+ dewey VARCHAR(#{lt_dewey}) NULL,
+ isbn VARCHAR(#{lt_isbn}) NULL,
+ pg VARCHAR(#{lt_pg}) NULL,
+ abstract VARCHAR(#{lt_abstract}) NULL,
+ prefix_a TEXT NULL,
+ prefix_b TEXT NULL,
+ skin VARCHAR(#{lt_skin}) NULL,
+ markup VARCHAR(#{lt_markup}) NULL,
+ links VARCHAR(#{lt_links}) NULL,
+ information VARCHAR(#{lt_information}) NULL,
+ contact VARCHAR(#{lt_contact}) NULL,
+ suffix VARCHAR(#{lt_suffix}) NULL,
+ filename VARCHAR(#{lt_filename}) NULL UNIQUE,
+ types CHAR(#{lt_types}) NULL,
+ subj VARCHAR(#{lt_subj}) NULL,
+ original_publication VARCHAR(#{lt_orig_pub}) NULL,
+ original_publication_date VARCHAR(#{lt_orig_pub_date}) NULL,
+ original_publication_institution VARCHAR(#{lt_orig_pub_institution}) NULL,
+ original_publication_nationality VARCHAR(#{lt_orig_pub_nationality}) NULL,
+ writing_focus_nationality VARCHAR(#{lt_writing_focus_nationality}) NULL,
+ topic_register VARCHAR(#{lt_topic_register}) NULL
+ );
+ })
+ @comment.metadata
+ end
+ def documents # create documents base
+ print %{
+ to be populated from documents files
+ create tables documents document_trade document_env
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE documents (
+ lid BIGINT PRIMARY KEY,
+ metadata_tid BIGINT REFERENCES metadata,
+ ocn SMALLINT,
+ ocnd VARCHAR(6),
+ ocns VARCHAR(6),
+ clean TEXT NULL,
+ body TEXT NULL,
+ seg VARCHAR(#{document_seg}) NULL,
+ lev_an VARCHAR(1),
+ lev SMALLINT NULL,
+ lev1 SMALLINT,
+ lev2 SMALLINT,
+ lev3 SMALLINT,
+ lev4 SMALLINT,
+ lev5 SMALLINT,
+ lev6 SMALLINT,
+ en_a SMALLINT NULL,
+ en_z SMALLINT NULL,
+ en_a_asterisk SMALLINT NULL,
+ en_z_asterisk SMALLINT NULL,
+ en_a_plus SMALLINT NULL,
+ en_z_plus SMALLINT NULL,
+ t_of VARCHAR(16),
+ t_is VARCHAR(16),
+ node VARCHAR(16) NULL,
+ parent VARCHAR(16) NULL,
+ digest_clean CHAR(#{@@dl}),
+ digest_all CHAR(#{@@dl}),
+ types CHAR(1) NULL
+ );
+ })
+ @comment.documents
+ end
+ def endnotes
+ print %{
+ to be populated from document files
+ create tables endnotes
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE endnotes (
+ nid BIGINT PRIMARY KEY,
+ document_lid BIGINT REFERENCES documents,
+ nr SMALLINT,
+ clean TEXT NULL,
+ body TEXT NULL,
+ ocn SMALLINT,
+ ocnd VARCHAR(6),
+ ocns VARCHAR(6),
+ digest_clean CHAR(#{@@dl}),
+ metadata_tid BIGINT REFERENCES metadata
+ );
+ })
+ @comment.endnotes
+ end
+ def endnotes_asterisk
+ print %{
+ to be populated from document files
+ create tables endnotes_asterisk
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE endnotes_asterisk (
+ nid BIGINT PRIMARY KEY,
+ document_lid BIGINT REFERENCES documents,
+ nr SMALLINT,
+ clean TEXT NULL,
+ body TEXT NULL,
+ ocn SMALLINT,
+ ocnd VARCHAR(6),
+ ocns VARCHAR(6),
+ digest_clean CHAR(#{@@dl}),
+ metadata_tid BIGINT REFERENCES metadata
+ );
+ })
+ @comment.endnotes_asterisk
+ end
+ def endnotes_plus
+ print %{
+ to be populated from document files
+ create tables endnotes_plus
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE endnotes_plus (
+ nid BIGINT PRIMARY KEY,
+ document_lid BIGINT REFERENCES documents,
+ nr SMALLINT,
+ clean TEXT NULL,
+ body TEXT NULL,
+ ocn SMALLINT,
+ ocnd VARCHAR(6),
+ ocns VARCHAR(6),
+ digest_clean CHAR(#{@@dl}),
+ metadata_tid BIGINT REFERENCES metadata
+ );
+ })
+ @comment.endnotes_plus
+ end
+ def urls # create documents file links mapping
+ print %{
+ currently using sisu dbi module
+ to be populated from documents files
+ create tables urls
+ data import through ruby transfer
+ } unless @opt.cmd =~/q/
+ @conn.execute(%{
+ CREATE TABLE urls (
+ metadata_tid BIGINT REFERENCES metadata,
+ plaintext varchar(512),
+ html_toc varchar(512),
+ html_doc varchar(512),
+ xhtml varchar(512),
+ xml_sax varchar(512),
+ xml_dom varchar(512),
+ odf varchar(512),
+ pdf_p varchar(512),
+ pdf_l varchar(512),
+ concordance varchar(512),
+ latex_p varchar(512),
+ latex_l varchar(512),
+ digest varchar(512),
+ manifest varchar(512),
+ markup varchar(512),
+ sisupod varchar(512)
+ );
+ })
+ @comment.urls
+ end
+ self
+ end
+ end
+ class Comment
+ def initialize(conn,sql_type='pg')
+ @conn=conn
+ if sql_type =~ /pg/; psql
+ else none
+ end
+ end
+ def psql
+ def conn_execute_array(sql_arr)
+ @conn.transaction do |conn|
+ sql_arr.each do |sql|
+ conn.execute(sql)
+ end
+ end
+ end
+ def metadata
+ sql_arr=[
+ %{COMMENT ON Table metadata
+ IS 'contains SiSU documents metadata with metadata';},
+ %{COMMENT ON COLUMN metadata.tid
+ IS 'unique';},
+ %{COMMENT ON COLUMN metadata.filename
+ IS 'document filename';},
+ %{COMMENT ON COLUMN metadata.title
+ IS 'metadata title (dublin core element 1)';},
+ %{COMMENT ON COLUMN metadata.subtitle
+ IS 'document subtitle';},
+ %{COMMENT ON COLUMN metadata.creator
+ IS 'metadata creator (dublin core element 2)';},
+ %{COMMENT ON COLUMN metadata.author
+ IS 'metadata author (dublin core element 2)';},
+ %{COMMENT ON COLUMN metadata.illustrator
+ IS 'metadata illustrator';},
+ %{COMMENT ON COLUMN metadata.translator
+ IS 'metadata translator';},
+ %{COMMENT ON COLUMN metadata.subject
+ IS 'metadata subject (dublin core element 3)';},
+ %{COMMENT ON COLUMN metadata.date
+ IS 'metadata date (dublin core element 7)';},
+ %{COMMENT ON COLUMN metadata.date_created
+ IS 'metadata date created (dublin core)';},
+ %{COMMENT ON COLUMN metadata.date_issued
+ IS 'metadata date of issue (dublin core)';},
+ %{COMMENT ON COLUMN metadata.date_available
+ IS 'metadata date available (dublin core)';},
+ %{COMMENT ON COLUMN metadata.date_valid
+ IS 'metadata date valid (dublin core)';},
+ %{COMMENT ON COLUMN metadata.date_modified
+ IS 'metadata date modified (dublin core)';},
+ %{COMMENT ON COLUMN metadata.type
+ IS 'metadata type (dublin core element 8)';},
+ %{COMMENT ON COLUMN metadata.description
+ IS 'metadata description (dublin core element 4)';},
+ %{COMMENT ON COLUMN metadata.publisher
+ IS 'metadata publisher (dublin core element 5)';},
+ %{COMMENT ON COLUMN metadata.contributor
+ IS 'metadata contributor (dublin core element 6)';},
+ %{COMMENT ON COLUMN metadata.prepared_by
+ IS 'metadata markup prepared by';},
+ %{COMMENT ON COLUMN metadata.digitized_by
+ IS 'metadata digitized by';},
+ %{COMMENT ON COLUMN metadata.format
+ IS 'metadata format (dublin core element 9)';},
+ %{COMMENT ON COLUMN metadata.identifier
+ IS 'metadata identifier (dublin core element 10)';},
+ %{COMMENT ON COLUMN metadata.source
+ IS 'metadata source (dublin core element 11)';},
+ %{COMMENT ON COLUMN metadata.language
+ IS 'metadata language (dublin core element 12)';},
+ %{COMMENT ON COLUMN metadata.language_original
+ IS 'metadata original language';},
+ %{COMMENT ON COLUMN metadata.relation
+ IS 'metadata (dublin core element 13)';},
+ %{COMMENT ON COLUMN metadata.coverage
+ IS 'metadata coverage (dublin core element 14)';},
+ %{COMMENT ON COLUMN metadata.rights
+ IS 'metadata rights / copyright / license (dublin core element 15)';},
+ %{COMMENT ON COLUMN metadata.owner
+ IS 'metadata owner';},
+ %{COMMENT ON COLUMN metadata.keywords
+ IS 'metadata keywords';},
+ %{COMMENT ON COLUMN metadata.comment
+ IS 'metadata comment';},
+ %{COMMENT ON COLUMN metadata.abstract
+ IS 'metadata abstract';},
+ %{COMMENT ON COLUMN metadata.loc
+ IS 'metadata library of congress';},
+ %{COMMENT ON COLUMN metadata.dewey
+ IS 'metadata dewey';},
+ %{COMMENT ON COLUMN metadata.isbn
+ IS 'metadata isbn';},
+ %{COMMENT ON COLUMN metadata.pg
+ IS 'metadata project gutenberg number';},
+ %{COMMENT ON COLUMN metadata.prefix_a
+ IS 'metadata prefix';},
+ %{COMMENT ON COLUMN metadata.prefix_b
+ IS 'metadata prefix';},
+ %{COMMENT ON COLUMN metadata.skin
+ IS 'metadata sisu skin';},
+ %{COMMENT ON COLUMN metadata.markup
+ IS 'metadata markup source';},
+ %{COMMENT ON COLUMN metadata.links
+ IS 'metadata links';},
+ %{COMMENT ON COLUMN metadata.information
+ IS 'metadata information';},
+ %{COMMENT ON COLUMN metadata.contact
+ IS 'metadata contact';},
+ %{COMMENT ON COLUMN metadata.suffix
+ IS 'metadata sisu suffix (output related)';},
+ %{COMMENT ON COLUMN metadata.filename
+ IS 'metadata source filename';},
+ %{COMMENT ON COLUMN metadata.types
+ IS 'document types scroll 1, seg 2, both 3';},
+ %{COMMENT ON COLUMN metadata.subj
+ IS 'subject areas - no way to populate at present as not mapped';},
+ ]
+ conn_execute_array(sql_arr)
+ end
+ def documents
+ sql_arr=[
+ %{COMMENT ON Table documents
+ IS 'contains searchable text of SiSU documents';},
+ %{COMMENT ON COLUMN documents.lid
+ IS 'unique';},
+ %{COMMENT ON COLUMN documents.metadata_tid
+ IS 'tie to title in metadata';},
+ %{COMMENT ON COLUMN documents.lev_an
+ IS 'doc level A-C 1-6';},
+ %{COMMENT ON COLUMN documents.lev
+ IS 'doc level 1-6 \d\~';},
+ %{COMMENT ON COLUMN documents.seg
+ IS 'segment name from level number 4 (lv 1)';},
+ %{COMMENT ON COLUMN documents.ocn
+ IS 'object citation number';},
+ %{COMMENT ON COLUMN documents.en_a
+ IS 'first endnote number in text object (eg. NULL or 34) (used with en_z to create range)';},
+ %{COMMENT ON COLUMN documents.en_z
+ IS 'last endnote number within text object (eg. NULL, 34 or say 47) (used with en_a to create range)';},
+ %{COMMENT ON COLUMN documents.en_a_asterisk
+ IS 'first endnote number in text object (eg. NULL or 34) (used with en_z_asterisk to create range)';},
+ %{COMMENT ON COLUMN documents.en_z_asterisk
+ IS 'last endnote number within text object (eg. NULL, 34 or say 47) (used with en_a_asterisk to create range)';},
+ %{COMMENT ON COLUMN documents.en_a_plus
+ IS 'first endnote number in text object (eg. NULL or 34) (used with en_z_plus to create range)';},
+ %{COMMENT ON COLUMN documents.en_z_plus
+ IS 'last endnote number within text object (eg. NULL, 34 or say 47) (used with en_a_plus to create range)';},
+ %{COMMENT ON COLUMN documents.types
+ IS 'document types seg scroll';},
+ %{COMMENT ON COLUMN documents.clean
+ IS 'text object - substantive text: clean, stripped of markup';},
+ %{COMMENT ON COLUMN documents.body
+ IS 'text object - substantive text: light html markup';},
+ %{COMMENT ON COLUMN documents.lev1
+ IS 'document structure, level number 1';},
+ %{COMMENT ON COLUMN documents.lev2
+ IS 'document structure, level number 2';},
+ %{COMMENT ON COLUMN documents.lev3
+ IS 'document structure, level number 3';},
+ %{COMMENT ON COLUMN documents.lev4
+ IS 'document structure, level number 4';},
+ %{COMMENT ON COLUMN documents.lev5
+ IS 'document structure, level number 5';},
+ %{COMMENT ON COLUMN documents.lev6
+ IS 'document structure, level number 6';},
+ %{COMMENT ON COLUMN documents.t_of
+ IS 'document structure, type of object (object is of)';},
+ %{COMMENT ON COLUMN documents.t_is
+ IS 'document structure, object is';},
+ %{COMMENT ON COLUMN documents.node
+ IS 'document structure, object node if heading';},
+ %{COMMENT ON COLUMN documents.parent
+ IS 'document structure, object parent (is a heading)';}
+ ]
+ conn_execute_array(sql_arr)
+ end
+ def endnotes
+ sql_arr=[
+ %{COMMENT ON Table endnotes
+ IS 'contains searchable text of SiSU documents endnotes';},
+ %{COMMENT ON COLUMN endnotes.nid
+ IS 'unique';},
+ %{COMMENT ON COLUMN endnotes.document_lid
+ IS 'ties to text block from which referenced';},
+ %{COMMENT ON COLUMN endnotes.nr
+ IS 'endnote number <!e_(\d+)!>';},
+ %{COMMENT ON COLUMN endnotes.clean
+ IS 'endnote substantive content, stripped of markup';},
+ %{COMMENT ON COLUMN endnotes.body
+ IS 'endnote substantive content';},
+ %{COMMENT ON COLUMN endnotes.ocn
+ IS 'object citation no# <\~(\d+)> from which endnote is referenced';},
+ %{COMMENT ON COLUMN documents.metadata_tid
+ IS 'tie to title in metadata - unique for each document';}
+ ]
+ conn_execute_array(sql_arr)
+ end
+ def endnotes_asterisk
+ sql_arr=[
+ %{COMMENT ON Table endnotes_asterisk
+ IS 'contains searchable text of SiSU documents endnotes asterisk';},
+ %{COMMENT ON COLUMN endnotes_asterisk.nid
+ IS 'unique';},
+ %{COMMENT ON COLUMN endnotes_asterisk.document_lid
+ IS 'ties to text block from which referenced';},
+ %{COMMENT ON COLUMN endnotes_asterisk.nr
+ IS 'endnote number <!e_(\d+)!>';},
+ %{COMMENT ON COLUMN endnotes_asterisk.clean
+ IS 'endnote substantive content, stripped of markup';},
+ %{COMMENT ON COLUMN endnotes_asterisk.body
+ IS 'endnote substantive content';},
+ %{COMMENT ON COLUMN endnotes_asterisk.ocn
+ IS 'object citation no# <\~(\d+)> from which endnote is referenced';},
+ %{COMMENT ON COLUMN documents.metadata_tid
+ IS 'tie to title in metadata - unique for each document';}
+ ]
+ conn_execute_array(sql_arr)
+ end
+ def endnotes_plus
+ sql_arr=[
+ %{COMMENT ON Table endnotes_plus
+ IS 'contains searchable text of SiSU documents endnotes';},
+ %{COMMENT ON COLUMN endnotes_plus.nid
+ IS 'unique';},
+ %{COMMENT ON COLUMN endnotes_plus.document_lid
+ IS 'ties to text block from which referenced';},
+ %{COMMENT ON COLUMN endnotes_plus.nr
+ IS 'endnote number <!e_(\d+)!>';},
+ %{COMMENT ON COLUMN endnotes_plus.clean
+ IS 'endnote substantive content, stripped of markup';},
+ %{COMMENT ON COLUMN endnotes_plus.body
+ IS 'endnote substantive content';},
+ %{COMMENT ON COLUMN endnotes_plus.ocn
+ IS 'object citation no# <\~(\d+)> from which endnote is referenced';},
+ %{COMMENT ON COLUMN documents.metadata_tid
+ IS 'tie to title in metadata - unique for each document';},
+ ]
+ conn_execute_array(sql_arr)
+ end
+ def urls
+ sql_arr=[
+ %{COMMENT ON Table urls
+ IS 'contains base url links to different SiSU output';},
+ %{COMMENT ON COLUMN documents.metadata_tid
+ IS 'tie to title in metadata - unique for each document, the mapping of rows is one to one';},
+ %{COMMENT ON COLUMN urls.plaintext
+ IS 'plaintext utf-8';},
+ %{COMMENT ON COLUMN urls.html_toc
+ IS 'table of contents for segmented html document';},
+ %{COMMENT ON COLUMN urls.html_doc
+ IS 'html document (scroll)';},
+ %{COMMENT ON COLUMN urls.xhtml
+ IS 'xhtml document (scroll)';},
+ %{COMMENT ON COLUMN urls.xml_sax
+ IS 'xml sax oriented document (scroll)';},
+ %{COMMENT ON COLUMN urls.xml_dom
+ IS 'xml dom oriented document (scroll)';},
+ %{COMMENT ON COLUMN urls.odf
+ IS 'opendocument format text';},
+ %{COMMENT ON COLUMN urls.pdf_p
+ IS 'pdf portrait';},
+ %{COMMENT ON COLUMN urls.pdf_l
+ IS 'pdf landscape';},
+ %{COMMENT ON COLUMN urls.concordance
+ IS 'rudimentary document index linked to html';},
+ %{COMMENT ON COLUMN urls.latex_p
+ IS 'latex portrait';},
+ %{COMMENT ON COLUMN urls.latex_l
+ IS 'latex_landscape';},
+ %{COMMENT ON COLUMN urls.markup
+ IS 'markup';},
+ %{COMMENT ON COLUMN urls.sisupod
+ IS 'SiSU document format .tgz (all SiSU information on document)';},
+ ]
+ conn_execute_array(sql_arr)
+ end
+ self
+ end
+ end
+end
+__END__