add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
CREATE TABLE data(
id SERIAL PRIMARY KEY,
lon float,
lat float);

INSERT INTO data (lon,lat)
SELECT random() * 50 + 1,random() * 80 + 1 FROM generate_series(1,100000);

ALTER TABLE data ADD COLUMN geog geography (point,4326);
UPDATE data SET geog = ST_MakePoint(lon,lat);

CREATE INDEX idx_data_point ON data USING gist (geog) ;
CREATE TABLE
INSERT 0 100000
ALTER TABLE
UPDATE 100000
CREATE INDEX
EXPLAIN ANALYSE
SELECT ST_Distance(geog,ST_MakePoint(49.9 ,6.7)::geography,true)
FROM data
WHERE ST_DWithin(geog,ST_MakePoint(49.9,6.7),10000,true);
QUERY PLAN
Index Scan using idx_data_point on data (cost=0.41..544.58 rows=10 width=8) (actual time=0.218..0.219 rows=0 loops=1)
  Index Cond: (geog && _st_expand('0101000020E61000003333333333F34840CDCCCCCCCCCC1A40'::geography, '10000'::double precision))
  Filter: st_dwithin(geog, '0101000020E61000003333333333F34840CDCCCCCCCCCC1A40'::geography, '10000'::double precision, true)
Planning Time: 1.591 ms
Execution Time: 0.606 ms
EXPLAIN