+/**
+ * Create Restore Object record in B_DB
+ *
+ */
+bool db_create_restore_object_record(JCR *jcr, B_DB *mdb, ROBJECT_DBR *ro)
+{
+ bool stat;
+ int plug_name_len;
+ POOLMEM *esc_plug_name = get_pool_memory(PM_MESSAGE);
+
+ db_lock(mdb);
+
+ Dmsg1(dbglevel, "Oname=%s\n", ro->object_name);
+ Dmsg0(dbglevel, "put_object_into_catalog\n");
+
+ mdb->fnl = strlen(ro->object_name);
+ mdb->esc_name = check_pool_memory_size(mdb->esc_name, mdb->fnl*2+1);
+ db_escape_string(jcr, mdb, mdb->esc_name, ro->object_name, mdb->fnl);
+
+ db_escape_object(jcr, mdb, ro->object, ro->object_len);
+
+ plug_name_len = strlen(ro->plugin_name);
+ esc_plug_name = check_pool_memory_size(esc_plug_name, plug_name_len*2+1);
+ db_escape_string(jcr, mdb, esc_plug_name, ro->plugin_name, plug_name_len);
+
+ Mmsg(mdb->cmd,
+ "INSERT INTO RestoreObject (ObjectName,PluginName,RestoreObject,"
+ "ObjectLength,ObjectFullLength,ObjectIndex,ObjectType,"
+ "ObjectCompression,FileIndex,JobId) "
+ "VALUES ('%s','%s','%s',%d,%d,%d,%d,%d,%d,%u)",
+ mdb->esc_name, esc_plug_name, mdb->esc_obj,
+ ro->object_len, ro->object_full_len, ro->object_index,
+ ro->FileType, ro->object_compression, ro->FileIndex, ro->JobId);
+
+ ro->RestoreObjectId = sql_insert_autokey_record(mdb, mdb->cmd, NT_("RestoreObject"));
+ if (ro->RestoreObjectId == 0) {
+ Mmsg2(&mdb->errmsg, _("Create db Object record %s failed. ERR=%s"),
+ mdb->cmd, sql_strerror(mdb));
+ Jmsg(jcr, M_FATAL, 0, "%s", mdb->errmsg);
+ stat = false;
+ } else {
+ stat = true;
+ }
+ db_unlock(mdb);
+ free_pool_memory(esc_plug_name);
+ return stat;
+}
+
+#endif /* HAVE_SQLITE3 || HAVE_MYSQL || HAVE_POSTGRESQL || HAVE_INGRES || HAVE_DBI */