Задействовал класс NpgsqlCopyIn, реализующий sql-команду COPY.
При наполнении таблиц возникает критическая ошибка при чтении символа ¤ (0xA4) в кодировке 866 источника.
Проблема возникает от того, что библиотека конвертирует входной файл в кодировку UTF8, и потом опять конвертирует в кодировку базы сервера, хотя можно было бы обойтись и без этого: логично приготовить файлы именно кодировке базы сервера.
также вызывает сбой чтение 0х00, ну и наверно других символов, которые не хотят переходить в UTF8.
Насколько я понимаю, данная
Насколько я понимаю, данная библиотека относится не к PostgreSQL, а к фреймфорку .NET
Логичней задать этот вопрос разработчикам библиотеки.
Нет, данная библиотека входит в Postgres
в последний инсталляционный пакет. Написана на С#, следовательно наследование от Framework есть, поэтому в каком конкретно модуле зарыта -- это вопрос к разработчику именно npgsql. Порывшись в гугле обнаружил, что о проблеме известно давно и решения на сегодня нет, кроме как исключать из источника файла все символы, которые не могут быть преобразованы. Либо просить разработчиков npgsql написать критические участки кода в unsafe, если это вообще возможно.