path = get_pool_memory(PM_FNAME);
esc_name = get_pool_memory(PM_FNAME);
esc_path = get_pool_memory(PM_FNAME);
+ esc_obj = get_pool_memory(PM_FNAME);
m_buf = get_pool_memory(PM_FNAME);
m_allow_transactions = mult_db_connections;
{
db_end_transaction(jcr);
P(mutex);
- sql_free_result();
m_ref_count--;
if (m_ref_count == 0) {
+ sql_free_result();
db_list->remove(this);
if (m_connected && m_db_handle) {
PQfinish(m_db_handle);
free_pool_memory(path);
free_pool_memory(esc_name);
free_pool_memory(esc_path);
+ free_pool_memory(esc_obj);
free_pool_memory(m_buf);
if (m_db_driver) {
free(m_db_driver);
if (m_db_socket) {
free(m_db_socket);
}
- if (esc_obj) {
- PQfreemem(esc_obj);
- }
delete this;
if (db_list->size() == 0) {
delete db_list;
return db_sql_query(query, result_handler, ctx);
}
- db_lock(this);
-
if (!result_handler) { /* no need of big_query without handler */
- goto bail_out;
+ return false;
}
+ db_lock(this);
+
if (!in_transaction) { /* CURSOR needs transaction */
sql_query("BEGIN");
}
} while (m_num_rows > 0); /* TODO: Can probably test against 100 */
+ sql_query("CLOSE _bac_cursor");
+
+ Dmsg0(500, "db_big_sql_query finished\n");
sql_free_result();
+ retval = true;
+bail_out:
if (!in_transaction) {
sql_query("COMMIT"); /* end transaction */
}
- Dmsg0(500, "db_big_sql_query finished\n");
- retval = true;
-
-bail_out:
db_unlock(this);
return retval;
}
Dmsg0(500, "sql_batch_start started\n");
if (!sql_query("CREATE TEMPORARY TABLE batch ("
- "fileindex int,"
- "jobid int,"
- "path varchar,"
- "name varchar,"
- "lstat varchar,"
- "md5 varchar,"
- "markid int)")) {
+ "FileIndex int,"
+ "JobId int,"
+ "Path varchar,"
+ "Name varchar,"
+ "LStat varchar,"
+ "Md5 varchar,"
+ "DeltaSeq smallint)")) {
Dmsg0(500, "sql_batch_start failed\n");
return false;
}