![]() ![]() |
![]() |
File: [Development] / JSOC / proj / cookbook / smpl_04.c
(download)
Revision: 1.2, Thu Nov 3 23:31:34 2011 UTC (11 years, 7 months ago) by rick Branch: MAIN CVS Tags: Ver_LATEST, Ver_DRMSLATEST, Ver_9-5, Ver_9-41, Ver_9-4, Ver_9-3, Ver_9-2, Ver_9-1, Ver_9-0, Ver_8-8, Ver_8-7, Ver_8-6, Ver_8-5, Ver_8-4, Ver_8-3, Ver_8-2, Ver_8-12, Ver_8-11, Ver_8-10, Ver_8-1, Ver_8-0, Ver_7-1, Ver_7-0, Ver_6-4, Ver_6-3, Ver_6-2, Ver_6-1, Ver_6-0, NetDRMS_Ver_LATEST, NetDRMS_Ver_9-5, NetDRMS_Ver_9-41, NetDRMS_Ver_9-4, NetDRMS_Ver_9-3, NetDRMS_Ver_9-2, NetDRMS_Ver_9-1, NetDRMS_Ver_9-0, NetDRMS_Ver_8-8, NetDRMS_Ver_8-7, NetDRMS_Ver_8-6, NetDRMS_Ver_8-5, NetDRMS_Ver_8-4, NetDRMS_Ver_8-3, NetDRMS_Ver_8-2, NetDRMS_Ver_8-12, NetDRMS_Ver_8-11, NetDRMS_Ver_8-10, NetDRMS_Ver_8-1, NetDRMS_Ver_8-0, NetDRMS_Ver_7-1, NetDRMS_Ver_7-0, NetDRMS_Ver_6-4, NetDRMS_Ver_6-3, NetDRMS_Ver_6-2, NetDRMS_Ver_6-1, NetDRMS_Ver_6-0, HEAD Changes since 1.1: +1 -1 lines strdup return of params_get_str() |
/* * smpl_04.c $DRMS/proj/cookbook/ * * Prints the number of unique records in the selected data series, and * the defined number of data segments per record for the series * Illustrates features of the DRMS_Record struct, and concept of uniqueness * for DRMS records * * Usage: * smpl_04 ds= ... * * Revision history is at end of file. */ char *module_name = "CookbookRecipe:04"; char *version_id = "1.0"; #include <jsoc_main.h> #include <regex.h> ModuleArgs_t module_args[] = { {ARG_STRING, "ds", "", "name of data series"}, {ARG_END} }; int DoIt (void) { CmdParams_t *params = &cmdparams; DB_Text_Result_t *qres; DRMS_Record_t *record; regmatch_t pmatch[10]; int series, seriesct; int status = 0; char query[DRMS_MAXQUERYLEN]; char *ds = strdup (params_get_str (params, "ds")); record = drms_template_record (drms_env, ds, &status); if (record && !status) { if (record->seriesinfo->pidx_num) { char qry[1024]; sprintf (query, "select %s from %s group by %s", (record->seriesinfo->pidx_keywords[0])->info->name, ds, (record->seriesinfo->pidx_keywords[0])->info->name); for (int i=1; i<record->seriesinfo->pidx_num; i++) { sprintf (qry, ", %s", (record->seriesinfo->pidx_keywords[i])->info->name); strcat (query, qry); } if ((qres = drms_query_txt (drms_env->session, query))) { printf ("%s contains %d unique records", ds, qres->num_rows); db_free_text_result (qres); } } else printf ("%s: no records found", ds); printf (", with %d data segment(s) per record\n", record->segments.num_total); drms_free_record (record); } else printf ("%s: no such series\n", ds); return status; } /* * Revision History * * 09.04.20 file created by R Bogart */
Karen Tian |
Powered by ViewCVS 0.9.4 |