Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9a693d4

Browse files
committed
Remove printlog function
1 parent215234e commit9a693d4

File tree

1 file changed

+141
-158
lines changed

1 file changed

+141
-158
lines changed

‎tests/python/partitioning_test.py

Lines changed: 141 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -81,115 +81,102 @@ def catchup_replica(self, master, replica):
8181
%replica.name
8282
master.poll_query_until('postgres',wait_lsn_query)
8383

84-
defprintlog(self,logfile):
85-
withopen(logfile,'r')aslog:
86-
forlineinlog.readlines():
87-
print(line)
88-
8984
deftest_concurrent(self):
9085
"""Tests concurrent partitioning"""
91-
try:
92-
node=self.start_new_pathman_cluster()
93-
self.init_test_data(node)
9486

95-
node.psql(
87+
node=self.start_new_pathman_cluster()
88+
self.init_test_data(node)
89+
90+
node.psql(
91+
'postgres',
92+
'select partition_table_concurrently(\'abc\')')
93+
94+
whileTrue:
95+
# update some rows to check for deadlocks
96+
node.safe_psql(
9697
'postgres',
97-
'select partition_table_concurrently(\'abc\')')
98+
'''
99+
update abc set t = 'test'
100+
where id in (select (random() * 300000)::int
101+
from generate_series(1, 3000))
102+
''')
98103

99-
whileTrue:
100-
# update some rows to check for deadlocks
101-
node.safe_psql(
102-
'postgres',
103-
'''
104-
update abc set t = 'test'
105-
where id in (select (random() * 300000)::int
106-
from generate_series(1, 3000))
107-
''')
108-
109-
count=node.execute(
110-
'postgres',
111-
'select count(*) from pathman_concurrent_part_tasks')
112-
113-
# if there is no active workers then it means work is done
114-
ifcount[0][0]==0:
115-
break
116-
time.sleep(1)
117-
118-
data=node.execute('postgres','select count(*) from only abc')
119-
self.assertEqual(data[0][0],0)
120-
data=node.execute('postgres','select count(*) from abc')
121-
self.assertEqual(data[0][0],300000)
122-
123-
node.stop()
124-
exceptExceptionase:
125-
self.printlog(node.logs_dir+'/postgresql.log')
126-
raisee
104+
count=node.execute(
105+
'postgres',
106+
'select count(*) from pathman_concurrent_part_tasks')
107+
108+
# if there is no active workers then it means work is done
109+
ifcount[0][0]==0:
110+
break
111+
time.sleep(1)
112+
113+
data=node.execute('postgres','select count(*) from only abc')
114+
self.assertEqual(data[0][0],0)
115+
data=node.execute('postgres','select count(*) from abc')
116+
self.assertEqual(data[0][0],300000)
117+
118+
node.stop()
127119

128120
deftest_replication(self):
129121
"""Tests how pg_pathman works with replication"""
130122
node=get_new_node('master')
131123
replica=get_new_node('repl')
132124

133-
try:
134125
# initialize master server
135-
node=self.start_new_pathman_cluster(allows_streaming=True)
136-
node.backup('my_backup')
137-
138-
# initialize replica from backup
139-
replica.init_from_backup(node,'my_backup',has_streaming=True)
140-
replica.start()
141-
142-
# initialize pg_pathman extension and some test data
143-
self.init_test_data(node)
144-
145-
# wait until replica catches up
146-
self.catchup_replica(node,replica)
147-
148-
# check that results are equal
149-
self.assertEqual(
150-
node.psql('postgres','explain (costs off) select * from abc'),
151-
replica.psql('postgres','explain (costs off) select * from abc')
152-
)
153-
154-
# enable parent and see if it is enabled in replica
155-
node.psql('postgres','select enable_parent(\'abc\'')
156-
157-
self.catchup_replica(node,replica)
158-
self.assertEqual(
159-
node.psql('postgres','explain (costs off) select * from abc'),
160-
replica.psql('postgres','explain (costs off) select * from abc')
161-
)
162-
self.assertEqual(
163-
node.psql('postgres','select * from abc'),
164-
replica.psql('postgres','select * from abc')
165-
)
166-
self.assertEqual(
167-
node.execute('postgres','select count(*) from abc')[0][0],
168-
300000
169-
)
170-
171-
# check that direct UPDATE in pathman_config_params invalidates
172-
# cache
173-
node.psql(
174-
'postgres',
175-
'update pathman_config_params set enable_parent = false')
176-
self.catchup_replica(node,replica)
177-
self.assertEqual(
178-
node.psql('postgres','explain (costs off) select * from abc'),
179-
replica.psql('postgres','explain (costs off) select * from abc')
180-
)
181-
self.assertEqual(
182-
node.psql('postgres','select * from abc'),
183-
replica.psql('postgres','select * from abc')
184-
)
185-
self.assertEqual(
186-
node.execute('postgres','select count(*) from abc')[0][0],
187-
0
188-
)
189-
exceptExceptionase:
190-
self.printlog(node.logs_dir+'/postgresql.log')
191-
self.printlog(replica.logs_dir+'/postgresql.log')
192-
raisee
126+
node=self.start_new_pathman_cluster(allows_streaming=True)
127+
node.backup('my_backup')
128+
129+
# initialize replica from backup
130+
replica.init_from_backup(node,'my_backup',has_streaming=True)
131+
replica.start()
132+
133+
# initialize pg_pathman extension and some test data
134+
self.init_test_data(node)
135+
136+
# wait until replica catches up
137+
self.catchup_replica(node,replica)
138+
139+
# check that results are equal
140+
self.assertEqual(
141+
node.psql('postgres','explain (costs off) select * from abc'),
142+
replica.psql('postgres','explain (costs off) select * from abc')
143+
)
144+
145+
# enable parent and see if it is enabled in replica
146+
node.psql('postgres','select enable_parent(\'abc\'')
147+
148+
self.catchup_replica(node,replica)
149+
self.assertEqual(
150+
node.psql('postgres','explain (costs off) select * from abc'),
151+
replica.psql('postgres','explain (costs off) select * from abc')
152+
)
153+
self.assertEqual(
154+
node.psql('postgres','select * from abc'),
155+
replica.psql('postgres','select * from abc')
156+
)
157+
self.assertEqual(
158+
node.execute('postgres','select count(*) from abc')[0][0],
159+
300000
160+
)
161+
162+
# check that direct UPDATE in pathman_config_params invalidates
163+
# cache
164+
node.psql(
165+
'postgres',
166+
'update pathman_config_params set enable_parent = false')
167+
self.catchup_replica(node,replica)
168+
self.assertEqual(
169+
node.psql('postgres','explain (costs off) select * from abc'),
170+
replica.psql('postgres','explain (costs off) select * from abc')
171+
)
172+
self.assertEqual(
173+
node.psql('postgres','select * from abc'),
174+
replica.psql('postgres','select * from abc')
175+
)
176+
self.assertEqual(
177+
node.execute('postgres','select count(*) from abc')[0][0],
178+
0
179+
)
193180

194181
deftest_locks(self):
195182
"""Test that a session trying to create new partitions waits for other
@@ -225,71 +212,67 @@ def add_partition(node, flag, query):
225212
# Initialize master server
226213
node=get_new_node('master')
227214

228-
try:
229-
node.init()
230-
node.append_conf(
231-
'postgresql.conf',
232-
'shared_preload_libraries=\'pg_pathman\'\n')
233-
node.start()
234-
node.safe_psql(
235-
'postgres',
236-
'create extension pg_pathman; '+
237-
'create table abc(id serial, t text); '+
238-
'insert into abc select generate_series(1, 100000); '+
239-
'select create_range_partitions(\'abc\',\'id\', 1, 50000);'
240-
)
241-
242-
# Start transaction that will create partition
243-
con=node.connect()
244-
con.begin()
245-
con.execute('select append_range_partition(\'abc\')')
246-
247-
# Start threads that suppose to add new partitions and wait some
248-
# time
249-
query= [
250-
'select prepend_range_partition(\'abc\')',
251-
'select append_range_partition(\'abc\')',
252-
'select add_range_partition(\'abc\', 500000, 550000)',
253-
]
254-
threads= []
215+
node.init()
216+
node.append_conf(
217+
'postgresql.conf',
218+
'shared_preload_libraries=\'pg_pathman\'\n')
219+
node.start()
220+
node.safe_psql(
221+
'postgres',
222+
'create extension pg_pathman; '+
223+
'create table abc(id serial, t text); '+
224+
'insert into abc select generate_series(1, 100000); '+
225+
'select create_range_partitions(\'abc\',\'id\', 1, 50000);'
226+
)
227+
228+
# Start transaction that will create partition
229+
con=node.connect()
230+
con.begin()
231+
con.execute('select append_range_partition(\'abc\')')
232+
233+
# Start threads that suppose to add new partitions and wait some
234+
# time
235+
query= [
236+
'select prepend_range_partition(\'abc\')',
237+
'select append_range_partition(\'abc\')',
238+
'select add_range_partition(\'abc\', 500000, 550000)',
239+
]
240+
threads= []
241+
foriinrange(3):
242+
thread=threading.Thread(
243+
target=add_partition,
244+
args=(node,flags[i],query[i]))
245+
threads.append(thread)
246+
thread.start()
247+
time.sleep(3)
248+
249+
# This threads should wait until current transaction finished
250+
withlock:
255251
foriinrange(3):
256-
thread=threading.Thread(
257-
target=add_partition,
258-
args=(node,flags[i],query[i]))
259-
threads.append(thread)
260-
thread.start()
261-
time.sleep(3)
262-
263-
# This threads should wait until current transaction finished
264-
withlock:
265-
foriinrange(3):
266-
self.assertEqual(flags[i].get(),False)
252+
self.assertEqual(flags[i].get(),False)
267253

268-
# Commit transaction. Since then other sessions can create
269-
# partitions
270-
con.commit()
254+
# Commit transaction. Since then other sessions can create
255+
# partitions
256+
con.commit()
271257

272-
# Now wait until each thread finishes
273-
forthreadinthreads:
274-
thread.join()
258+
# Now wait until each thread finishes
259+
forthreadinthreads:
260+
thread.join()
275261

276-
# Check flags, it should be true which means that threads are
277-
# finished
278-
withlock:
279-
foriinrange(3):
280-
self.assertEqual(flags[i].get(),True)
281-
282-
# Check that all partitions are created
283-
self.assertEqual(
284-
node.safe_psql(
285-
'postgres',
286-
'select count(*) from pg_inherits where inhparent=\'abc\'::regclass'
287-
),
288-
b'6\n'
289-
)
290-
exceptExceptionase:
291-
self.printlog(node.logs_dir+'/postgresql.log')
292-
raisee
262+
# Check flags, it should be true which means that threads are
263+
# finished
264+
withlock:
265+
foriinrange(3):
266+
self.assertEqual(flags[i].get(),True)
267+
268+
# Check that all partitions are created
269+
self.assertEqual(
270+
node.safe_psql(
271+
'postgres',
272+
'select count(*) from pg_inherits where inhparent=\'abc\'::regclass'
273+
),
274+
b'6\n'
275+
)
293276

294277
deftest_tablespace(self):
295278
"""Check tablespace support"""

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp