From 1d9aaa65d4fbde9a5f0cce563a3feae11f0e2515 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 18 Oct 2018 17:54:50 +0200 Subject: [PATCH] reuse older id for open item fields (fixes #25982) --- wcs_olap/feeder.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index 2ef0008..46b202d 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -557,6 +557,18 @@ class WcsFormdefFeeder(object): else: # open item field, from data sources... self.create_labeled_table(table_name, [], serial=True, comment=comment) + # take old id, value paris an inject them + try: + self.ex('INSERT INTO {table_name} SELECT * FROM {schema}.{table_name}', + ctx={'table_name': table_name}) + # update sequence to allow inserting new values + sequence_name = table_name[:63 - len('_id_seq')] + '_id_seq' + selx.ex('SELECT SETVAL(%s, (SELECT MAX(id) from {item_table}))', vars=[sequence_name], + ctx={'item_table': table_name}) + except pyscopg2.Error: + pass + + at = 'field_%s' % field.varname columns.append([at, 'smallint REFERENCES %s (id)' % table_name]) -- 2.18.0