Added a C function to add a COUNT column to a view with all lines set to
1
This commit is contained in:
@ -1188,8 +1188,6 @@ static int prepare_to_set_value_in_column(Obiview_p view, OBIDMS_column_p* colum
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO add line_max
|
|
||||||
|
|
||||||
if (((*line_nb_p)+1) > (view->infos)->line_count)
|
if (((*line_nb_p)+1) > (view->infos)->line_count)
|
||||||
{
|
{
|
||||||
if (update_lines(view, ((*line_nb_p)+1)) < 0)
|
if (update_lines(view, ((*line_nb_p)+1)) < 0)
|
||||||
@ -2160,6 +2158,7 @@ Obiview_p obi_open_view(OBIDMS_p dms, const char* view_name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO return a pointer on the column?
|
||||||
int obi_view_add_column(Obiview_p view,
|
int obi_view_add_column(Obiview_p view,
|
||||||
const char* column_name,
|
const char* column_name,
|
||||||
obiversion_t version_number,
|
obiversion_t version_number,
|
||||||
@ -2458,6 +2457,47 @@ int obi_save_and_close_view(Obiview_p view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int obi_create_auto_count_column(Obiview_p view)
|
||||||
|
{
|
||||||
|
index_t i;
|
||||||
|
OBIDMS_p column;
|
||||||
|
|
||||||
|
// Check that the view is not read-only
|
||||||
|
if (view->read_only)
|
||||||
|
{
|
||||||
|
obi_set_errno(OBIVIEW_ERROR);
|
||||||
|
obidebug(1, "\nError trying to create an automatic count column in a read-only view");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obi_view_add_column(view, COUNT_COLUMN, -1, NULL, OBI_INT, 0, 1, NULL, NULL, NULL, NULL, "Sequence counts", true) < 0)
|
||||||
|
{
|
||||||
|
obidebug(1, "Error adding an automatic count column in a view");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
column = obi_view_get_column(view, COUNT_COLUMN);
|
||||||
|
if (column == NULL)
|
||||||
|
{
|
||||||
|
obidebug(1, "Error adding an automatic count column in a view");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fill the column with 1s
|
||||||
|
for (i=0; i < (view->infos)->line_count; i++)
|
||||||
|
{
|
||||||
|
if (obi_column_set_obiint_with_elt_idx(column, i, 0, 1) < 0)
|
||||||
|
{
|
||||||
|
obidebug(1, "Error adding an automatic count column in a view");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO Move to another file?
|
||||||
/*********** FOR BLOB COLUMNS ***********/
|
/*********** FOR BLOB COLUMNS ***********/
|
||||||
|
|
||||||
Obi_blob_p obi_get_blob_with_elt_idx_and_col_p_in_view(Obiview_p view, OBIDMS_column_p column_p, index_t line_nb, index_t element_idx)
|
Obi_blob_p obi_get_blob_with_elt_idx_and_col_p_in_view(Obiview_p view, OBIDMS_column_p column_p, index_t line_nb, index_t element_idx)
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
#define QUALITY_COLUMN "QUALITY" /**< The name of the column containing the sequence qualities
|
#define QUALITY_COLUMN "QUALITY" /**< The name of the column containing the sequence qualities
|
||||||
* in NUC_SEQS_VIEW views.
|
* in NUC_SEQS_VIEW views.
|
||||||
*/
|
*/
|
||||||
|
#define COUNT_COLUMN "COUNT" /**< The name of the column containing the sequence counts
|
||||||
|
* in NUC_SEQS_VIEW views.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -507,6 +510,23 @@ int obi_select_lines(Obiview_p view, index_t* line_nbs);
|
|||||||
int obi_save_and_close_view(Obiview_p view);
|
int obi_save_and_close_view(Obiview_p view);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Creates an OBI_INT column with the line count of the view it belongs to, and sets all lines to 1.
|
||||||
|
*
|
||||||
|
* @warning The number of lines set corresponds to the line count of the view.
|
||||||
|
*
|
||||||
|
* @param view A pointer on the view.
|
||||||
|
*
|
||||||
|
* @returns A value indicating the success of the operation.
|
||||||
|
* @retval 0 if the operation was successfully completed.
|
||||||
|
* @retval -1 if an error occurred.
|
||||||
|
*
|
||||||
|
* @since July 2017
|
||||||
|
* @author Celine Mercier (celine.mercier@metabarcoding.org)
|
||||||
|
*/
|
||||||
|
int obi_create_auto_count_column(Obiview_p view);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Recovers an obiblob from an OBIDMS column containing indices referring to obiblobs,
|
* @brief Recovers an obiblob from an OBIDMS column containing indices referring to obiblobs,
|
||||||
* using the index of the element in the line, and the column pointer, in the context of a view.
|
* using the index of the element in the line, and the column pointer, in the context of a view.
|
||||||
|
Reference in New Issue
Block a user