int gf_sqlite3_insert(void *db_conn, gfdb_db_record_t *gfdb_db_record) { int ret = -1; gf_sql_connection_t *sql_conn = db_conn; CHECK_SQL_CONN(sql_conn, out); GF_VALIDATE_OR_GOTO(GFDB_STR_SQLITE3, gfdb_db_record, out); switch (gfdb_db_record->gfdb_fop_path) { case GFDB_FOP_WIND: ret = gf_sql_insert_wind (sql_conn, gfdb_db_record); if (ret) { gf_msg (GFDB_STR_SQLITE3, _gfdb_log_level (GF_LOG_ERROR, gfdb_db_record->ignore_errors), 0, LG_MSG_INSERT_FAILED, "Failed wind insert"); goto out; } break; case GFDB_FOP_UNWIND: ret = gf_sql_insert_unwind (sql_conn, gfdb_db_record); if (ret) { gf_msg (GFDB_STR_SQLITE3, _gfdb_log_level (GF_LOG_ERROR, gfdb_db_record->ignore_errors), 0, LG_MSG_INSERT_FAILED, "Failed unwind insert"); goto out; } break; case GFDB_FOP_WDEL: ret = gf_sql_update_delete_wind (sql_conn, gfdb_db_record); if (ret) { gf_msg (GFDB_STR_SQLITE3, _gfdb_log_level (GF_LOG_ERROR, gfdb_db_record->ignore_errors), 0, LG_MSG_UPDATE_FAILED, "Failed updating delete " "during wind"); goto out; } break; case GFDB_FOP_UNDEL: case GFDB_FOP_UNDEL_ALL: ret = gf_sql_delete_unwind (sql_conn, gfdb_db_record); if (ret) { gf_msg (GFDB_STR_SQLITE3, _gfdb_log_level (GF_LOG_ERROR, gfdb_db_record->ignore_errors), 0, LG_MSG_DELETE_FAILED, "Failed deleting"); goto out; } break; case GFDB_FOP_INVALID: default: gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0, LG_MSG_INVALID_FOP, "Cannot record to DB: Invalid FOP"); goto out; } ret = 0; out: return ret; }
int gf_sqlite3_insert(void *db_conn, gfdb_db_record_t *gfdb_db_record) { int ret = -1; gf_sql_connection_t *sql_conn = db_conn; CHECK_SQL_CONN(sql_conn, out); GF_VALIDATE_OR_GOTO(GFDB_STR_SQLITE3, gfdb_db_record, out); /*This is for debugging bug. Will be removed with a bug fix*/ if ((GFDB_FOP_WIND == gfdb_db_record->gfdb_fop_path) && (strncmp(gfdb_db_record->file_path, "<gfid", 5) == 0)) { gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Skip path <gfid fop=%d", gfdb_db_record->gfdb_fop_type); goto out; } switch (gfdb_db_record->gfdb_fop_path) { case GFDB_FOP_WIND: ret = gf_sql_insert_wind(sql_conn, gfdb_db_record); if (ret) { gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Failed wind insert"); goto out; } break; case GFDB_FOP_UNWIND: ret = gf_sql_insert_unwind (sql_conn, gfdb_db_record); if (ret) { gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Failed unwind insert"); goto out; } break; case GFDB_FOP_WDEL: ret = gf_sql_update_delete_wind(sql_conn, gfdb_db_record); if (ret) { gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Failed updating delete during wind"); goto out; } break; case GFDB_FOP_UNDEL: case GFDB_FOP_UNDEL_ALL: ret = gf_sql_delete_unwind(sql_conn, gfdb_db_record); if (ret) { gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Failed deleting"); goto out; } break; case GFDB_FOP_INVALID: default: gf_log (GFDB_STR_SQLITE3, GF_LOG_ERROR, "Cannot record to DB: Invalid FOP"); goto out; } ret = 0; out: return ret; }