From 450285b983a26a59a2435077b2e28b41cd1f5c0b Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 30 Jun 2011 09:34:23 +0200 Subject: [PATCH] 6536: Z3950 Enhancements (DB Revision) Content-Type: text/plain; charset="utf-8" This patch contains db revision for Z3950 enhancements: SRU search targets, MARC conversion and additional XSLT processing. It also contains a few additional lines of code for updatedatabase routines SetVersion and TransformToNum in order to facilitate testing new db revisions which are still marked XXX. --- installer/data/mysql/kohastructure.sql | 10 ++++++---- installer/data/mysql/updatedatabase.pl | 20 +++++++++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index e3c6f42..1b0be0e 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1985,21 +1985,23 @@ CREATE TABLE `virtualshelfcontents` ( DROP TABLE IF EXISTS `z3950servers`; CREATE TABLE `z3950servers` ( - `host` varchar(255) default NULL, + `host` varchar(255) NOT NULL, `port` int(11) default NULL, `db` varchar(255) default NULL, `userid` varchar(255) default NULL, `password` varchar(255) default NULL, - `name` mediumtext, + `name` mediumtext NOT NULL, `id` int(11) NOT NULL auto_increment, `checked` smallint(6) default NULL, `rank` int(11) default NULL, - `syntax` varchar(80) default NULL, + `syntax` varchar(80) NOT NULL, `icon` text, `position` enum('primary','secondary','') NOT NULL default 'primary', `type` enum('zed','opensearch') NOT NULL default 'zed', - `encoding` text default NULL, + `encoding` text NOT NULL, `description` text NOT NULL, + `srufields` text, + `add_xslt` varchar(255), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3c7d043..bbd8140 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -4354,6 +4354,18 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "3.05.00.XXX"; +if (C4::Context->preference("Version") lt TransformToNum($DBversion)) { + $dbh->do("ALTER TABLE z3950servers MODIFY COLUMN `host` varchar(255) NOT NULL;"); + $dbh->do("ALTER TABLE z3950servers MODIFY COLUMN `name` mediumtext NOT NULL;"); + $dbh->do("ALTER TABLE z3950servers MODIFY COLUMN `syntax` varchar(80) NOT NULL;"); + $dbh->do("ALTER TABLE z3950servers MODIFY COLUMN `encoding` text NOT NULL;"); + $dbh->do("ALTER TABLE z3950servers ADD COLUMN `srufields` text;"); + $dbh->do("ALTER TABLE z3950servers ADD COLUMN `add_xslt` varchar(255);"); + print "Upgrade to $DBversion done (Bug 6536: Z3950 enhancements)\n"; + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 DropAllForeignKeys($table) @@ -4396,6 +4408,10 @@ sub TransformToNum { my $version = shift; # remove the 3 last . to have a Perl number $version =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; + # three X's at the end indicate that you are testing patch with dbrev + # change it into 999 + # prevents error on a < comparison between strings (should be: lt) + $version =~ s/XXX$/999/; return $version; } @@ -4406,7 +4422,9 @@ set the DBversion in the systempreferences =cut sub SetVersion { - my $kohaversion = TransformToNum(shift); + return if $_[0]=~ /XXX$/; + #you are testing a patch with a db revision; do not change version + my $kohaversion = TransformToNum($_[0]); if (C4::Context->preference('Version')) { my $finish=$dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='Version'"); $finish->execute($kohaversion); -- 1.6.0.6