grade = "0",
tableName = defaultSchema ? defaultSchema + ".pkgreport" : "report",
description,
- disableSql,
- updateSql,
- insertSql,
- enableSql;
+ upsertSql;
if (lines[3].indexOf(" <name>") !== 0 ||
lines[4].indexOf(" <description>") !== 0) {
grade = grade.substring(0, grade.indexOf("<"));
}
- disableSql = "ALTER TABLE " + tableName + " DISABLE TRIGGER ALL;";
-
- insertSql = "insert into " + tableName + " (report_name, report_descrip, " +
- "report_source, report_loaddate, report_grade) select " +
- "'" + name + "'," +
- "$$" + description + "$$," +
- "$$" + content + "$$," +
- "now(), " + grade +
- " where not exists (select c.report_id from " + tableName + " c " +
- "where report_name = '" + name +
- "' and report_grade = " + grade + ");";
-
- updateSql = "update " + tableName + " set " +
- " report_descrip = $$" + description +
- "$$, report_source = $$" + content +
- "$$, report_loaddate = now() " +
- "where report_name = '" + name +
- "' and report_grade = " + grade + ";";
-
- enableSql = "ALTER TABLE " + tableName + " ENABLE TRIGGER ALL;";
-
- return disableSql + insertSql + updateSql + enableSql;
+ upsertSql = "do language plpgsql $do$" +
+ "declare _id integer := null;" +
+ " begin" +
+ " update " + tableName + " set " +
+ " report_descrip = $$" + description + "$$," +
+ " report_source = $$" + content + "$$," +
+ " report_loaddate = now() " +
+ " where report_name = '" + name + "'" +
+ " and report_grade = " + grade + " returning report_id into _id;" +
+ " if _id is null then " +
+ " insert into " + tableName + " (report_name, report_descrip," +
+ " report_source, report_loaddate, report_grade)" +
+ " select '" + name + "', $$" + description + "$$," +
+ " $$" + content + "$$, now(), min(sequence_value)" +
+ " from sequence" +
+ " where sequence_value >= " + grade + "" +
+ " and sequence_value not in (" +
+ " select c.report_grade from report c where report_name = '" + name + "'" +
+ " );" +
+ " end if;" +
+ " end $do$;";
+ return upsertSql;
};
var convertFromScript = function (content, filename, defaultSchema) {
var name = path.basename(filename, '.js'),
tableName = defaultSchema ? defaultSchema + ".pkgscript" : "unknown",
notes = "", //"xtMfg package",
- disableSql,
insertSql,
- updateSql,
- enableSql;
-
- disableSql = "ALTER TABLE " + tableName + " DISABLE TRIGGER ALL;";
+ updateSql;
insertSql = "insert into " + tableName + " (script_name, script_order, script_enabled, " +
"script_source, script_notes) select " +
"$$, script_notes = '" + notes + "' " +
"where script_name = '" + name + "';";
- enableSql = "ALTER TABLE " + tableName + " ENABLE TRIGGER ALL;";
-
- return disableSql + insertSql + updateSql + enableSql;
+ return insertSql + updateSql;
};
var convertFromUiform = function (content, filename, defaultSchema) {
var name = path.basename(filename, '.ui'),
tableName = defaultSchema ? defaultSchema + ".pkguiform" : "unknown",
notes = "", //"xtMfg package",
- disableSql,
insertSql,
- updateSql,
- enableSql;
-
- disableSql = "ALTER TABLE " + tableName + " DISABLE TRIGGER ALL;";
+ updateSql;
insertSql = "insert into " + tableName + " (uiform_name, uiform_order, uiform_enabled, " +
"uiform_source, uiform_notes) select " +
"uiform_source = $$" + content + "$$, uiform_notes = '" + notes + "' " +
"where uiform_name = '" + name + "';";
- enableSql = "ALTER TABLE " + tableName + " ENABLE TRIGGER ALL;";
-
- return disableSql + insertSql + updateSql + enableSql;
+ return insertSql + updateSql;
};
exports.conversionMap = {