pgpack-dumper 0.3.4.6__cp313-cp313-win_amd64.whl → 0.3.4.8__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pgpack_dumper/common/copy.py +16 -8
- pgpack_dumper/common/reader.cp313-win_amd64.pyd +0 -0
- pgpack_dumper/common/stream.py +9 -4
- pgpack_dumper/dumper.py +18 -9
- pgpack_dumper/version.py +1 -1
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/METADATA +2 -2
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/RECORD +11 -11
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/licenses/CHANGELOG.md +13 -0
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/WHEEL +0 -0
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/licenses/README.md +0 -0
- {pgpack_dumper-0.3.4.6.dist-info → pgpack_dumper-0.3.4.8.dist-info}/top_level.txt +0 -0
pgpack_dumper/common/copy.py
CHANGED
|
@@ -62,7 +62,9 @@ class CopyBuffer:
|
|
|
62
62
|
host = self.cursor.connection.info.host
|
|
63
63
|
|
|
64
64
|
if not self.query:
|
|
65
|
-
self.logger.info(
|
|
65
|
+
self.logger.info(
|
|
66
|
+
f"Start read from {host}.{self.table_name}.".replace('"', ""),
|
|
67
|
+
)
|
|
66
68
|
self.cursor.execute(query_template("relkind").format(
|
|
67
69
|
table_name=self.table_name,
|
|
68
70
|
))
|
|
@@ -97,7 +99,9 @@ class CopyBuffer:
|
|
|
97
99
|
|
|
98
100
|
host = self.cursor.connection.info.host
|
|
99
101
|
size = 0
|
|
100
|
-
self.logger.info(
|
|
102
|
+
self.logger.info(
|
|
103
|
+
f"Start write into {host}.{self.table_name}.".replace('"', ""),
|
|
104
|
+
)
|
|
101
105
|
|
|
102
106
|
with self.cursor.copy(
|
|
103
107
|
query_template("copy_from").format(table_name=self.table_name)
|
|
@@ -108,7 +112,9 @@ class CopyBuffer:
|
|
|
108
112
|
del bytes_data
|
|
109
113
|
|
|
110
114
|
self.logger.info(f"Successfully sending {size} bytes.")
|
|
111
|
-
self.logger.info(
|
|
115
|
+
self.logger.info(
|
|
116
|
+
f"Write into {host}.{self.table_name} done.".replace('"', ""),
|
|
117
|
+
)
|
|
112
118
|
|
|
113
119
|
def copy_between(
|
|
114
120
|
self,
|
|
@@ -124,10 +130,11 @@ class CopyBuffer:
|
|
|
124
130
|
copy_buffer.query,
|
|
125
131
|
)
|
|
126
132
|
size = 0
|
|
127
|
-
|
|
133
|
+
message = (
|
|
128
134
|
f"Copy {source_object} from {source_host} into "
|
|
129
135
|
f"{destination_host}.{self.table_name} started."
|
|
130
|
-
)
|
|
136
|
+
).replace('"', "")
|
|
137
|
+
self.logger.info(message)
|
|
131
138
|
|
|
132
139
|
with self.cursor.copy(
|
|
133
140
|
query_template("copy_from").format(table_name=self.table_name)
|
|
@@ -138,10 +145,11 @@ class CopyBuffer:
|
|
|
138
145
|
del data
|
|
139
146
|
|
|
140
147
|
self.logger.info(f"Successfully sending {size} bytes.")
|
|
141
|
-
|
|
148
|
+
message = (
|
|
142
149
|
f"Copy {source_object} from {source_host}"
|
|
143
150
|
f"into {destination_host}.{self.table_name} done."
|
|
144
|
-
)
|
|
151
|
+
).replace('"', "")
|
|
152
|
+
self.logger.info(message)
|
|
145
153
|
|
|
146
154
|
def copy_reader(self) -> Generator[bytes, None, None]:
|
|
147
155
|
"""Read bytes from copy object."""
|
|
@@ -156,4 +164,4 @@ class CopyBuffer:
|
|
|
156
164
|
for data in copy_object:
|
|
157
165
|
yield bytes(data)
|
|
158
166
|
|
|
159
|
-
self.logger.info(f"Read {source} from {host} done.")
|
|
167
|
+
self.logger.info(f"Read {source} from {host} done.".replace('"', ""))
|
|
Binary file
|
pgpack_dumper/common/stream.py
CHANGED
|
@@ -5,6 +5,7 @@ from typing import (
|
|
|
5
5
|
|
|
6
6
|
from pgcopylib import PGCopyReader
|
|
7
7
|
from pgpack import (
|
|
8
|
+
PGPackError,
|
|
8
9
|
PGPackReader,
|
|
9
10
|
metadata_reader,
|
|
10
11
|
)
|
|
@@ -30,10 +31,14 @@ class StreamReader(PGPackReader):
|
|
|
30
31
|
self.pgtypes,
|
|
31
32
|
self.pgparam,
|
|
32
33
|
) = metadata_reader(self.metadata)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
self.
|
|
36
|
-
|
|
34
|
+
|
|
35
|
+
try:
|
|
36
|
+
self.pgcopy = PGCopyReader(
|
|
37
|
+
self.copyobj,
|
|
38
|
+
self.pgtypes,
|
|
39
|
+
)
|
|
40
|
+
except IndexError:
|
|
41
|
+
raise PGPackError("Empty data returned.")
|
|
37
42
|
|
|
38
43
|
def __str__(self) -> str:
|
|
39
44
|
"""String representation of PGPackReader."""
|
pgpack_dumper/dumper.py
CHANGED
|
@@ -17,6 +17,7 @@ from typing import (
|
|
|
17
17
|
from pgcopylib import PGCopyWriter
|
|
18
18
|
from pgpack import (
|
|
19
19
|
CompressionMethod,
|
|
20
|
+
PGPackError,
|
|
20
21
|
PGPackReader,
|
|
21
22
|
PGPackWriter,
|
|
22
23
|
metadata_reader,
|
|
@@ -76,21 +77,24 @@ class PGPackDumper:
|
|
|
76
77
|
self.logger.error(f"{error.__class__.__name__}: {error}")
|
|
77
78
|
raise PGPackDumperError(error)
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
self.dbname = self.cursor.fetchone()[0]
|
|
81
|
-
self.version = (
|
|
80
|
+
version = (
|
|
82
81
|
f"{self.connect.info.server_version // 10000}."
|
|
83
82
|
f"{self.connect.info.server_version % 1000}"
|
|
84
83
|
)
|
|
85
84
|
|
|
85
|
+
self.cursor.execute(query_template("dbname"))
|
|
86
|
+
self.dbname = self.cursor.fetchone()[0]
|
|
87
|
+
|
|
86
88
|
if self.dbname == "greenplum":
|
|
87
89
|
self.cursor.execute(query_template("gpversion"))
|
|
88
90
|
gpversion = self.cursor.fetchone()[0]
|
|
89
|
-
self.version = f"{
|
|
91
|
+
self.version = f"{gpversion} (postgres {version})"
|
|
92
|
+
else:
|
|
93
|
+
self.version = version
|
|
90
94
|
|
|
91
95
|
self.logger.info(
|
|
92
96
|
f"PGPackDumper initialized for host {self.connector.host}"
|
|
93
|
-
f"[
|
|
97
|
+
f"[{self.dbname} {self.version}]"
|
|
94
98
|
)
|
|
95
99
|
|
|
96
100
|
@staticmethod
|
|
@@ -291,10 +295,15 @@ class PGPackDumper:
|
|
|
291
295
|
*metadata_reader(metadata),
|
|
292
296
|
),
|
|
293
297
|
)
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
+
|
|
299
|
+
try:
|
|
300
|
+
return StreamReader(
|
|
301
|
+
metadata,
|
|
302
|
+
self.copy_buffer.copy_to(),
|
|
303
|
+
)
|
|
304
|
+
except PGPackError as error:
|
|
305
|
+
self.logger.error(f"{error.__class__.__name__}: {error}")
|
|
306
|
+
raise PGPackDumperReadError(error)
|
|
298
307
|
|
|
299
308
|
def read_dump(
|
|
300
309
|
self,
|
pgpack_dumper/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.3.4.
|
|
1
|
+
__version__ = "0.3.4.8"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pgpack_dumper
|
|
3
|
-
Version: 0.3.4.
|
|
3
|
+
Version: 0.3.4.8
|
|
4
4
|
Summary: Library for read and write PGPack format between PostgreSQL and file.
|
|
5
5
|
Author-email: 0xMihalich <bayanmobile87@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -40,7 +40,7 @@ Requires-Python: >=3.10
|
|
|
40
40
|
Description-Content-Type: text/markdown
|
|
41
41
|
License-File: README.md
|
|
42
42
|
License-File: CHANGELOG.md
|
|
43
|
-
Requires-Dist: pgpack==0.3.2.
|
|
43
|
+
Requires-Dist: pgpack==0.3.2.2
|
|
44
44
|
Requires-Dist: psycopg_binary>=3.3.2
|
|
45
45
|
Requires-Dist: psycopg>=3.3.2
|
|
46
46
|
Requires-Dist: sqlparse>=0.5.4
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
pgpack_dumper/__init__.py,sha256=wl4I02A6U4A6H3iZC4xNC1N-Y2f9GpgW8lSdbFAR-eA,1012
|
|
2
|
-
pgpack_dumper/dumper.py,sha256=
|
|
3
|
-
pgpack_dumper/version.py,sha256=
|
|
2
|
+
pgpack_dumper/dumper.py,sha256=qem6jAYKhmJ4lUdmIGmc0QkbNF6o4v_gLKTgl_36B58,15199
|
|
3
|
+
pgpack_dumper/version.py,sha256=_VcMoMg_omwkEhgETcuTFypXEXvQ5myfW2oMV38Riuc,25
|
|
4
4
|
pgpack_dumper/common/__init__.py,sha256=sWiUnLyvYZZJNIZYWl6MmntIUyDm-naM3DVoV3YcNDA,1300
|
|
5
5
|
pgpack_dumper/common/columns.py,sha256=sV3e0IErvuBZvIsATSQx_hajBp59VTmni5EmSAdyRBY,723
|
|
6
6
|
pgpack_dumper/common/connector.py,sha256=3SIGIDTd9OCdr4k5uiPJxzHMGifvsJAEotzzY1GBZgU,187
|
|
7
|
-
pgpack_dumper/common/copy.py,sha256=
|
|
7
|
+
pgpack_dumper/common/copy.py,sha256=srktkupr0GbGIUSOGeUKT-J_XBjalPAk2WeYEk4DnW8,5413
|
|
8
8
|
pgpack_dumper/common/diagram.py,sha256=IkmRtKF6Jt4z0cMWpAYGCZ4LwhNWQ4qkWYEJd8Xvd9I,2583
|
|
9
9
|
pgpack_dumper/common/errors.py,sha256=m0nLUBkpOrodRTesI9WYlpy_MUJ5GPY1e-TaI7RP2LU,617
|
|
10
10
|
pgpack_dumper/common/logger.py,sha256=PF7L1WYWkj4qU-CDpQTraqSiCPi_AZSmaUt1nscO5gM,1745
|
|
11
11
|
pgpack_dumper/common/metadata.py,sha256=CU-VzPMfBcD8bXZ07Y3qyJG9amig71bQyr_yqO4cOEo,1057
|
|
12
12
|
pgpack_dumper/common/query.py,sha256=xUGFqT88Wq9QPWukNZIEMuvwO8dNs_2wWQrTm3atAs8,1627
|
|
13
|
-
pgpack_dumper/common/reader.cp313-win_amd64.pyd,sha256=
|
|
13
|
+
pgpack_dumper/common/reader.cp313-win_amd64.pyd,sha256=stDHtqQRlMsryXixQW2VZO_6mzeROvkZ4UH2QkA4xPw,57344
|
|
14
14
|
pgpack_dumper/common/reader.pxd,sha256=_CVyKYdSScWrDZ7-FeCafFvXSOJDN3KwWIE0dH07Zbo,263
|
|
15
15
|
pgpack_dumper/common/reader.pyi,sha256=z4ZQMiHLUm1p7lDuWrhnQnv9_sv-GVmBa_5_0Ns1UZc,710
|
|
16
16
|
pgpack_dumper/common/reader.pyx,sha256=dxu2igQiJvq3EzPRoTpsirxS0ZlQxqTrJrAoz-8Waso,1888
|
|
17
|
-
pgpack_dumper/common/stream.py,sha256=
|
|
17
|
+
pgpack_dumper/common/stream.py,sha256=Ux7Y7JosiJK3Ntq_mzVv8-0fcjuVcmPjpKcIjUia6p8,2458
|
|
18
18
|
pgpack_dumper/common/structs.py,sha256=F2K2D7V6RqSPoZCp00huL6gj0_TSR7czjTvS6fC5Dro,1067
|
|
19
19
|
pgpack_dumper/common/queryes/attributes.sql,sha256=Bh1dLxcUMjmA86Bp8gujs7JZahm9Z1V_rzl5RlGd2us,600
|
|
20
20
|
pgpack_dumper/common/queryes/copy_from.sql,sha256=BTNlooo6xr1pcDBHX7EcAbk_V83r3je7ZEOvjEBDBbs,51
|
|
@@ -23,9 +23,9 @@ pgpack_dumper/common/queryes/dbname.sql,sha256=yJN5CJF3KOrbHdOYmoj7DjFveEojjWsmW
|
|
|
23
23
|
pgpack_dumper/common/queryes/gpversion.sql,sha256=iUwW40pFCVAZhDZ6ah8CIW75_KMBLyvUxMyqOI7vxtA,80
|
|
24
24
|
pgpack_dumper/common/queryes/prepare.sql,sha256=1pACITTlfQo1F_tEtOGigFCkWOkbxD421B4xJjjG70Y,185
|
|
25
25
|
pgpack_dumper/common/queryes/relkind.sql,sha256=wpyWaIiuCqQ0YaFPsNAEwwxSxuErNnRmP__-bfZ1vho,66
|
|
26
|
-
pgpack_dumper-0.3.4.
|
|
27
|
-
pgpack_dumper-0.3.4.
|
|
28
|
-
pgpack_dumper-0.3.4.
|
|
29
|
-
pgpack_dumper-0.3.4.
|
|
30
|
-
pgpack_dumper-0.3.4.
|
|
31
|
-
pgpack_dumper-0.3.4.
|
|
26
|
+
pgpack_dumper-0.3.4.8.dist-info/licenses/CHANGELOG.md,sha256=UpDWxi2BZZNFkEZJB9Su7BFmQzSOpXpL2l-LoFhP2r0,5957
|
|
27
|
+
pgpack_dumper-0.3.4.8.dist-info/licenses/README.md,sha256=fHnOo43qat1sEX7oOC9mH8lafk7AU13ec2UWYTG5OZY,4168
|
|
28
|
+
pgpack_dumper-0.3.4.8.dist-info/METADATA,sha256=6bgrSXQl2iC_asaazzRElqDK-4THC-AMKIoKaTxiSqE,6565
|
|
29
|
+
pgpack_dumper-0.3.4.8.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
|
|
30
|
+
pgpack_dumper-0.3.4.8.dist-info/top_level.txt,sha256=AhxLKWTyGtJWNLWUSyBu54xY4wjVS8vSXgW4wwq4bYk,14
|
|
31
|
+
pgpack_dumper-0.3.4.8.dist-info/RECORD,,
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Version History
|
|
2
2
|
|
|
3
|
+
## 0.3.4.8
|
|
4
|
+
|
|
5
|
+
* Add error where table have empty data
|
|
6
|
+
* Change server version view
|
|
7
|
+
* Remove double quotes from log where table name uses capital letters
|
|
8
|
+
* Fix build from source on linux systems
|
|
9
|
+
|
|
10
|
+
## 0.3.4.7
|
|
11
|
+
|
|
12
|
+
* Update depends pgcopylib==0.2.3.2
|
|
13
|
+
* Update depends pgpack==0.3.2.2
|
|
14
|
+
* Fix build from source on unix systems
|
|
15
|
+
|
|
3
16
|
## 0.3.4.6
|
|
4
17
|
|
|
5
18
|
* Update depends pgcopylib==0.2.3.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|