private void primaryKeyColumns(Connection conn, Table table, ProgressMeasure progress) {
        requireNonNulls(conn, table, progress);

        final SqlSupplier<ResultSet> supplier = () ->
            conn.getMetaData().getPrimaryKeys(null, null, table.getId());

        final TableChildMutator<PrimaryKeyColumn> mutator = (pkc, rs) -> {
            final String columnName = rs.getString(COLUMN_NAME);
            pkc.mutator().setId(columnName);
            pkc.mutator().setName(columnName);
            pkc.mutator().setOrdinalPosition(rs.getInt(KEY_SEQ));
        };

        tableChilds(
            table,
            PrimaryKeyColumn.class,
            table.mutator()::addNewPrimaryKeyColumn,
            supplier,
            rsChild -> rsChild.getString(COLUMN_NAME),
            mutator
        );

        if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) {
            LOGGER.warn(format("Table '%s' does not have any primary key.",
                table.getId()));
        }
    }
'true' below might speed up metadata retrieval since approximations can
be used. See https://github.com/speedment/speedment-enterprise/issues/168
runtime-parent/runtime-connector-parent/sqlite/src/main/java/com/speedment/runtime/connector/sqlite/internal/SqliteMetadataHandlerImpl.java