@@ -30,24 +30,28 @@ def cwd(path):
3030 os .chdir (curdir )
3131
3232
33- async def insert_data (con , files , table_name , table_name_c ):
34- while True :
35- try :
36- filename = files .pop ()
33+ async def insert_data (node , files , table_name , table_name_c ):
34+ sql = 'insert into {} values ($1)'
35+ sql1 = sql .format (table_name )
36+ sql2 = sql .format (table_name_c )
37+
38+ async with node .connect () as con :
39+ while True :
40+ try :
41+ filename = files .pop ()
42+ except IndexError :
43+ break
44+
3745 print (filename )
38- except IndexError :
39- break
4046
41- with open (filename , 'r' ) as f :
42- data = json .load (f )
47+ with open (filename , 'r' ) as f :
48+ data = json .load (f )
4349
44- if isinstance (data , dict ):
45- if 'rounds' in data :
46- for obj in data ['rounds' ]:
47- sql = 'insert into {} values ($1)'
48- for i in range (100 ):
49- await con .execute (sql .format (table_name ), json .dumps (obj ))
50- await con .execute (sql .format (table_name_c ), json .dumps (obj ))
50+ if isinstance (data , dict ):
51+ if 'rounds' in data :
52+ for obj in data ['rounds' ]:
53+ await con .execute (sql1 , json .dumps (obj ))
54+ await con .execute (sql2 , json .dumps (obj ))
5155
5256
5357def main (loop ):
@@ -58,8 +62,6 @@ def main(loop):
5862
5963 node .safe_psql ('postgres' , 'create extension jsonbd' )
6064
61- connections = [node .connect () for i in range (3 )]
62-
6365 for name , root_dir in sources :
6466 table_name = name
6567 table_name_c = '%s_c' % name
@@ -68,20 +70,21 @@ def main(loop):
6870 node .safe_psql ('postgres' , 'create table %s(a jsonb compression jsonbd)' % table_name_c )
6971 node .safe_psql ('postgres' , 'alter table %s alter column a set storage external' % table_name )
7072
71- files = []
7273 with cwd (os .path .abspath (root_dir )):
74+ files = []
7375 for filename in glob .iglob ('**/*.json' , recursive = True ):
7476 if filename == 'package.json' :
7577 continue
7678
7779 files .append (filename )
7880
79- coroutines = [insert_data (con , files , table_name , table_name_c )
80- for con in connections ]
81+ print (len (files ))
82+ coroutines = [insert_data (node , files , table_name , table_name_c )
83+ for i in range (4 )]
8184 loop .run_until_complete (asyncio .gather (* coroutines ))
8285
83- print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name ))
84- print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name_c ))
86+ print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name ))
87+ print (node .safe_psql ('postgres' , "select pg_size_pretty(pg_total_relation_size('%s'))" % table_name_c ))
8588
8689
8790if __name__ == '__main__' :
0 commit comments