# PostgreSQLTypeMapping.java

    package org.codefilarete.stalactite.sql.statement.binder;

    import java.io.InputStream;
    import java.sql.Blob;
    import java.time.Instant;

    import org.codefilarete.stalactite.sql.ddl.DefaultTypeMapping;

    public class PostgreSQLTypeMapping extends DefaultTypeMapping {

        public PostgreSQLTypeMapping() {
            super();
            // because PostgreSQL doesn't support "blob" type
            put(InputStream.class, "bytea");
            put(byte[].class, "bytea");
            // because Blob are supposed to be store outside table we used the PostgreSQL type for it : OID refers to an external LargeObject, taken into account by PostgreSQL binders
            // see https://jdbc.postgresql.org/documentation/head/binary-data.html#binary-data-example
            put(Blob.class, "OID");
            put(double.class, "float8");
            put(Double.class, "float8");
            put(float.class, "float4");
            put(Float.class, "float4");
    		put(Instant.class, "timestamp(6) with time zone");
    		put(Enum.class, "smallint");
        }
    }