Project

General

Profile

« Previous | Next » 

Revision 46768

removed table logging bloatware

View differences:

modules/cnr-enabling-database-service/trunk/src/main/java/eu/dnetlib/enabling/database/utils/DatabaseUtils.java
520 520
			jdbcTemplate.update(getSQLFromTemplate("manageTable", database, table, null));
521 521
			log.info("Added management of table " + table);
522 522
		}
523

  
524
		addLogTable(database, table);
525 523
	}
526 524

  
527
	public void addLogTable(final String database, final String table) throws DatabaseException {
528
		verifyParameters(database, table);
529
		JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database);
530

  
531
		if (!isLoggedTable(jdbcTemplate, table)) {
532
			jdbcTemplate.update(getSQLFromTemplate("removeLogTable", database, table, null));
533
			jdbcTemplate.update(getSQLFromTemplate("addLogTable", database, table, null));
534
			log.info("Added logs of table " + table);
535
		}
536
	}
537

  
538 525
	public void removeManagementOfTable(final String database, final String table) throws DatabaseException {
539 526
		verifyParameters(database, table);
540 527
		JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database);
......
543 530
			jdbcTemplate.update(getSQLFromTemplate("unmanageTable", database, table, null));
544 531
			log.info("Removed management of table " + table);
545 532
		}
546
		removeLogTable(database, table);
547 533
	}
548 534

  
549
	public void removeLogTable(final String database, final String table) throws DatabaseException {
550
		verifyParameters(database, table);
551
		JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database);
552

  
553
		if (isLoggedTable(jdbcTemplate, table)) {
554
			jdbcTemplate.update(getSQLFromTemplate("removeLogTable", database, table, null));
555
			log.info("Removed logs of table " + table);
556
		}
557
	}
558

  
559 535
	public boolean isManagedTable(final String database, final String table) throws DatabaseException {
560 536
		verifyParameters(database, table);
561 537
		JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(database);
modules/cnr-enabling-database-service/trunk/src/main/resources/eu/dnetlib/enabling/database/velocity/addLogTable.sql.vm
1
CREATE TABLE ${table}_log (
2
	${idField} VARCHAR(2048),
3
	operation VARCHAR(10),
4
	date TIMESTAMP DEFAULT current_timestamp,
5
	id SERIAL,
6
	status VARCHAR(10) DEFAULT ''
7
);
8
INSERT INTO ${table}_log SELECT ${idField}, 'insert', current_timestamp from ${table};
9

  
10
create or replace function notify_insert_${table}() returns trigger as $$
11
  begin
12
    insert into ${table}_log values (NEW.${idField}, 'insert');
13
    return NEW;
14
  end;
15
$$
16
language plpgsql volatile;
17

  
18
create or replace function notify_update_${table}() returns trigger as $$
19
  begin
20
    insert into ${table}_log values (NEW.${idField}, 'update');
21
    return NEW;
22
  end;
23
$$
24
language plpgsql volatile;
25

  
26
create or replace function notify_delete_${table}() returns trigger as $$
27
  begin
28
    insert into ${table}_log values (OLD.${idField}, 'delete');
29
    return NEW;
30
  end;
31
$$
32
language plpgsql volatile;
33

  
34

  
35
create trigger notify_insert_${table} 
36
	after insert on ${table} 
37
	for each row execute procedure notify_insert_${table}();
38

  
39
create trigger notify_update_${table} 
40
	after update on ${table}
41
	for each row execute procedure notify_update_${table}();
42

  
43
create trigger notify_delete_${table} 
44
	after delete on ${table} 
45
	for each row execute procedure notify_delete_${table}();
modules/cnr-enabling-database-service/trunk/src/main/resources/eu/dnetlib/enabling/database/velocity/removeLogTable.sql.vm
1
DROP TRIGGER IF EXISTS notify_insert_${table} ON ${table};
2
DROP TRIGGER IF EXISTS notify_update_${table} ON ${table};
3
DROP TRIGGER IF EXISTS notify_delete_${table} ON ${table};
4

  
5
DROP FUNCTION IF EXISTS notify_insert_${table}();
6
DROP FUNCTION IF EXISTS notify_update_${table}();
7
DROP FUNCTION IF EXISTS notify_delete_${table}();
8

  
9
DROP TABLE IF EXISTS ${table}_log;

Also available in: Unified diff