Bug report #16153
Default values for fields include their types.
|Affected QGIS version:||2.18.0||Regression?:||No|
|Operating System:||Easy fix?:||No|
|Pull Request or Patch supplied:||No||Resolution:||end of life|
|Crashes QGIS or corrupts data:||No||Copied to github as #:||24065|
We found an unexpected behaviour for fields with default values in QGIS when a PostGIS layer is used.
Instead of simply returning the default value of a field when digitizing a new feature, it also includes its type. In the screenshot below it can be seen that the default value is ‘value2’::test_schema.enum_type instead of value2. See default-vale-text.png
The problem we have is that if we use an enum type for a field in a table with a default value, QGIS is not able to show the default value. See fields-configurationpng and default-value-in-combobox.png
In order to solve that, we developed a custom QgsEditorWidgetWrapper following the instructions located in http://blog.vitu.ch/10142013-1847/write-your-own-qgis-form-elements
(currently unavailable, you can check it at http://web.archive.org/web/20160806070011/http://blog.vitu.ch/10142013-1847/write-your-own-qgis-form-elements)
We found that the method self.defaultValue() of a QgsEditorWidgetWrapper object returns the default value as explained above. We had to filter the returned value in order to obtain the correct one and allow the QComboBox to display the default value.
We think that is better for a normal user that QGIS returns the default value as is, especially because you can retrieve the type using other methods if needed. This issue is closely related to #13295
- Extra info to replicate****
Database setup used for this issue:
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE SCHEMA test_schema;
CREATE TYPE test_schema.enum_type AS ENUM ('value1', 'value2', 'value3');
CREATE TABLE test_schema.test_default_value(
id int primary key,
value test_schema.enum_type default 'value2',
geom geometry(Point, 32628) NOT NULL
#3 Updated by Giovanni Manghi 6 months ago
- Resolution set to end of life
- Status changed from Open to Closed
End of life notice: QGIS 2.18 LTR
QGIS 3.4 has recently become our new Long Term Release (LTR) version. This is a major step in our history – a long term release version based on the massive updates, library upgrades and improvements that we carried out in the course of the 2.x to 3x upgrade cycle.
We strongly encourage all users who are currently using QGIS 2.18 LTR as their preferred QGIS release to migrate to QGIS 3.4. This new LTR version will receive regular bugfixes for at least one year. It also includes hundreds of new functions, usability improvements, bugfixes, and other goodies. See the relevant changelogs for a good sampling of all the new features that have gone into version 3.4
Most plugins have been either migrated or incorporated into the core QGIS code base.
We strongly discourage the continued use of QGIS 2.18 LTR as it is now officially unsupported, which means we’ll not provide any bug fix releases for it.
You should also note that we intend to close all bug tickets referring to the now obsolete LTR version. Original reporters will receive a notification of the ticket closure and are encouraged to check whether the issue persists in the new LTR, in which case they should reopen the ticket.
If you would like to better understand the QGIS release roadmap, check out our roadmap page! It outlines the schedule for upcoming releases and will help you plan your deployment of QGIS into an operational environment.
The development of QGIS 3.4 LTR has been made possible by the work of hundreds of volunteers, by the investments of companies, professionals, and administrations, and by continuous donations and financial support from many of you. We sincerely thank you all and encourage you to collaborate and support the project even more, for the long term improvement and sustainability of the QGIS project.