Skip to content

OsOps::read methods were corrected (text mode) #171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

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
1 participant