-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdbhandler.py
108 lines (82 loc) · 3.37 KB
/
dbhandler.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import sqlite3
def getCountMd5(md5_sum):
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
cursor = conn.execute("SELECT reference_count from BLOBS WHERE md5_sum = '" + md5_sum + "'")
count_ans = 0
for row in cursor:
count_ans = row[0]
# print("Operation done successfully")
conn.close()
return count_ans
def getblobIdMd5(md5_sum):
blob_id = ""
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
cursor = conn.execute("SELECT id from BLOBS WHERE md5_sum = '" + md5_sum + "'")
for row in cursor:
blob_id = row[0]
# print("Operation done successfully")
conn.close()
return blob_id
def getCountBlobPath(blob_path):
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
cursor = conn.execute("SELECT reference_count from BLOBS WHERE blob_path = '" + blob_path + "'")
count_ans = 0
for row in cursor:
count_ans = row[0]
# print("Operation done successfully")
conn.close()
return count_ans
def incrementCountMd5(md5_sum, count_ans):
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
conn.execute("UPDATE BLOBS SET reference_count = '" + str(count_ans) + "' WHERE md5_sum = '" + md5_sum + "'")
conn.commit()
# print("Operation done successfully")
conn.close()
def incrementCountBlobPath(blob_path, count_ans):
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
conn.execute("UPDATE BLOBS SET reference_count = '" + str(count_ans) + "' WHERE blob_path = '" + blob_path + "'")
conn.commit()
# print("Operation done successfully")
conn.close()
def insertBlobMd5(blob_path, md5_sum):
count_ans = getCountMd5(md5_sum)
if(count_ans > 0):
incrementCountMd5(md5_sum, count_ans+1)
else:
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
command = "INSERT INTO BLOBS (blob_path, md5_sum, reference_count) VALUES ( '" + blob_path + "' , '" + md5_sum + "' , '0' )"
# print(command)
conn.execute(command)
conn.commit()
# print("Records created successfully")
conn.close()
def insertFileBlob(filepath, blobsequencenumber, blob_id):
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
command = "INSERT INTO FILE_BLOBS (filepath, blobsequencenumber, blobid) VALUES ( '" + filepath + "' , '" + str(blobsequencenumber) + "' , '" + str(blob_id) +"' )"
# print(command)
conn.execute(command)
conn.commit()
# print("Records created successfully")
conn.close()
def deleteBlobPath(blob_path):
count_ans = getCountBlobPath(blob_path)
if(count_ans > 1):
incrementCountBlobPath(blob_path, count_ans-1)
else:
conn = sqlite3.connect('local/blobs_md5.db')
# print("Opened database successfully")
command = "DELETE FROM BLOBS where blob_path = '" + blob_path + "'"
# print(command)
conn.execute(command)
conn.commit()
# print("Records created successfully")
conn.close()
# insertBlobMd5('/Users/manikant/Documents/blob_storage/blobs/part0004', '5f363e0e58a95f06cbe9bbc662c5dfb6')
# deleteBlobPath('/Users/manikant/Documents/blob_storage/blobs/part0004')