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 *** |
# | 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 | */ |