Skip to content

Instantly share code, notes, and snippets.

To help you with the process of converting a MySQL app to PostgreSQL, I collected a list of differences between MySQL and PostgreSQL (PG).
Important changes:
* Strings are quoted with '...' or with $token$...$token$. Single-quotes are escaped with single-quotes.
* Identifiers are folded to lowercase, unless they are quoted with "..." which makes them case-sensitive
* The max identifier length is 63
* There are some system columns that cannot be used as an identifier (probably not a problem)
* Expressions are evaluated in arbitrary order, so WHERE x > 0 AND y/x > 1.5 can lead to a division by zero and has to be replaced with WHERE CASE WHEN y > 0 THEN y/x > 1.5 ELSE FALSE END
* SELECT CASE WHEN x > 0 THEN x ELSE 1/0 END would still lead to a division by zero because the constant 1/0 is evaluated even before the query starts
@AndreKR
AndreKR / wireshark_remote.bat
Created December 13, 2015 23:49
Wireshark remote
@echo off
set PLINK_PATH=C:\Program Files (x86)\PuTTY\plink.exe
set WIRESHARK_PATH=C:\Program Files\Wireshark\Wireshark.exe
if "%1" == "" goto :usage
"%PLINK_PATH%" -ssh %1 "tcpdump -ni %2 -s 0 -w - not port 22" | "%WIRESHARK_PATH%" -k -i -
goto :end
@AndreKR
AndreKR / elasticsearch_notes.md
Last active December 11, 2015 00:36
Elasticsearch notes

Elasticsearch notes

Things named "explain"

Three things can be explained in elasticsearch:

Explain for each hit how its score was computed (Docs: Explain)
GET //_search?explain