summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/fixme/fixme.pgsql17
1 files changed, 10 insertions, 7 deletions
diff --git a/utils/fixme/fixme.pgsql b/utils/fixme/fixme.pgsql
index 7ee23b4d..28ba8183 100644
--- a/utils/fixme/fixme.pgsql
+++ b/utils/fixme/fixme.pgsql
@@ -25,11 +25,11 @@ insert into id_agregator (id, table_name) SELECT id, 'warehouse' from warehouse;
CREATE TEMPORARY VIEW id_view1 AS
SELECT id, count(*) AS num_rows FROM id_agregator
-GROUP BY id HAVING num_rows > 1;
+GROUP BY id HAVING count(*) > 1;
-select setval('id', select max(id) + 1 from id_agregator);
+select setval('id', (select max(id) + 1 from id_agregator));
-create function fix_dupes() RETURNS OPAQUE AS
+create function fix_dupes() RETURNS opaque AS
'
DECLARE
dupe_id id_agregator%ROWTYPE;
@@ -38,20 +38,23 @@ FOR dupe_id IN SELECT id FROM id_agregator
WHERE id IN (SELECT id FROM id_view1)
LOOP
EXECUTE ''UPDATE '' || dupe_id.table_name ||
- SET id = nextval(''''id'''') WHERE
+ '' SET id = nextval(''''id'''') WHERE
id = '' ||dupe_id.id;
UPDATE acc_trans SET trans_id = currval(''id'') WHERE
- id = '' ||dupe_id.id;
+ id = ||dupe_id.id;
INSERT INTO acc_trans (trans_id, amount, chart_id) VALUES (
- currval(''id''), '1', (
+ currval(''id''), ''1'', (
SELECT id FROM chart WHERE accno = ''1000000000''
)
);
INSERT INTO acc_trans (trans_id, amount, chart_id) VALUES (
- currval(''id''), '-1', (
+ currval(''id''), ''-1'', (
SELECT id FROM chart WHERE accno = ''1000000000''
)
);
+
+END LOOP;
+RETURN NULL;
END;
' LANGUAGE PLPGSQL;