]> git.openstreetmap.org Git - rails.git/commit
Remove need for shared library PostgreSQL functions
authorMatt Amos <zerebubuth@gmail.com>
Fri, 4 Oct 2019 12:09:32 +0000 (13:09 +0100)
committerMatt Amos <zerebubuth@gmail.com>
Fri, 4 Oct 2019 12:25:00 +0000 (13:25 +0100)
commitced8ac86abac9c9efad7b74a0efe2e252ddc59af
treeee3c4e4017dbc97a1f7d9562fe80b47c639a1901
parent1d7e4a4c467c0efde921955bb7e1337ea48df622
Remove need for shared library PostgreSQL functions

This repo contains code for three functions to be loaded into PostgreSQL as a shared library:

1. `maptile_for_point`, which is used only by the `/changes` API call. This API call is little-used and IMHO should be deprecated and removed. However, even now it's hardly on the hot path for most development activities.
2. `tile_for_point`, which is used only in migrations. At this point, it seems unlikely that anyone will be doing a migration on existing data which would call this function (most developers will be running migrations on an empty database, to set it up).
3. `xid_to_int4`, which is only used for replication using Osmosis and isn't used in the Rails code at all. Hopefully this will be replaced Real Soon Now, but until then it's a quite advanced feature that most developers won't need.

Therefore, this patch proposes to replace the above three shared library functions with SQL implementations of the first two. These are _much_ slower - by a factor of about 30x, however this makes no difference when they're run on a completely empty database. In return, we're able to drop a dependency on the PostgreSQL server development package, and clean a few lines out of the installation instructions.

It's still possible to make and install the shared library functions, and I've included instructions about how to do that - although it shouldn't be necessary for the vast majority of `openstreetmap-website` developers.
.travis.yml
INSTALL.md
db/functions/functions.sql [new file with mode: 0644]
script/vagrant/setup/provision.sh