PostgreSQL is particularly finicky when loading data in binary mode and will apply no cast rules. This means, for example, that passing the value 100 to an integer column will fail, because Psycopg will pass it as a smallint value, and the server will reject it because its size doesn’t match what expected.