Slide 1

Slide 1 text

Hacking PostgreSQL with Eclipse Metin Döşlü [email protected] PGCONF.EU 2017 1

Slide 2

Slide 2 text

Motivation 2 Postgres can’t do everything You can extend it Eclipse makes it easy

Slide 3

Slide 3 text

Extensions 3 postGIS - Spatial and Geographic objects pg_cron - Run periodic jobs hll - HyperLogLog (approximate distinct count) citus - Scale across multiple machines

Slide 4

Slide 4 text

Personal Story 4 Distributed PostgreSQL PostgreSQL Extension

Slide 5

Slide 5 text

Why Eclipse? 5 Start Fast Easy Navigation Rich Features

Slide 6

Slide 6 text

Demo Outline 6 PostgreSQL Inside Eclipse Walking Around Deep Dive

Slide 7

Slide 7 text

Demo Outline 7 PostgreSQL Inside Eclipse Walking Around Deep Dive

Slide 8

Slide 8 text

Build PostgreSQL 8 ./configure CFLAGS=-"O0 -g" make -s -j4 sudo make install

Slide 9

Slide 9 text

Import PostgreSQL into Eclipse 9 File -> Import C/C++ -> Existing Code as Makefile Project Turn off scalability mode (optional)

Slide 10

Slide 10 text

Demo Outline 10 PostgreSQL Inside Eclipse Walking Around Deep Dive

Slide 11

Slide 11 text

Attach GDB 11 select pg_backend_pid(); Debug As -> Debug Configurations C/C++ Attach to Application

Slide 12

Slide 12 text

PostgreSQL Data Structures 12 Variables window p pprint(parse) printf "%s", pretty_format_node_dump(nodeToString(parse)) Preferences -> C/C++ -> Debug -> GDB -> Check “Show the GDB traces...”

Slide 13

Slide 13 text

Errors 13 errstart() in elog.c if (elevel >= ERROR)

Slide 14

Slide 14 text

Crashes 14 pg_crasher

Slide 15

Slide 15 text

Demo Outline 15 PostgreSQL Inside Eclipse Walking Around Deep Dive

Slide 16

Slide 16 text

Gatekeeper 16 watch

Slide 17

Slide 17 text

Demo Outline 17 PostgreSQL Inside Eclipse Walking Around Deep Dive

Slide 18

Slide 18 text

Summary 18 Postgres can’t do everything You can extend Eclipse makes it easy

Slide 19

Slide 19 text

Hacking PostgreSQL with Eclipse Metin Döşlü [email protected] PGCONF.EU 2017 19