This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to branch master in repository osmosis.
commit 9f41ceeeeb89b0f38253151d6984a46cea1fb725 Author: Bas Couwenberg <sebas...@xs4all.nl> Date: Thu Apr 10 20:20:05 2014 +0200 Add patch from upstream master branch: 0001-Manually-set-some-statistics-for-way_nodes-and-relat.patch --- ...t-some-statistics-for-way_nodes-and-relat.patch | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/debian/patches/0001-Manually-set-some-statistics-for-way_nodes-and-relat.patch b/debian/patches/0001-Manually-set-some-statistics-for-way_nodes-and-relat.patch new file mode 100644 index 0000000..ae609b4 --- /dev/null +++ b/debian/patches/0001-Manually-set-some-statistics-for-way_nodes-and-relat.patch @@ -0,0 +1,48 @@ +From 5542f816875e7a72382a3dc2c72ff53396603a8e Mon Sep 17 00:00:00 2001 +From: Paul Norman <penor...@mac.com> +Date: Wed, 3 Jul 2013 00:04:53 -0700 +Subject: Manually set some statistics for way_nodes and relation_members +Origin: https://github.com/openstreetmap/osmosis/commit/5542f816875e7a72382a3dc2c72ff53396603a8e + +Postgresql gets counts of distinct values horribly wrong for these tables. +This sometimes leads to very bad query plans, particularly for antijoin patterns + +Because we have access to taginfo and know more about the data, we can do better. + +Values that are likely to scale with the size of the database are set to do so. + +Other values, like the maximum number of nodes in a way, are fixed based on current +data. + +--- a/package/script/pgsnapshot_schema_0.6.sql ++++ b/package/script/pgsnapshot_schema_0.6.sql +@@ -142,3 +142,29 @@ DECLARE + BEGIN + END; + $$ LANGUAGE plpgsql; ++ ++-- Manually set statistics for the way_nodes and relation_members table ++-- Postgres gets horrible counts of distinct values by sampling random pages ++-- and can be off by an 1-2 orders of magnitude ++ ++-- Size of the ways table / size of the way_nodes table ++ALTER TABLE way_nodes ALTER COLUMN way_id SET (n_distinct = -0.08); ++ ++-- Size of the nodes table / size of the way_nodes table * 0.998 ++-- 0.998 is a factor for nodes not in ways ++ALTER TABLE way_nodes ALTER COLUMN node_id SET (n_distinct = -0.83); ++ ++-- API allows a maximum of 2000 nodes/way. Unlikely to impact query plans. ++ALTER TABLE way_nodes ALTER COLUMN sequence_id SET (n_distinct = 2000); ++ ++-- Size of the relations table / size of the relation_members table ++ALTER TABLE relation_members ALTER COLUMN relation_id SET (n_distinct = -0.09); ++ ++-- Based on June 2013 data ++ALTER TABLE relation_members ALTER COLUMN member_id SET (n_distinct = -0.62); ++ ++-- Based on June 2013 data. Unlikely to impact query plans. ++ALTER TABLE relation_members ALTER COLUMN member_role SET (n_distinct = 6500); ++ ++-- Based on June 2013 data. Unlikely to impact query plans. ++ALTER TABLE relation_members ALTER COLUMN sequence_id SET (n_distinct = 10000); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/osmosis.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel