Welcome to gab.lc

My name is Gabriel Bordeaux and this is my personal website where I try to share cool stuff, mainly oriented towards PostgreSQL. Feel free to contact me!

What's up?

  1. November 9th, 2017 (article) : Migrate from PostgreSQL 9.6 to PostgreSQL 10
  2. October 5th, 2017 (article) : Install PostgreSQL 10 on Debian / Ubuntu
  3. July 20th, 2017 (article updated) : Big data: BigQuery vs Redshift vs Athena

A few hacks

Python password manager
BigQuery Foreign Data Wrapper for PostgreSQL
MySQL/PostgreSQL schema migrations made easy
Simple Redis work queue with added features (priorities, pop multiple items at once)
Coda Plugin that uses PHP_CodeSniffer to automatically fix PHP coding standards issues
GitHub Read article
mysql_generate_series is a MySQL replica of PostgreSQL's generate_series functions
GitHub Read article
Passwords easy for humans, hard for computers Edit
Automatically dump and archive PostgreSQL backups to Amazon S3
GitHub Read article
Run large MySQL updates with small batches to prevent table/row-level locks


We are open 24/7


  1. From MySQL to PostgreSQL: story of your large scale migration
  2. Check if you have an Index on your IDs in PostgreSQL: Why and how?
  3. ORDER BY [my custom order] in PostgreSQL: order your rows in a specific order, neither alphabetic or numeric
  4. Group by a range of values with PostgreSQL: group data by decades and more
  5. Average ignoring extremes (outliers) with PostgreSQL
  6. Weighted ntile: rank your data in weighted groups
  7. 10 tips and tricks for PostgreSQL (part 1)
  8. 10 tips and tricks for PostgreSQL (part 2)
  9. Store IP addresses in PostgreSQL with IP4R
  10. Window Functions in PostgreSQL
  11. Introduction to JSON support in PostgreSQL
  12. Improve the quality of your database using Foreign Keys in PostgreSQL
  13. Easy migrating step by step from PostgreSQL 9.3 to PostgreSQL 9.4
  14. How to select a random row from a PostgreSQL table with 100 million rows in 1.6 millisecond?
  15. PostgreSQL's subqueries: multiple columns, better and faster results
  16. PostgreSQL: Search dates on large tables with pg_IdFromDate()
  17. Install PostgreSQL 9.5 on Debian / Ubuntu
  18. Migrate from PostgreSQL 9.4 to 9.5 with easy steps
  19. Create a master-slave replication with PostgreSQL
  20. Cascading replication with PostgreSQL
  21. Migrate to PostgreSQL 9.6 with pg_upgrade
  22. Install PostgreSQL 10 on Debian / Ubuntu
  23. Migrate from PostgreSQL 9.6 to PostgreSQL 10


  1. mysql_generate_series() for MySQL: a replica of PostgreSQL's generate_series() functions
  2. Setup a MySQL replication with Percona Server with no downtime

Other themes

  1. Introduction to GPG: Discover how GPG works and how to use it
  2. (Personal) Yield management: How to maximize your profit and minimize your customer's satisfaction rate
  3. How-to: Migrate to PHP7 with Nginx + PHP-FPM
  4. Big data: BigQuery vs Redshift vs Athena

A few words

About me

I live in Florida, USA. I ran then sold a company, Galaxya (Paris, USA), from 2004 to 2014. I specialize in PostgreSQL & MySQL databases, AdServer development (for ClicManager) and payments solutions (for Webopass, HiPay, HiPay mobile & Rentabiliweb).
I used to be a Project Manager at Hi-Media / HiPay mobile (Paris, France) and at Fotolog (NY, USA) for a little while.
If you want to meet me, I am often in Florida, New York and Paris (contact me).
My Twitter account is @Gabrielbordeaux.

My skills

PostgreSQL, MySQL, Python, PHP, LUA, Bash-scripting, Docker, AWS, Debian sys admin, HTML, CSS, JavaScript, Perl (beginner), AppleScript (beginner).

Contact me

You can easily reach me at


Here is my GPG key: E1A5D827 (lean more about GPG)
Share this page:
Follow me to be notified of new articles:
Last update of this page: November 15, 2017
Please do not copy any of the content of this website without asking me first.