@@ -49,6 +49,7 @@ import optimize_statement;
49
49
import alter_statement;
50
50
import statement_common;
51
51
import admin_statement;
52
+ import compact_statement;
52
53
53
54
import create_schema_info;
54
55
import drop_schema_info;
@@ -737,7 +738,7 @@ QueryResult Infinity::ShowObjects() {
737
738
return result;
738
739
}
739
740
740
- QueryResult Infinity::ShowObject (const String& filename) {
741
+ QueryResult Infinity::ShowObject (const String & filename) {
741
742
UniquePtr<QueryContext> query_context_ptr = GetQueryContext ();
742
743
UniquePtr<ShowStatement> show_statement = MakeUnique<ShowStatement>();
743
744
show_statement->show_type_ = ShowStmtType::kPersistenceObject ;
@@ -778,7 +779,7 @@ QueryResult Infinity::ShowMemoryAllocations() {
778
779
return result;
779
780
}
780
781
781
- QueryResult Infinity::ShowFunction (const String& function_name) {
782
+ QueryResult Infinity::ShowFunction (const String & function_name) {
782
783
UniquePtr<QueryContext> query_context_ptr = GetQueryContext ();
783
784
UniquePtr<ShowStatement> show_statement = MakeUnique<ShowStatement>();
784
785
show_statement->show_type_ = ShowStmtType::kFunction ;
@@ -1039,6 +1040,39 @@ QueryResult Infinity::Cleanup() {
1039
1040
return result;
1040
1041
}
1041
1042
1043
+ QueryResult Infinity::ForceCheckpoint () {
1044
+ auto query_context_ptr = MakeUnique<QueryContext>(session_.get ());
1045
+ query_context_ptr->Init (InfinityContext::instance ().config (),
1046
+ InfinityContext::instance ().task_scheduler (),
1047
+ InfinityContext::instance ().storage (),
1048
+ InfinityContext::instance ().resource_manager (),
1049
+ InfinityContext::instance ().session_manager (),
1050
+ InfinityContext::instance ().persistence_manager ());
1051
+
1052
+ auto flush_statement = MakeUnique<FlushStatement>();
1053
+ flush_statement->type_ = infinity::FlushType::kData ;
1054
+
1055
+ QueryResult result = query_context_ptr->QueryStatement (flush_statement.get ());
1056
+
1057
+ return result;
1058
+ }
1059
+
1060
+ QueryResult Infinity::CompactTable (const String &db_name, const String &table_name) {
1061
+ auto query_context_ptr = MakeUnique<QueryContext>(session_.get ());
1062
+ query_context_ptr->Init (InfinityContext::instance ().config (),
1063
+ InfinityContext::instance ().task_scheduler (),
1064
+ InfinityContext::instance ().storage (),
1065
+ InfinityContext::instance ().resource_manager (),
1066
+ InfinityContext::instance ().session_manager (),
1067
+ InfinityContext::instance ().persistence_manager ());
1068
+
1069
+ auto compact_statement = MakeUnique<ManualCompactStatement>(db_name, table_name);
1070
+
1071
+ QueryResult result = query_context_ptr->QueryStatement (compact_statement.get ());
1072
+
1073
+ return result;
1074
+ }
1075
+
1042
1076
QueryResult Infinity::AdminShowCatalogs () {
1043
1077
auto query_context_ptr = MakeUnique<QueryContext>(session_.get ());
1044
1078
query_context_ptr->Init (InfinityContext::instance ().config (),
0 commit comments