DB modifs : merging tag & subfield in marc_word table

This commit is contained in:
tipaul 2004-06-17 08:25:21 +00:00
parent ab420f94ae
commit 4161d6fba6

View file

@ -265,25 +265,18 @@ my %requiretables = (
PRIMARY KEY (subfieldid), PRIMARY KEY (subfieldid),
KEY authid (authid), KEY authid (authid),
KEY tag (tag), KEY tag (tag),
KEY tag_indicator (tag_indicator),
KEY subfieldorder (subfieldorder),
KEY subfieldcode (subfieldcode), KEY subfieldcode (subfieldcode),
KEY subfieldvalue (subfieldvalue), KEY subfieldvalue (subfieldvalue)
KEY tagorder (tagorder)
)", )",
auth_word => "( auth_word => "(
authid bigint(20) NOT NULL default '0', authid bigint(20) NOT NULL default '0',
tag char(3) NOT NULL default '', tagsubfield char(4) NOT NULL default '',
tagorder tinyint(4) NOT NULL default '1', tagorder tinyint(4) NOT NULL default '1',
subfieldid char(1) NOT NULL default '',
subfieldorder tinyint(4) NOT NULL default '1', subfieldorder tinyint(4) NOT NULL default '1',
word varchar(255) NOT NULL default '', word varchar(255) NOT NULL default '',
sndx_word varchar(255) NOT NULL default '', sndx_word varchar(255) NOT NULL default '',
KEY authid (authid), KEY authid (authid),
KEY tag (tag), KEY marc_search (tagsubfield,word),
KEY tagorder (tagorder),
KEY subfieldid (subfieldid),
KEY subfieldorder (subfieldorder),
KEY word (word), KEY word (word),
KEY sndx_word (sndx_word) KEY sndx_word (sndx_word)
)", )",
@ -681,6 +674,15 @@ my %tabledata = (
explanation => 'ISBD', explanation => 'ISBD',
type => 'free' type => 'free'
}, },
{
uniquefieldrequired => 'variable',
variable => 'virtualshelves',
forceupdate => { 'explanation' => 1,
'type' => 1 },
value => '0',
explanation => 'Set virtual shelves management ON or OFF',
type => 'YesNo'
},
], ],
); );
@ -1149,6 +1151,24 @@ $dbh->do('ALTER TABLE marc_tag_structure ADD PRIMARY KEY ( frameworkcode, tagfie
$dbh->do('ALTER TABLE marc_subfield_structure drop primary key'); $dbh->do('ALTER TABLE marc_subfield_structure drop primary key');
$dbh->do('ALTER TABLE marc_subfield_structure ADD PRIMARY KEY ( frameworkcode, tagfield, tagsubfield )'); $dbh->do('ALTER TABLE marc_subfield_structure ADD PRIMARY KEY ( frameworkcode, tagfield, tagsubfield )');
# Get list of columns from marc_word table
my %marc_word;
my %nullenabled;
$sth = $dbh->prepare("show columns from marc_word");
$sth->execute;
while ( my ( $column, $type, $null, $key, $default, $extra ) = $sth->fetchrow )
{
$marc_word{$column} = $type;
$nullenabled{$column} = $null;
}
if ($marc_word{subfieldid}) {
#create field tagsubfield, copy tag+subfieldid, then drop tag and subfieldid
print "Modifying marc_word (concat on tag and subfield for better perfs)\n";
$dbh->do("ALTER TABLE `marc_word` ADD `tagsubfield` CHAR( 4 ) NOT NULL AFTER `bibid`");
$dbh->do("update marc_word set tagsubfield=concat(tag,subfieldid)");
$dbh->do("alter table marc_word drop tag");
$dbh->do("alter table marc_word drop subfieldid");
}
# Populate tables with required data # Populate tables with required data
foreach my $table ( keys %tabledata ) { foreach my $table ( keys %tabledata ) {
@ -1200,6 +1220,9 @@ $sth->finish;
exit; exit;
# $Log$ # $Log$
# Revision 1.84 2004/06/17 08:25:21 tipaul
# DB modifs : merging tag & subfield in marc_word table
#
# Revision 1.83 2004/06/10 08:32:02 tipaul # Revision 1.83 2004/06/10 08:32:02 tipaul
# MARC authority management (continued) # MARC authority management (continued)
# #