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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list