Comment Comment by randomdata That is strong typing. Python, a dynamically typed language, exhibits the same quality: >>> v = "" >>> v + 42 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str Types are most certainly not static (at least not in Postgres or most other implementations): CREATE TABLE varchars(v VARCHAR); ALTER TABLE varchars ALTER COLUMN v TYPE INTEGER USING v::integer; PREPARE v1 AS SELECT v + 42 FROM varchars; parent randomdata 3 years ago