Bug report #20872
QGIS 3.5 not loading or saving multi-dimensional arrays properly from PostGIS layers
Status: | Reopened | ||
---|---|---|---|
Priority: | High | ||
Assignee: | Julien Cabieces | ||
Category: | Editing | ||
Affected QGIS version: | 3.7(master) | Regression?: | Yes |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | Yes | Resolution: | |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 28691 |
Description
I have map layers stored in PostgreSQL where a field contains two dimensional arrays of values.
Alternate History=# select name,full_name,alternate_name from "Balance of Power"."timeline-countries" where full_name is not null and alternate_name is not null; name | full_name | alternate_name -----------------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------- New Spain | {{en,"Viceroyalty of New Spain"}} | {{es,"Virreinato de la Nueva España"},{es,"Nueva España"}} Mexico | {{es,"Imperio Mexicano"},{en,"Mexican Empire"}} | {{es,"Imperio Mexicano"}} Mexico | {{es,"Estados Unidos Mexicanos"},{en,"United Mexican States"}} | {{es,"Estados Unidos Mexicanos"}} Mexico | {{es,"Estados Unidos Mexicanos"},{en,"United Mexican States"}} | {{es,"Estados Unidos Mexicanos"}} Alta California | {{es,"República de Alta California"},{en,"Republic of Alta California"}} | {{en,"Upper California"}} New Spain | {{en,"Viceroyalty of New Spain"}} | {{es,"Virreinato de la Nueva España"},{es,"Nueva España"}} …
In QGIS 2.18.x those arrays appeared in Feature Attributes dialog in the PostgreSQL text format for specifying arrays, using curly braces as seen in the psql output fragment above, and you could add to the arrays by entering new items in that format.
But in 3.5 that is no longer the case. Instead, only a bit of the text is shown in the text widget of the dialog.
Further, when you try to update that field with as value like
{{en,"Cape Colony"}}
it gets saved in the database as
{"{{en,\"Cape Colony\"}}"}
Associated revisions
fixes #20872 : Manage postgres multidimensionnal array
fixes #20872 : Manage postgres multidimensionnal array
fixes #20872 : Manage postgres multidimensionnal array
History
#1 Updated by Cory Albrecht about 6 years ago
On loading the layer, the Qt messages windows displays lines like the following;
2018-12-22T19:48:10 WARNING Cannot find separator: },{es,"Nueva España"} 2018-12-22T19:48:10 WARNING Error parsing array: {es,"Virreinato de la Nueva España"},{es,"Nueva España"} 2018-12-22T19:48:10 WARNING Cannot find separator: } 2018-12-22T19:48:10 WARNING Error parsing array: {en,"Viceroyalty of New Spain"}
#2 Updated by Cory Albrecht about 6 years ago
I just tried 3.4.2 and the issue is there, too.
#3 Updated by Cory Albrecht about 6 years ago
Here is what the feature attributes dialog looks like in 2,18.25 for the same feature object.
#4 Updated by Cory Albrecht almost 6 years ago
Ping.
#5 Updated by Giovanni Manghi almost 6 years ago
- Priority changed from Normal to High
- Regression? changed from No to Yes
#6 Updated by Julien Cabieces almost 6 years ago
- Assignee set to Julien Cabieces
#7 Updated by Julien Cabieces almost 6 years ago
- Pull Request or Patch supplied changed from No to Yes
Proposed PR : https://github.com/qgis/QGIS/pull/9048
#8 Updated by Cory Albrecht almost 6 years ago
Still happening in 3.45, 3.60 and 3.7
#9 Updated by Giovanni Manghi almost 6 years ago
- Affected QGIS version changed from 3.5(master) to 3.7(master)
#10 Updated by Julien Cabieces almost 6 years ago
Still happening in 3.45, 3.60 and 3.7
Proposed PR isn't accepted yep.
#11 Updated by Julien Cabieces almost 6 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset qgis|0753b144b92763b18021f1d706a1cf184323b1aa.
#12 Updated by Cory Albrecht almost 6 years ago
Julien Cabieces wrote:
Applied in changeset qgis|0753b144b92763b18021f1d706a1cf184323b1aa.
When will this be in a nightly? I just tried 3.7 and it's not there yet.
#13 Updated by Julien Cabieces almost 6 years ago
- File scr_table.png added
- File scr_rqst.png added
- File scr_form.png added
Here is some screenshots with current master
Does it look like what you're seeing on your version of QGIS?
Could you please check the QGIS version once launched in the help > About dialog.
#14 Updated by Cory Albrecht almost 6 years ago
Julien Cabieces wrote:
Does it look like what you're seeing on your version of QGIS?
I did not use the new list widget, just the plain old text widget, as shown in my screencaps.
Any text representation that the psql command-line client uses to either show the results of a query, or how one might type in the command by hand as a raw SQL, one should be able to simply copy-paste back and forth between a terminal and QGIS in either the Feature Attribute form's plain text widget or in the Attribute Table columns.
That way all possible PostGIS data types have some kind of minimal support, and special widgets can wait until somebody has the inclination and time to write them.
Could you please check the QGIS version once launched in the help > About dialog.
Whatever was in the PPA https://qgis.org/ubuntu-nightly Monday afternoon and evening, but I reverted to 3.6. I will check whatever is in the PPA once I get home from work.
#15 Updated by Julien Cabieces almost 6 years ago
- Status changed from Closed to Reopened
I see, there is an additionnal issue when we use the plain text display (the list widget is working by the way).
I reopen the ticket, and I'll try to find a way to correct this.
#16 Updated by Julien Cabieces almost 6 years ago
Proposed PR : https://github.com/qgis/QGIS/pull/9610
Be aware that there is still a problem to deal with integer and float array in plain text.