New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Approved pending 3.10.9 backports #36812
Conversation
The QGIS project highly values your contribution and would love to see this work merged! Unfortunately this PR has not had any activity in the last 14 days and is being automatically marked as "stale". If you think this pull request should be merged, please check
|
Hi @nyalldawson how to contribute to this branch ? |
14b4f3a
to
17a35c5
Compare
Fixes qgis#36392 Fixes qgis#21976 Fixes qgis#17190 We are obliged to do 'at hand' parsing due to QT not handling CR-only end of lines. As we are at it, also limit each line to 1 MB to avoid potential denial of service (which was what close to what happened here before the CR-only parsing fix) Add tests for parsing CR-only end of lines, and exercising the at-hand buffering logic (cherry picked from commit 644a564)
Set to 10000 by default. Can be overriden through settings. This is only for the preview in the source select dialog. (Attribute table performs badly for much less columns) Related to qgis#36392 (cherry picked from commit fcf6203)
... in a particular sequence of connection creation, fixes qgis#36832 (cherry picked from commit 2d3c36f)
Try to fix qgis#37297 (cherry picked from commit ec52aa9)
Fixes qgis#37313 (cherry picked from commit e4718d7)
Using test data with a HUGE polygon with several hundreds of thousands of vertices and nearly a thousand of holes, split geometry was taking really long time. On my laptop ~67 seconds for a simple split line. With this fix, the time went down to ~10 seconds for the test polygon. The issue was that split tool was doing an expensive exact intersection calculation for each polygon part returned from polygonize, and then calculating areas to see whether the original polygon part and intersected part were more or less the same. I think that can be replaced by a much simpler point in polygon test to figure out whether the particular polygon part from polygonize is falls inside the original geometry or whether it falls into a hole or exterior. In my tests the time could be further improved to ~3 seconds by disabling mergeGeometriesMultiTypeSplit() function - it is a bit of a mistery to me what problem does it solve, however it has N^2 running time with N being number of rings - but I did not feel adventurous enough to poke into it. (mainly because there are no unit tests that would verify its behavior) (cherry picked from commit 00a102c) (cherry picked from commit b75ba12)
spaces or other special characters Because we actually store the field name as an expression, we need to make sure we correctly represent these field names as valid expressions and not just the raw name string (cherry picked from commit 5d28222)
(cherry picked from commit 69bcbee)
Fixes qgis#37449 (cherry picked from commit d49e140)
(cherry picked from commit 67af97b)
(cherry picked from commit 090e5da)
(cherry picked from commit 167b718)
15502a5
to
d0efbbf
Compare
Backports approved for the 3.10.9 release