-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathQueryProcessor.py
More file actions
76 lines (67 loc) · 3.25 KB
/
QueryProcessor.py
File metadata and controls
76 lines (67 loc) · 3.25 KB
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
from QueryExecutor import QueryExecutor
from utils.query import get_query_type
class QueryProcessor:
def __init__(self, base_path: str):
self.base_path = base_path
self.query_executor = QueryExecutor(base_path)
def process_query(self, query: str):
"""
Process the query by determining its type and delegating execution.
"""
try:
query_type = get_query_type(query)
for ops in self.query_executor.failed_queries:
if query_type == "SELECT":
success = self.query_executor.execute_select(ops)
elif query_type == "INSERT":
success = self.query_executor.execute_insert(ops)
elif query_type == "CREATE":
success = self.query_executor.execute_create(ops)
elif query_type == "UPDATE":
success = self.query_executor.execute_update(ops)
elif query_type == "DELETE":
success = self.query_executor.execute_delete(ops)
elif query_type == "DROP":
success = self.query_executor.execute_drop(ops)
if success != False:
self.query_executor.failed_queries.remove(ops)
if query_type == "SELECT":
success = self.query_executor.execute_select(query)
elif query_type == "INSERT":
success = self.query_executor.execute_insert(query)
elif query_type == "CREATE":
success = self.query_executor.execute_create(query)
elif query_type == "UPDATE":
success = self.query_executor.execute_update(query)
elif query_type == "DELETE":
success = self.query_executor.execute_delete(query)
elif query_type == "DROP":
success = self.query_executor.execute_drop(query)
elif query_type == "BEGIN TRANSACTION":
self.query_executor.execute_begin_transaction()
success = True
elif query_type == "COMMIT":
self.query_executor.execute_commit()
success = True
else:
print(f"Unsupported query type: {query_type}")
success = False
for ops in self.query_executor.failed_queries:
if query_type == "SELECT":
success = self.query_executor.execute_select(ops)
elif query_type == "INSERT":
success = self.query_executor.execute_insert(ops)
elif query_type == "CREATE":
success = self.query_executor.execute_create(ops)
elif query_type == "UPDATE":
success = self.query_executor.execute_update(ops)
elif query_type == "DELETE":
success = self.query_executor.execute_delete(ops)
elif query_type == "DROP":
success = self.query_executor.execute_drop(ops)
if success != False:
self.query_executor.failed_queries.remove(ops)
return success
except Exception as e:
print(f"Error processing query: {e}")
return False