PostgreSQL Extensions — Database

Apa itu PostgreSQL Extensions? Extensions menambahkan fitur baru ke PostgreSQL tanpa harus menulis ulang database engine. Install extension untuk mendapatkan ke

Apa itu PostgreSQL Extensions?

Extensions menambahkan fitur baru ke PostgreSQL tanpa harus menulis ulang database engine. Install extension untuk mendapatkan kemampuan tambahan.

Extension Populer

1. pg_trgm (Trigram Matching)

Fuzzy search dan similarity matching. Cocok untuk typo-tolerant search.

CREATE EXTENSION pg_trgm;

-- Index untuk fuzzy search
CREATE INDEX idx_users_name_trgm ON users
USING GIN(name gin_trgm_ops);

-- Pencarian mirip (typo-tolerant)
SELECT name, similarity(name, 'Buddi') AS sim
FROM users
WHERE name % 'Buddi'  -- similarity > threshold
ORDER BY sim DESC;

2. uuid-ossp

CREATE EXTENSION "uuid-ossp";
-- Atau gunakan gen_random_uuid() bawaan PG 13+
SELECT uuid_generate_v4(); -- random UUID
SELECT gen_random_uuid();  -- native alternative

3. PostGIS (Geospatial)

CREATE EXTENSION postgis;

CREATE TABLE stores (
    id SERIAL PRIMARY KEY,
    name VARCHAR(200),
    location GEOGRAPHY(POINT, 4326)
);

-- Cari toko dalam radius 5km
SELECT name, ST_Distance(location, ST_MakePoint(106.8, -6.2)::geography) AS distance
FROM stores
WHERE ST_DWithin(location, ST_MakePoint(106.8, -6.2)::geography, 5000)
ORDER BY distance;

4. pgcrypto

CREATE EXTENSION pgcrypto;
-- Hash password di level database
INSERT INTO users (email, password_hash)
VALUES ('[email protected]', crypt('rahasia', gen_salt('bf')));

Cara Manage Extensions

-- Lihat extensions yang terinstall
SELECT * FROM pg_extension;

-- Install extension
CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- Hapus extension
DROP EXTENSION pg_trgm;

Yang akan kamu pelajari