Mercurial > libervia-pubsub
comparison sat_pubsub/pgsql_storage.py @ 433:920440200570
PostgreSQL: don't use `regconfig` and `GENERATED` column anymore
/!\ pgsql schema needs to be updated /!\
/!\ Minimal PostgreSQL required version is back to 9.5 /!\
`regconfig` is using system table, and `pg_upgrade` can't handle that, causing trouble
when moving to a new major version of PostgreSQL.
To work around this, the `data_fts_cfg` column type in `items` has been changed from
`regconfig` to `text`.
GENERATED column can't be used with type casting to `regconfig`, so the data_fts column is
now generated with a trigger. As a result, the minimal requirement of PostgreSQL 12 is not
necessary anymore.
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 14 Jan 2021 17:59:23 +0100 |
parents | 5a0ada3b61ca |
children | f6a225476165 |
comparison
equal
deleted
inserted
replaced
432:d9745fe5db46 | 433:920440200570 |
---|---|
77 | 77 |
78 # parseXml manage str, but we get unicode | 78 # parseXml manage str, but we get unicode |
79 parseXml = lambda unicode_data: generic.parseXml(unicode_data.encode('utf-8')) | 79 parseXml = lambda unicode_data: generic.parseXml(unicode_data.encode('utf-8')) |
80 ITEMS_SEQ_NAME = 'node_{node_id}_seq' | 80 ITEMS_SEQ_NAME = 'node_{node_id}_seq' |
81 PEP_COL_NAME = 'pep' | 81 PEP_COL_NAME = 'pep' |
82 CURRENT_VERSION = '6' | 82 CURRENT_VERSION = '7' |
83 # retrieve the maximum integer item id + 1 | 83 # retrieve the maximum integer item id + 1 |
84 NEXT_ITEM_ID_QUERY = r"SELECT COALESCE(max(item::integer)+1,1) as val from items where node_id={node_id} and item ~ E'^\\d+$'" | 84 NEXT_ITEM_ID_QUERY = r"SELECT COALESCE(max(item::integer)+1,1) as val from items where node_id={node_id} and item ~ E'^\\d+$'" |
85 | 85 |
86 | 86 |
87 def withPEP(query, values, pep, recipient): | 87 def withPEP(query, values, pep, recipient): |