From d161991611c69507cc6eb1a9674603ac46d2e174 Mon Sep 17 00:00:00 2001 From: Janne Jakob Fleischer Date: Tue, 22 Nov 2022 11:22:32 +0100 Subject: [PATCH] added bad fix for default Value retrieval (for XP_ExterneReferenz and others) --- XPTools.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/XPTools.py b/XPTools.py index bdaed8c..6d4f20c 100644 --- a/XPTools.py +++ b/XPTools.py @@ -568,11 +568,25 @@ def createFeature(self, layer, fid = None): newFeaturesetId(fid) provider = layer.dataProvider() + + fields = layer.fields() newFeature.initAttributes(fields.count()) for i in range(fields.count()): - newFeature.setAttribute(i,provider.defaultValue(i)) + ## bad fix for bug in Default retrieval from postgres + ## (defaultValue won't give 9999 integer for e.g. XP_ExterneReferenz default value, + ## but defaultValueClause does. Though defaultValueClause will return '' + ## where None/NULL is correct) + ## REALLY DON'T KNOW IF THERE IS SOMEWHERE A CORRECT DEFAULT EMPTY STRING, WHICH + ## SHOULDN'T BE FIXED... + if provider.defaultValueClause(i)=='': + newFeature.setAttribute(i,provider.defaultValue(i)) + else: + newFeature.setAttribute(i,provider.defaultValueClause(i)) + ## end fix + ## old: + ## newFeature.setAttribute(i,provider.defaultValue(i)) return newFeature else: