ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/JSOC/proj/cookbook/smpl_03.c
Revision: 1.2
Committed: Mon Jul 27 23:42:09 2009 UTC (14 years, 2 months ago) by rick
Content type: text/plain
Branch: MAIN
CVS Tags: NetDRMS_Ver_6-4, NetDRMS_Ver_8-0, NetDRMS_Ver_6-2, NetDRMS_Ver_6-3, NetDRMS_Ver_6-0, NetDRMS_Ver_6-1, Ver_6-0, Ver_6-1, Ver_6-2, Ver_6-3, Ver_6-4, NetDRMS_Ver_2-7, NetDRMS_Ver_2-4, NetDRMS_Ver_2-5, NetDRMS_Ver_8-8, Ver_5-10, Ver_8-5, NetDRMS_Ver_7-0, NetDRMS_Ver_8-1, Ver_5-14, Ver_5-13, Ver_5-12, Ver_5-11, Ver_7-0, Ver_LATEST, Ver_5-2, NetDRMS_Ver_LATEST, NetDRMS_Ver_9-9, NetDRMS_Ver_2-2, NetDRMS_Ver_8-12, NetDRMS_Ver_8-10, NetDRMS_Ver_8-11, NetDRMS_Ver_9-1, NetDRMS_Ver_9-0, NetDRMS_Ver_9-3, NetDRMS_Ver_9-2, NetDRMS_Ver_9-5, NetDRMS_Ver_9-4, NetDRMS_Ver_8-2, NetDRMS_Ver_8-3, Ver_5-6, NetDRMS_Ver_2-1, Ver_5-5, NetDRMS_Ver_2-6, NetDRMS_Ver_9-41, Ver_9-41, Ver_DRMSLATEST, NetDRMS_Ver_8-4, NetDRMS_Ver_8-5, NetDRMS_Ver_2-3, Ver_5-8, NetDRMS_Ver_8-6, Ver_5-7, Ver_8-8, NetDRMS_Ver_8-7, Ver_5-9, NetDRMS_Ver_2-0b1, Ver_8-2, Ver_9-3, Ver_8-0, Ver_8-1, Ver_8-6, Ver_8-7, Ver_8-4, Ver_8-11, Ver_5-3, NetDRMS_Ver_2-0b, Ver_7-1, Ver_9-1, NetDRMS_Ver_2-0, Ver_8-3, NetDRMS_Ver_7-1, Ver_9-5, Ver_9-4, Ver_8-10, Ver_9-2, Ver_8-12, Ver_9-0, HEAD
Changes since 1.1: +37 -33 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 rick 1.1 /*
2     * smpl_03.c $DRMS/proj/cookbook/
3     *
4 rick 1.2 * Prints a list of the series names known to DRMS, with record counts
5     * for each
6     * Illustrates the connection to the DRMS database and ways that SQL
7     * queries can be directly run and the results analyzed at the lowest
8     * level of the DRMS API
9 rick 1.1 *
10     * Usage:
11 rick 1.2 * smpl_03 [nmax= ...]
12 rick 1.1 *
13     * Revision history is at end of file.
14     */
15    
16     char *module_name = "CookbookRecipe:03";
17     char *version_id = "1.0";
18    
19     #include <jsoc_main.h>
20     #include <regex.h>
21    
22     ModuleArgs_t module_args[] = {
23 rick 1.2 {ARG_INT, "nmax", "100", "maximum number of series to be listed"},
24 rick 1.1 {ARG_END}
25     };
26    
27     int DoIt (void) {
28     CmdParams_t *params = &cmdparams;
29 rick 1.2 DB_Text_Result_t *qres, *sqres;
30 rick 1.1 int series, seriesct;
31     char query[DRMS_MAXQUERYLEN];
32    
33 rick 1.2 int nmax = params_get_int (params, "nmax");
34     /* Query the database to get all series names from the master list */
35     sprintf (query, "select seriesname from %s()", DRMS_MASTER_SERIES_TABLE);
36     if ((qres = drms_query_txt (drms_env->session, query)) == NULL) {
37     fprintf (stderr, "Cant find DRMS\n");
38     return 1;
39     }
40     seriesct = qres->num_rows;
41     printf ("%d series found", seriesct);
42     if (seriesct > nmax) {
43     seriesct = nmax;
44     printf (" (only the first %d will be listed)", seriesct);
45     }
46     printf ("\n");
47    
48     for (series = 0; series < seriesct; series++) {
49     char *seriesname = qres->field[series][0];
50     printf ("%s\t", seriesname);
51     sprintf (query, "select count (recnum) from %s", seriesname);
52     /* Query the database to get the record count from the series table */
53     /* (every data series must have a "recnum" field) */
54     if (sqres = drms_query_txt (drms_env->session, query)) {
55     printf ("%s", sqres->field[0][0]);
56     db_free_text_result (sqres);
57     } else printf ("?");
58     printf ("\n");
59     }
60 rick 1.1
61 rick 1.2 db_free_text_result (qres);
62     return 0;
63 rick 1.1 }
64    
65     /*
66     * Revision History
67     *
68     * 09.04.20 file created by R Bogart
69     */