Visualize PostGIS index using Gevel in Postgres 9.6:
git clone git://sigaev.ru/gevel
cd gevel
git checkout bd8b8b031a8049a6e7c18c00946bfbd99d75d27f
USE_PGXS=1 make
sudo USE_PGXS=1 make install
psql -f /usr/share/postgresql/9.6/contrib/gevel.sql
with params as ( | |
select 'SRID=4326;POINT(0 0)' :: gemetry as geom | |
) | |
select | |
a.altitude, | |
a.distance, | |
b.altitude, -- may be null, then do not interpolate | |
b.distance -- may be null, then do not interpolate | |
from (-- closest linestring | |
select |
drop function if exists progressbar( double precision, double precision, timestamptz ); | |
create or replace function progressbar( | |
done_count float, | |
total_count float, | |
start_time timestamptz default now() | |
) | |
returns setof void | |
as $$ | |
declare | |
display_progressbar boolean; |
Visualize PostGIS index using Gevel in Postgres 9.6:
git clone git://sigaev.ru/gevel
cd gevel
git checkout bd8b8b031a8049a6e7c18c00946bfbd99d75d27f
USE_PGXS=1 make
sudo USE_PGXS=1 make install
psql -f /usr/share/postgresql/9.6/contrib/gevel.sql
drop table if exists building_travel_curve; | |
create table building_travel_curve as ( | |
select | |
ST_MakeLine(ST_Centroid(p.way) | |
order by tsp.seq) as geom, | |
1 as id | |
from pgr_tsp( | |
$$ | |
select | |
osm_id :: int4 as id, |
given: | |
- Postgres database gis, user gis, accepting trust connections on localhost | |
# grab software | |
sudo apt install osmosis curl wget unzip | |
# import schema | |
curl https://raw.githubusercontent.com/openstreetmap/openstreetmap-website/master/db/structure.sql | psql | |
# get latest osmosis wit non-broken pbf support | |
wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.zip | |
unzip osmosis-latest.zip |
gis=> drop type if exists apple; | |
DROP TYPE | |
gis=> create type apple as (amount numeric(1,0)); | |
CREATE TYPE | |
gis=> select '(1)'::apple; | |
apple | |
------- | |
(1) | |
(1 row) |
create or replace function aaa(aaa integer) | |
returns text as $$ | |
begin | |
raise notice 'passed1'; | |
return aaa :: text || '😼'; | |
end | |
$$ language 'plpgsql' strict; | |
select case when aaa(1) = '1' | |
then null |
gis=> create or replace function 😼ify ( 😼 integer ) | |
gis-> returns text as $$ | |
gis$> select 😼::text||'😼' | |
gis$> $$ language 'sql' strict; | |
CREATE FUNCTION | |
gis=> | |
gis=> create operator 😼( | |
gis(> leftarg = integer, | |
gis(> procedure = 😼ify | |
gis(> ); |
create or replace function _final_median(anyarray) | |
returns float8 as $$ | |
with q as | |
( | |
select val | |
from unnest($1) val | |
where VAL is not null | |
order by 1 | |
), | |
cnt as |
TL;DR
9.4 -> 9.5:
sudo pg_dropcluster 9.5 main --stop
sudo service postgresql stop
sudo pg_upgradecluster -m upgrade -k 9.4 main
sudo su postgres -c "/usr/lib/postgresql/9.5/bin/vacuumdb --all --analyze-in-stages"
sudo pg_dropcluster 9.4 main