SlideShare a Scribd company logo
1 of 66
Download to read offline
HOOKS
for Fun and Profit
david@fetter.org
SCaLE 15x
March 2, 2017
http://github.com/davidfetter
Tuesday, March 7, 17
$ whoami
Tuesday, March 7, 17
David Fetter
Tuesday, March 7, 17
David Fetter
Husband and father of four
Tuesday, March 7, 17
David Fetter
Husband and father of four
Long-time PostgreSQL contributor
Tuesday, March 7, 17
David Fetter
Husband and father of four
Long-time PostgreSQL contributor
Expander of SQL
Tuesday, March 7, 17
David Fetter
Husband and father of four
Long-time PostgreSQL contributor
Expander of SQL
Happy contractor for OpenSCG at GE
Digital
Tuesday, March 7, 17
Rate me!
Tuesday, March 7, 17
Have you ever?
Tuesday, March 7, 17
Have you ever?
Tuesday, March 7, 17
Have you ever?
Tuesday, March 7, 17
Have you ever?
Updated or deleted every row
Tuesday, March 7, 17
Have you ever?
Updated or deleted every row
by accident?
Tuesday, March 7, 17
Have you ever?
Updated or deleted every row
by accident?
Tuesday, March 7, 17
Have you ever?
Updated or deleted every row
by accident?
Tuesday, March 7, 17
Have you ever?
Updated or deleted every row
by accident?
Tuesday, March 7, 17
Have you ever?
Wanted to slow people down when they
auth too fast
Tuesday, March 7, 17
Have you ever?
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
that required SERIALIZABLE
Tuesday, March 7, 17
Have you ever?
Wanted to replace our TSP-based
planner with one based on simulated
annealing
Tuesday, March 7, 17
You could:
Updated or deleted from a whole table
without meaning to?
Lock out everyone who could make a
mistake...
Tuesday, March 7, 17
You could
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Hope the network layer handles it
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Hope the network layer handles it
and isn’t Mallory
Tuesday, March 7, 17
You could
Tuesday, March 7, 17
You could
Made a cool constraint
Tuesday, March 7, 17
You could
Made a cool constraint
that required SERIALIZABLE
Tuesday, March 7, 17
You could
Made a cool constraint
that required SERIALIZABLE
Add a check for that
Tuesday, March 7, 17
You could
Made a cool constraint
that required SERIALIZABLE
Add a check for that
in. every. single. trigger.
Tuesday, March 7, 17
You could
Wanted to replace our TSP-based
planner with one based on simulated
annealing
Um....er....
Tuesday, March 7, 17
Hooks to the Rescue!
Tuesday, March 7, 17
Hooks?
Tuesday, March 7, 17
Snag
Tuesday, March 7, 17
Bag
Tuesday, March 7, 17
Act
Tuesday, March 7, 17
Back
Tuesday, March 7, 17
You need to write C
Tuesday, March 7, 17
Tuesday, March 7, 17
Preamble
#include "postgres.h"
/* Headers you need start here: */
/* Headers you need end here: */
PG_MODULE_MAGIC;
/* Hooking: All hooks start with this. */
void _PG_init(void);
/* Unhooking: All hooks end with this. */
void _PG_fini(void);
Tuesday, March 7, 17
Snag/Bag
/*
* There is a type for each hook.
* This is not one of them.
* You will need it for hooking and unhooking.
*/
static System_hook_type prev_system_hook = NULL;
void _PG_init(void)
{
prev_system_hook = System_hook;
System_hook = blackhole_hook;
}
Tuesday, March 7, 17
Act
static
void blackhole_hook
{
/* Your hook code goes here */
}
Tuesday, March 7, 17
Back
void _PG_fini(void)
{
System_hook = prev_system_hook;
}
Tuesday, March 7, 17
82 hooks
Tuesday, March 7, 17
Tuesday, March 7, 17
You could:
Updated or deleted from a whole table
without meaning to?
Lock out everyone who could make a
mistake...
Make a simple hook for simple errors
Tuesday, March 7, 17
Boring C Code:
Tuesday, March 7, 17
Live Demo!
Tuesday, March 7, 17
Have you ever?
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
that required SERIALIZABLE
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
that required SERIALIZABLE
Tuesday, March 7, 17
Have you ever?
Made a cool constraint
that required SERIALIZABLE
Make a simple hook!
Tuesday, March 7, 17
You could
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Hope the network layer handles it
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Hope the network layer handles it
and isn’t Mallory
Tuesday, March 7, 17
You could
Wanted to slow people down when they
auth too fast
Hope the network layer handles it
and isn’t Mallory
auth_delay (contrib)
Tuesday, March 7, 17
You could
Wanted to replace our TSP-based
planner with one based on simulated
annealing
Um....er....
2313 LoC later: Wow!
Tuesday, March 7, 17
Questions?
Tuesday, March 7, 17
tl;dr
Tuesday, March 7, 17
tl;dr
• Lots has already been done
Tuesday, March 7, 17
tl;dr
• Lots has already been done
• Your imagination is the main limit
Tuesday, March 7, 17
tl;dr
• Lots has already been done
• Your imagination is the main limit
• Have fun!
Tuesday, March 7, 17
Thank you!
Tuesday, March 7, 17

More Related Content

Viewers also liked

051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0
051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0
051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0Joel Book
 
pastroalists in modern world
pastroalists in modern worldpastroalists in modern world
pastroalists in modern worldshakthi shekar
 
Pro PostgreSQL, OSCon 2008
Pro PostgreSQL, OSCon 2008Pro PostgreSQL, OSCon 2008
Pro PostgreSQL, OSCon 2008Robert Treat
 
Building a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQLBuilding a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQLKudos S.A.S
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverJohn Paulett
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQLJignesh Shah
 
Percobaan membuat proposal aplikasi
Percobaan membuat proposal aplikasiPercobaan membuat proposal aplikasi
Percobaan membuat proposal aplikasiAdenuar Purnomo
 
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMO
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMOREVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMO
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMOpio_cid
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQLMark Wong
 
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)Amazon Web Services
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuningelliando dias
 

Viewers also liked (20)

051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0
051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0
051116 - How Savvy Brands Use Email - CNX16_Book and White v3.0
 
Muralla China
Muralla ChinaMuralla China
Muralla China
 
pastroalists in modern world
pastroalists in modern worldpastroalists in modern world
pastroalists in modern world
 
Presentación Electiva VI leu
Presentación Electiva VI leuPresentación Electiva VI leu
Presentación Electiva VI leu
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Pro PostgreSQL, OSCon 2008
Pro PostgreSQL, OSCon 2008Pro PostgreSQL, OSCon 2008
Pro PostgreSQL, OSCon 2008
 
Building a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQLBuilding a Spatial Database in PostgreSQL
Building a Spatial Database in PostgreSQL
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And Failover
 
My experience with embedding PostgreSQL
 My experience with embedding PostgreSQL My experience with embedding PostgreSQL
My experience with embedding PostgreSQL
 
Direct and Indirect speech
Direct and Indirect speechDirect and Indirect speech
Direct and Indirect speech
 
Percobaan membuat proposal aplikasi
Percobaan membuat proposal aplikasiPercobaan membuat proposal aplikasi
Percobaan membuat proposal aplikasi
 
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMO
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMOREVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMO
REVISTA AULA LECTURAS ABIERTAS 3 - ARQUITECTURA, URBANISMO
 
The value of EBVs for the US meat goat industry
The value of EBVs for the US meat goat industryThe value of EBVs for the US meat goat industry
The value of EBVs for the US meat goat industry
 
Why use PostgreSQL?
Why use PostgreSQL?Why use PostgreSQL?
Why use PostgreSQL?
 
Android & PostgreSQL
Android & PostgreSQLAndroid & PostgreSQL
Android & PostgreSQL
 
PostgreSQL and RAM usage
PostgreSQL and RAM usagePostgreSQL and RAM usage
PostgreSQL and RAM usage
 
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)
AWS re:Invent 2016: How Citus Enables Scalable PostgreSQL on AWS (DAT207)
 
Get to know PostgreSQL!
Get to know PostgreSQL!Get to know PostgreSQL!
Get to know PostgreSQL!
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuning
 
02-26-17, Ruth 3 & 4, Redeemed and Secure
02-26-17, Ruth 3 & 4, Redeemed and Secure02-26-17, Ruth 3 & 4, Redeemed and Secure
02-26-17, Ruth 3 & 4, Redeemed and Secure
 

Similar to PostgreSQL Hooks for Fun and Profit

Travis CI – what's inside?
Travis CI – what's inside?Travis CI – what's inside?
Travis CI – what's inside?Olga Lavrentieva
 
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpPainful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpC4Media
 
Web directions code 13 notes
Web directions code 13 notesWeb directions code 13 notes
Web directions code 13 notesjaredau
 
Cleanweb uk worthing
Cleanweb uk worthingCleanweb uk worthing
Cleanweb uk worthingCleanweb UK
 
6 tips on faster data journalism workflows
6 tips on faster data journalism workflows6 tips on faster data journalism workflows
6 tips on faster data journalism workflowsPaul Bradshaw
 
Authorship Seminar: Bot-Written Texts
Authorship Seminar: Bot-Written TextsAuthorship Seminar: Bot-Written Texts
Authorship Seminar: Bot-Written TextsKrista Kennedy
 

Similar to PostgreSQL Hooks for Fun and Profit (7)

Travis CI – what's inside?
Travis CI – what's inside?Travis CI – what's inside?
Travis CI – what's inside?
 
Painful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling UpPainful Success - Lessons Learned while Scaling Up
Painful Success - Lessons Learned while Scaling Up
 
Web directions code 13 notes
Web directions code 13 notesWeb directions code 13 notes
Web directions code 13 notes
 
Cleanweb uk worthing
Cleanweb uk worthingCleanweb uk worthing
Cleanweb uk worthing
 
6 tips on faster data journalism workflows
6 tips on faster data journalism workflows6 tips on faster data journalism workflows
6 tips on faster data journalism workflows
 
Go100 powerpoint 07-t text
Go100 powerpoint 07-t textGo100 powerpoint 07-t text
Go100 powerpoint 07-t text
 
Authorship Seminar: Bot-Written Texts
Authorship Seminar: Bot-Written TextsAuthorship Seminar: Bot-Written Texts
Authorship Seminar: Bot-Written Texts
 

More from David Fetter

Assertions and how to use them
Assertions and how to use themAssertions and how to use them
Assertions and how to use themDavid Fetter
 
Tree tricks osdc_melbourne_20101124
Tree tricks osdc_melbourne_20101124Tree tricks osdc_melbourne_20101124
Tree tricks osdc_melbourne_20101124David Fetter
 
Grouping sets sfpug_20141118
Grouping sets sfpug_20141118Grouping sets sfpug_20141118
Grouping sets sfpug_20141118David Fetter
 
Rdbms roadmap 20140130
Rdbms roadmap 20140130Rdbms roadmap 20140130
Rdbms roadmap 20140130David Fetter
 
Slides pg conf_eu_20131031
Slides pg conf_eu_20131031Slides pg conf_eu_20131031
Slides pg conf_eu_20131031David Fetter
 
Federation with foreign_data_wrappers_pg_conf_eu_20131031
Federation with foreign_data_wrappers_pg_conf_eu_20131031Federation with foreign_data_wrappers_pg_conf_eu_20131031
Federation with foreign_data_wrappers_pg_conf_eu_20131031David Fetter
 
Intergalactic data speak_highload++_20131028
Intergalactic data speak_highload++_20131028Intergalactic data speak_highload++_20131028
Intergalactic data speak_highload++_20131028David Fetter
 
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008David Fetter
 
Ct es past_present_future_nycpgday_20130322
Ct es past_present_future_nycpgday_20130322Ct es past_present_future_nycpgday_20130322
Ct es past_present_future_nycpgday_20130322David Fetter
 
Universal data access_with_sql_med
Universal data access_with_sql_medUniversal data access_with_sql_med
Universal data access_with_sql_medDavid Fetter
 
Lightning sf perl_mongers_20120327
Lightning sf perl_mongers_20120327Lightning sf perl_mongers_20120327
Lightning sf perl_mongers_20120327David Fetter
 
Threat modeling sf_perl_mongers_20130227
Threat modeling sf_perl_mongers_20130227Threat modeling sf_perl_mongers_20130227
Threat modeling sf_perl_mongers_20130227David Fetter
 
Security revolutionized fosdem_20120205
Security revolutionized fosdem_20120205Security revolutionized fosdem_20120205
Security revolutionized fosdem_20120205David Fetter
 
Writeable ct es_pgcon_may_2011
Writeable ct es_pgcon_may_2011Writeable ct es_pgcon_may_2011
Writeable ct es_pgcon_may_2011David Fetter
 
View triggers pg_east_20110325
View triggers pg_east_20110325View triggers pg_east_20110325
View triggers pg_east_20110325David Fetter
 
PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25David Fetter
 

More from David Fetter (16)

Assertions and how to use them
Assertions and how to use themAssertions and how to use them
Assertions and how to use them
 
Tree tricks osdc_melbourne_20101124
Tree tricks osdc_melbourne_20101124Tree tricks osdc_melbourne_20101124
Tree tricks osdc_melbourne_20101124
 
Grouping sets sfpug_20141118
Grouping sets sfpug_20141118Grouping sets sfpug_20141118
Grouping sets sfpug_20141118
 
Rdbms roadmap 20140130
Rdbms roadmap 20140130Rdbms roadmap 20140130
Rdbms roadmap 20140130
 
Slides pg conf_eu_20131031
Slides pg conf_eu_20131031Slides pg conf_eu_20131031
Slides pg conf_eu_20131031
 
Federation with foreign_data_wrappers_pg_conf_eu_20131031
Federation with foreign_data_wrappers_pg_conf_eu_20131031Federation with foreign_data_wrappers_pg_conf_eu_20131031
Federation with foreign_data_wrappers_pg_conf_eu_20131031
 
Intergalactic data speak_highload++_20131028
Intergalactic data speak_highload++_20131028Intergalactic data speak_highload++_20131028
Intergalactic data speak_highload++_20131028
 
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008
G so c_and_commitfests_and_pointy_hair_oh_my_sfpug_20131008
 
Ct es past_present_future_nycpgday_20130322
Ct es past_present_future_nycpgday_20130322Ct es past_present_future_nycpgday_20130322
Ct es past_present_future_nycpgday_20130322
 
Universal data access_with_sql_med
Universal data access_with_sql_medUniversal data access_with_sql_med
Universal data access_with_sql_med
 
Lightning sf perl_mongers_20120327
Lightning sf perl_mongers_20120327Lightning sf perl_mongers_20120327
Lightning sf perl_mongers_20120327
 
Threat modeling sf_perl_mongers_20130227
Threat modeling sf_perl_mongers_20130227Threat modeling sf_perl_mongers_20130227
Threat modeling sf_perl_mongers_20130227
 
Security revolutionized fosdem_20120205
Security revolutionized fosdem_20120205Security revolutionized fosdem_20120205
Security revolutionized fosdem_20120205
 
Writeable ct es_pgcon_may_2011
Writeable ct es_pgcon_may_2011Writeable ct es_pgcon_may_2011
Writeable ct es_pgcon_may_2011
 
View triggers pg_east_20110325
View triggers pg_east_20110325View triggers pg_east_20110325
View triggers pg_east_20110325
 
PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25PL/Parrot San Francisco Perl Mongers 2010/05/25
PL/Parrot San Francisco Perl Mongers 2010/05/25
 

Recently uploaded

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Recently uploaded (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

PostgreSQL Hooks for Fun and Profit