This repository has been archived by the owner on Nov 25, 2020. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
207 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
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`; | ||
|
||
CREATE TABLE IF NOT EXISTS ajxp_version ( | ||
db_build INT NOT NULL | ||
); | ||
INSERT INTO ajxp_version SET db_build=60; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
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(); | ||
|
||
CREATE TABLE ajxp_version ( | ||
db_build INT NOT NULL | ||
); | ||
|
||
INSERT INTO ajxp_version VALUES (60); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
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; | ||
|
||
CREATE TABLE IF NOT EXISTS ajxp_version ( | ||
db_build INT NOT NULL | ||
); | ||
|
||
INSERT INTO ajxp_version VALUES (60); |