Changeset: 20593d12ed56 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=20593d12ed56
Modified Files:
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/storage/sql_storage.h
        sql/storage/store.c
Branch: hot-snapshot
Log Message:

Plumbing for sql.hot_snapshot(dir)


diffs (77 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -4803,6 +4803,19 @@ SQLsuspend_log_flushing(void *ret)
 }
 
 str
+SQLhot_snapshot(void *ret, const str *dir)
+{
+       (void)ret;
+
+       char *dest = *dir;
+       const char *errmsg = store_hot_snapshot(dest);
+       if (errmsg)
+               throw(SQL, "sql.hot_snapshot", SQLSTATE(42000) "Snapshot to %s 
failed: %s", dest, errmsg);
+       
+       return MAL_SUCCEED;
+}
+
+str
 SQLexist_val(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        bit *res = getArgReference_bit(stk, pci, 0);
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -314,6 +314,8 @@ sql5_export str SQLflush_log(void *ret);
 sql5_export str SQLresume_log_flushing(void *ret);
 sql5_export str SQLsuspend_log_flushing(void *ret);
 
+sql5_export str SQLhot_snapshot(void *ret, const str *dir);
+
 sql5_export str SQLexist(bit *res, bat *id);
 sql5_export str SQLexist_val(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -83,6 +83,10 @@ command suspend_log_flushing( ) :void
 address SQLsuspend_log_flushing
 comment "Suspend WAL log flushing";
 
+command hot_snapshot(dir:str) :void
+address SQLhot_snapshot
+comment "Create a hot snapshot in the given directory";
+
 pattern assert(b:bit,msg:str):void
 address SQLassert
 comment "Generate an exception when b==true";
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -331,6 +331,7 @@ extern void store_apply_deltas(void);
 extern void store_flush_log(void);
 extern void store_resume_log(void);
 extern void store_suspend_log(void);
+extern char *store_hot_snapshot(const char *dir);
 
 extern void store_manager(void);
 extern void idle_manager(void);
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -1788,6 +1788,13 @@ store_suspend_log(void)
        MT_lock_unset(&bs_lock);
 }
 
+char *
+store_hot_snapshot(const char *dir)
+{
+       fprintf(stderr, "#hot_snapshot %s\n", dir);
+       return NULL;
+}
+
 static int
 store_needs_vacuum( sql_trans *tr )
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to