@@ -31,30 +31,32 @@ def chdb_query_with_errmsg(query, format):
31
31
os .dup2 (new_stderr .fileno (), 2 )
32
32
# Call the function
33
33
output = driver .query (query , format ).bytes ()
34
-
34
+
35
35
new_stderr .flush ()
36
36
new_stderr .seek (0 )
37
37
errmsg = new_stderr .read ()
38
-
38
+
39
39
# cleanup and recover
40
40
new_stderr .close ()
41
41
os .dup2 (old_stderr_fd , 2 )
42
42
except Exception as e :
43
43
# An error occurred, print it to stderr
44
44
print (f"An error occurred: { e } " )
45
45
return output , errmsg
46
-
47
46
48
47
@app .route ('/' , methods = ["GET" ])
49
48
@auth .login_required
50
49
def clickhouse ():
51
50
query = request .args .get ('query' , default = "" , type = str )
52
51
format = request .args .get ('default_format' , default = "TSV" , type = str )
52
+ database = request .args .get ('database' , default = "" , type = str )
53
53
if not query :
54
- # return "Ok", 200
55
54
return app .send_static_file ('play.html' )
56
55
57
- result , errmsg = chdb_query_with_errmsg (query , format )
56
+ if database :
57
+ database = "USE " + database + "; "
58
+
59
+ result , errmsg = chdb_query_with_errmsg (database + query , format )
58
60
if len (errmsg ) == 0 :
59
61
return result
60
62
return errmsg
@@ -65,11 +67,14 @@ def clickhouse():
65
67
def play ():
66
68
query = request .data or None
67
69
format = request .args .get ('default_format' , default = "TSV" , type = str )
70
+ database = request .args .get ('database' , default = "" , type = str )
68
71
if not query :
69
72
return "Ok" , 200
70
- # return app.send_static_file('play.html')
71
73
72
- result , errmsg = chdb_query_with_errmsg (query , format )
74
+ if database :
75
+ database = "USE " + database + "; "
76
+
77
+ result , errmsg = chdb_query_with_errmsg (database + query , format )
73
78
if len (errmsg ) == 0 :
74
79
return result
75
80
return errmsg
0 commit comments