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.
@@ -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(f"Start read from {host}.{self.table_name}.")
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(f"Start write into {host}.{self.table_name}.")
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(f"Write into {host}.{self.table_name} done.")
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
- self.logger.info(
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
- self.logger.info(
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('"', ""))
@@ -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
- self.pgcopy = PGCopyReader(
34
- self.copyobj,
35
- self.pgtypes,
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
- self.cursor.execute(query_template("dbname"))
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"{self.version} gp {gpversion}"
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"[version {self.version}]"
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
- return StreamReader(
295
- metadata,
296
- self.copy_buffer.copy_to(),
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.6"
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.6
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.1
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=2mEgDL0xBpJry4FSkbCIYElhkbzAKvdpu3FHr5R0Ppg,14935
3
- pgpack_dumper/version.py,sha256=ouzxRe1T6x3Vy-BWPI7krjxiub38rM2uWRCdBETs8Ek,25
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=QN35_6glT5DCGg9_dnZ5HDSIFAlaQAp0H12Too4CesU,5162
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=lWk6BRZsoGc_6vREDesHXFHPigjIrh0Pd0IlQnYgpBE,57344
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=6yq4flDZYYJ7--1k3Q3g0JflkJIUg-Vo2yHS4MDwu3M,2325
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.6.dist-info/licenses/CHANGELOG.md,sha256=1GF8nZszE9NommXhWE3y0qS4MeOgtTA9Ov5HI6f4-c0,5629
27
- pgpack_dumper-0.3.4.6.dist-info/licenses/README.md,sha256=fHnOo43qat1sEX7oOC9mH8lafk7AU13ec2UWYTG5OZY,4168
28
- pgpack_dumper-0.3.4.6.dist-info/METADATA,sha256=qVSN-bUzRQUHDCyH20l4EdSF1mF5uLwJU1EIkuYmhy8,6565
29
- pgpack_dumper-0.3.4.6.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
30
- pgpack_dumper-0.3.4.6.dist-info/top_level.txt,sha256=AhxLKWTyGtJWNLWUSyBu54xY4wjVS8vSXgW4wwq4bYk,14
31
- pgpack_dumper-0.3.4.6.dist-info/RECORD,,
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