Changeset: d9be4884d389 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d9be4884d389
Modified Files:
ctest/tools/monetdbe/example_backup.c
tools/monetdbe/monetdbe.c
tools/monetdbe/monetdbe.h
Branch: default
Log Message:
change monetdbe_backup in monetdbe_dump_database
added monetdbe_dump_table
added monetdbe_memorylimit
diffs (109 lines):
diff --git a/ctest/tools/monetdbe/example_backup.c
b/ctest/tools/monetdbe/example_backup.c
--- a/ctest/tools/monetdbe/example_backup.c
+++ b/ctest/tools/monetdbe/example_backup.c
@@ -25,7 +25,7 @@ main(void)
if ((err = monetdbe_query(mdbe, "INSERT INTO test VALUES (TRUE, 42, 42,
42, 42, 42, 42.42, 42.42, 'Hello'), (NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, 'World')", NULL, NULL)) != NULL)
error(err)
- msg = monetdbe_backup(mdbe, "/tmp/backup");
+ msg = monetdbe_dump_database(mdbe, "/tmp/backup");
if ((msg = monetdbe_close(mdbe)) != NULL)
error(msg);
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -555,14 +555,15 @@ monetdbe_close(monetdbe_database dbhdl)
/* needs to be before the undef of the bool type */
extern int dump_database(Mapi mid, stream *toConsole, bool describe, bool
useInserts);
+extern int dump_table(Mapi mid, const char *schema, const char *tname, stream
*toConsole, bool describe, bool foreign, bool useInserts, bool databaseDump);
char*
-monetdbe_backup(monetdbe_database dbhdl, char *backupfile)
+monetdbe_dump_database(monetdbe_database dbhdl, const char *filename)
{
char* msg = MAL_SUCCEED;
MT_lock_set(&embedded_lock);
- if ((msg = validate_database_handle(dbhdl, "embedded.monetdbe_backup"))
!= MAL_SUCCEED) {
+ if ((msg = validate_database_handle(dbhdl,
"embedded.monetdbe_dump_database")) != MAL_SUCCEED) {
MT_lock_unset(&embedded_lock);
return msg; //The dbhdl is invalid, there is no transaction
going
}
@@ -570,7 +571,7 @@ monetdbe_backup(monetdbe_database dbhdl,
mid.mdbe = dbhdl;
/* open file stream */
- stream *fd = open_wastream(backupfile);
+ stream *fd = open_wastream(filename);
if (fd) {
if (dump_database(&mid, fd, 0, 0)) {
if (mid.msg)
@@ -578,12 +579,50 @@ monetdbe_backup(monetdbe_database dbhdl,
}
close_stream(fd);
} else {
- msg = createException(MAL, "embedded.monetdbe_backup", "Unable
too open backup file %s", backupfile);
+ msg = createException(MAL, "embedded.monetdbe_dump_database",
"Unable too open file %s", filename);
}
MT_lock_unset(&embedded_lock);
return msg;
}
+
+char*
+monetdbe_dump_table(monetdbe_database dbhdl, const char *sname, const char
*tname, const char *filename)
+{
+ char* msg = MAL_SUCCEED;
+
+ MT_lock_set(&embedded_lock);
+ if ((msg = validate_database_handle(dbhdl,
"embedded.monetdbe_dump_table")) != MAL_SUCCEED) {
+ MT_lock_unset(&embedded_lock);
+ return msg; //The dbhdl is invalid, there is no transaction
going
+ }
+ struct MapiStruct mid;
+
+ mid.mdbe = dbhdl;
+ /* open file stream */
+ stream *fd = open_wastream(filename);
+ if (fd) {
+ if (dump_table(&mid, sname, tname, fd, 0, 0, 0, 0)) {
+ if (mid.msg)
+ msg = mid.msg;
+ }
+ close_stream(fd);
+ } else {
+ msg = createException(MAL, "embedded.monetdbe_dump_table",
"Unable too open file %s", filename);
+ }
+
+ MT_lock_unset(&embedded_lock);
+ return msg;
+}
+
+char*
+monetdbe_memorylimit(monetdbe_database dbhdl, monetdbe_cnt bytes)
+{
+ (void)dbhdl;
+ (void)bytes;
+ return MAL_SUCCEED;
+}
+
char*
monetdbe_get_autocommit(monetdbe_database dbhdl, int* result)
{
diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h
--- a/tools/monetdbe/monetdbe.h
+++ b/tools/monetdbe/monetdbe.h
@@ -140,7 +140,10 @@ monetdbe_export char* monetdbe_append(mo
monetdbe_export char* monetdbe_get_table(monetdbe_database dbhdl,
monetdbe_table** table, const char* schema_name, const char* table_name);
monetdbe_export char* monetdbe_get_columns(monetdbe_database dbhdl, const
char* schema_name, const char *table_name, size_t *column_count, char
***column_names, int **column_types);
-monetdbe_export char* monetdbe_backup(monetdbe_database dbhdl, char
*backupfile);
+monetdbe_export char* monetdbe_dump_database(monetdbe_database dbhdl, const
char *backupfile);
+monetdbe_export char* monetdbe_dump_table(monetdbe_database dbhdl, const char
*schema_name, const char *table_name, const char *backupfile);
+
+monetdbe_export char* monetdbe_memorylimit(monetdbe_database dbhdl,
monetdbe_cnt bytes);
#ifdef __cplusplus
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list