Skip to content

Conversation

dmitry-lipetsk
Copy link
Collaborator

LocalOperations::read and RemoteOperations::read (text mode) are corrected.

  • LocalOperations::read uses "open(filename, mode='r', encoding=encoding)"
  • RemoteOperations::read uses io.BytesIO + io.TextIOWrapper

This patch is tested on Windows 11 (Python 3.13) and Ubuntu 24.04 (Python 3.12).

Internal tests for probackup v2 were passed, too.

Now they always read a file as binary.

When 'binary' parameter is False we will use 'encoding' parameter to decode bytes into string.

Binary read does not allow an usage of 'encoding' parameter (InvalidOperationException is raised).

New tests are added.
LocalOps uses "open(filename, mode='r', encoding=encoding)"

RemoteOps uses "io.TextIOWrapper(io.BytesIO(binaryData), encoding=encoding)"

It solves a problem on Windows.
@dmitry-lipetsk dmitry-lipetsk merged commit 155f6c8 into postgrespro:master Dec 25, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant