Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Manual SQL scripts for linux package updates
Browse files Browse the repository at this point in the history
  • Loading branch information
cdujeu committed Sep 20, 2014
1 parent e253a0a commit 4709c2c
Show file tree
Hide file tree
Showing 3 changed files with 177 additions and 0 deletions.
56 changes: 56 additions & 0 deletions dist/scripts/misc/5.2.3-5.3.3.mysql
@@ -0,0 +1,56 @@
ALTER TABLE ajxp_user_rights ADD INDEX (login), ADD INDEX (repo_uuid);
/* SEPARATOR */
CREATE TABLE IF NOT EXISTS `ajxp_changes` (
`seq` int(20) NOT NULL AUTO_INCREMENT,
`repository_identifier` TEXT NOT NULL,
`node_id` bigint(20) NOT NULL,
`type` enum('create','delete','path','content') NOT NULL,
`source` text NOT NULL,
`target` text NOT NULL,
PRIMARY KEY (`seq`),
KEY `node_id` (`node_id`,`type`)
);
/* SEPARATOR */
CREATE TABLE IF NOT EXISTS `ajxp_index` (
`node_id` int(20) NOT NULL AUTO_INCREMENT,
`node_path` text NOT NULL,
`bytesize` bigint(20) NOT NULL,
`md5` varchar(32) NOT NULL,
`mtime` int(11) NOT NULL,
`repository_identifier` text NOT NULL,
PRIMARY KEY (`node_id`)
);
/* SEPARATOR */
DROP TRIGGER IF EXISTS `LOG_DELETE`;
/* SEPARATOR */
CREATE TRIGGER `LOG_DELETE` AFTER DELETE ON `ajxp_index`
FOR EACH ROW INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (old.repository_identifier, old.node_id, old.node_path, 'NULL', 'delete');
/* SEPARATOR */
DROP TRIGGER IF EXISTS `LOG_INSERT`;
/* SEPARATOR */
CREATE TRIGGER `LOG_INSERT` AFTER INSERT ON `ajxp_index`
FOR EACH ROW INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (new.repository_identifier, new.node_id, 'NULL', new.node_path, 'create');
/* SEPARATOR */
DROP TRIGGER IF EXISTS `LOG_UPDATE`;
/* SEPARATOR */
CREATE TRIGGER `LOG_UPDATE` AFTER UPDATE ON `ajxp_index`
FOR EACH ROW INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (new.repository_identifier, new.node_id, old.node_path, new.node_path, CASE old.node_path = new.node_path WHEN true THEN 'content' ELSE 'path' END);
/* SEPARATOR */
CREATE TABLE `ajxp_log.bak` LIKE `ajxp_log`;
/* SEPARATOR */
INSERT `ajxp_log.bak` SELECT * FROM `ajxp_log`;
/* SEPARATOR */
CREATE TABLE `ajxp_log2` LIKE `ajxp_log`;
/* SEPARATOR */
INSERT `ajxp_log2` SELECT * FROM `ajxp_log`;
/* SEPARATOR */
ALTER TABLE `ajxp_log2` ADD `source` VARCHAR( 255 ) NOT NULL AFTER `user` , ADD INDEX ( `source` ) ;
/* SEPARATOR */
UPDATE `ajxp_log2` INNER JOIN ajxp_log ON ajxp_log2.id=ajxp_log.id SET ajxp_log2.source = ajxp_log.message, ajxp_log2.message = SUBSTRING_INDEX(SUBSTRING_INDEX(ajxp_log.params, '\t', 1), '\t', -1),ajxp_log2.params = SUBSTRING_INDEX(SUBSTRING_INDEX(ajxp_log.params, '\t', 2), '\t', -1);
/* SEPARATOR */
DROP TABLE `ajxp_log`;
/* SEPARATOR */
RENAME TABLE `ajxp_log2` TO `ajxp_log`;
81 changes: 81 additions & 0 deletions dist/scripts/misc/5.2.3-5.3.3.pgsql
@@ -0,0 +1,81 @@
CREATE INDEX ajxp_user_rights_i ON ajxp_user_rights(repo_uuid);
/* SEPARATOR */
CREATE INDEX ajxp_user_rights_k ON ajxp_user_rights(login);

/* SEPARATOR */
CREATE TYPE ajxp_change_type AS ENUM ('create','delete','path','content');
/* SEPARATOR */
CREATE TABLE ajxp_changes (
seq BIGSERIAL,
repository_identifier TEXT NOT NULL,
node_id INTEGER NOT NULL,
type ajxp_change_type NOT NULL,
source text NOT NULL,
target text NOT NULL,
constraint pk primary key(seq)
);
/* SEPARATOR */
CREATE INDEX ajxp_changes_node_id ON ajxp_changes (node_id);
/* SEPARATOR */
CREATE INDEX ajxp_changes_repo_id ON ajxp_changes (repository_identifier);
/* SEPARATOR */
CREATE INDEX ajxp_changes_type ON ajxp_changes (type);
/* SEPARATOR */
CREATE TABLE ajxp_index (
node_id BIGSERIAL ,
node_path text NOT NULL,
bytesize INTEGER NOT NULL,
md5 varchar(32) NOT NULL,
mtime INTEGER NOT NULL,
repository_identifier text NOT NULL,
PRIMARY KEY (node_id)
);
/* SEPARATOR */
CREATE INDEX ajxp_index_repo_id ON ajxp_index (repository_identifier);
/* SEPARATOR */
CREATE INDEX ajxp_index_md5 ON ajxp_index (md5);

/* SEPARATOR */
CREATE TABLE ajxp_log2 AS TABLE ajxp_log;
/* SEPARATOR */
ALTER TABLE ajxp_log2 ADD source VARCHAR( 255 );
/* SEPARATOR */
ALTER TABLE ajxp_log2 ADD PRIMARY KEY (id);
/* SEPARATOR */
UPDATE ajxp_log2 SET source = ajxp_log.message, message = split_part(ajxp_log.params,'\t', 1), params = split_part(ajxp_log.params,'\t', 2) FROM ajxp_log WHERE ajxp_log2.id = ajxp_log.id;
/* SEPARATOR */
DROP TABLE ajxp_log;
/* SEPARATOR */
ALTER TABLE ajxp_log2 RENAME TO ajxp_log;

CREATE FUNCTION ajxp_index_delete() RETURNS trigger AS $ajxp_index_delete$
BEGIN
INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (OLD.repository_identifier, OLD.node_id, OLD.node_path, 'NULL', 'delete');
RETURN NULL;
END;
$ajxp_index_delete$ LANGUAGE plpgsql;

CREATE FUNCTION ajxp_index_insert() RETURNS trigger AS $ajxp_index_insert$
BEGIN
INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (NEW.repository_identifier, NEW.node_id, 'NULL', NEW.node_path, 'create');
RETURN NEW;
END;
$ajxp_index_insert$ LANGUAGE plpgsql;

CREATE FUNCTION ajxp_index_update() RETURNS trigger AS $ajxp_index_update$
BEGIN
IF OLD.node_path = NEW.node_path THEN
INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (NEW.repository_identifier, NEW.node_id, OLD.node_path, NEW.node_path, 'content');
ELSE
INSERT INTO ajxp_changes (repository_identifier, node_id,source,target,type)
VALUES (NEW.repository_identifier, NEW.node_id, OLD.node_path, NEW.node_path, 'path');
END IF;
RETURN NEW;
END;
$ajxp_index_update$ LANGUAGE plpgsql;
CREATE TRIGGER LOG_DELETE AFTER DELETE ON ajxp_index FOR EACH ROW EXECUTE PROCEDURE ajxp_index_delete();
CREATE TRIGGER LOG_INSERT AFTER INSERT ON ajxp_index FOR EACH ROW EXECUTE PROCEDURE ajxp_index_insert();
CREATE TRIGGER LOG_UPDATE AFTER UPDATE ON ajxp_index FOR EACH ROW EXECUTE PROCEDURE ajxp_index_update();
40 changes: 40 additions & 0 deletions dist/scripts/misc/5.2.3-5.3.3.sqlite
@@ -0,0 +1,40 @@
CREATE TABLE ajxp_changes (
seq INTEGER PRIMARY KEY AUTOINCREMENT,
repository_identifier TEXT,
node_id NUMERIC,
type TEXT,
source TEXT,
target TEXT
);
/* SEPARATOR */
CREATE TABLE ajxp_index (
node_id INTEGER PRIMARY KEY AUTOINCREMENT,
repository_identifier TEXT,
node_path TEXT,
bytesize NUMERIC,
md5 TEXT,
mtime NUMERIC
);
/* SEPARATOR */
CREATE TRIGGER LOG_DELETE AFTER DELETE ON ajxp_index
BEGIN
INSERT INTO ajxp_changes (repository_identifer, node_id,source,target,type) VALUES (old.repository_identifer, old.node_id, old.node_path, "NULL", "delete");
END;
/* SEPARATOR */
CREATE TRIGGER LOG_INSERT AFTER INSERT ON ajxp_index
BEGIN
INSERT INTO ajxp_changes (repository_identifer, node_id,source,target,type) VALUES (new.repository_identifer, new.node_id, "NULL", new.node_path, "create");
END;
/* SEPARATOR */
CREATE TRIGGER "LOG_UPDATE_CONTENT" AFTER UPDATE ON "ajxp_index" FOR EACH ROW WHEN old.node_path=new.node_path
BEGIN
INSERT INTO ajxp_changes (repository_identifer, node_id,source,target,type) VALUES (new.repository_identifer, new.node_id, old.node_path, new.node_path, "content");
END;
/* SEPARATOR */
CREATE TRIGGER "LOG_UPDATE_PATH" AFTER UPDATE ON "ajxp_index" FOR EACH ROW WHEN old.node_path!=new.node_path
BEGIN
INSERT INTO ajxp_changes (repository_identifer, node_id,source,target,type) VALUES (new.repository_identifer, new.node_id, old.node_path, new.node_path, "path");
END;

/* SEPARATOR */
ALTER TABLE "ajxp_log" ADD COLUMN "source" text;

0 comments on commit 4709c2c

Please sign in to comment.