Fossil

Check-in [59985724d7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:New "Forum Threads" category under the /reports webpage.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 59985724d71229bf7c1744996de9f59bbb087a8e2c1842b1d1cfa95ea03dd73b
User & Date: drh 2026-06-08 19:44:21.701
Context
2026-06-09
06:28
With Git 3.0 in sight, the time has come to update the SHA256 situation in the www/fossil-v-git.wiki doc once again. check-in: 35fe8bf940 user: wyoung tags: trunk
01:20
Fix the use of uninitialized static variables for DB statements: whenever such variable is declared initialize it with a predefined empty value.<br> Because otherwize it looks like a bug.<br> It is unclear why it did work before. Also add a few code comments for further consideration. Leaf check-in: 76e735502f user: george tags: initialize-static-vars
2026-06-08
19:50
Merge in trunk. check-in: 919cfb8711 user: stephan tags: forum-editor-2026
19:44
New "Forum Threads" category under the /reports webpage. check-in: 59985724d7 user: drh tags: trunk
19:29
Update the built-in SQLite to the latest trunk version, for testing. check-in: a570ebc608 user: drh tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/statrep.c.
74
75
76
77
78
79
80





81
82
83
84
85
86
87
      rc = *zRealType;
      break;
    case 'f':
    case 'F':
      zRealType = "f";
      rc = *zRealType;
      break;





    case 'g':
    case 'G':
      zRealType = "g";
      rc = *zRealType;
      break;
    case 'm':
    case 'M':







>
>
>
>
>







74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
      rc = *zRealType;
      break;
    case 'f':
    case 'F':
      zRealType = "f";
      rc = *zRealType;
      break;
    case 'h':
    case 'H':
      zRealType = "h";
      rc = *zRealType;
      break;
    case 'g':
    case 'G':
      zRealType = "g";
      rc = *zRealType;
      break;
    case 'm':
    case 'M':
115
116
117
118
119
120
121






122
123
124
125
126
127
128
  }else{
    zTimeSpan = " 1";
  }
  if( zRealType==0 ){
    statsReportTimelineYFlag = "a";
    db_multi_exec("CREATE TEMP VIEW v_reports AS "
                  "SELECT * FROM event WHERE %s", zTimeSpan/*safe-for-%s*/);






  }else if( rc!='n' && rc!='m' ){
    statsReportTimelineYFlag = zRealType;
    db_multi_exec("CREATE TEMP VIEW v_reports AS "
                  "SELECT * FROM event WHERE (type GLOB %Q) AND %s",
                  zRealType, zTimeSpan/*safe-for-%s*/);
  }else{
    const char *zNot = rc=='n' ? "NOT" : "";







>
>
>
>
>
>







120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
  }else{
    zTimeSpan = " 1";
  }
  if( zRealType==0 ){
    statsReportTimelineYFlag = "a";
    db_multi_exec("CREATE TEMP VIEW v_reports AS "
                  "SELECT * FROM event WHERE %s", zTimeSpan/*safe-for-%s*/);
  }else if( rc=='h' ){
    statsReportTimelineYFlag = zRealType;
    db_multi_exec("CREATE TEMP VIEW v_reports AS "
                  "SELECT * FROM event WHERE (type='f') "
                  " AND (comment GLOB 'Post:*') AND %s",
                  zTimeSpan/*safe-for-%s*/);
  }else if( rc!='n' && rc!='m' ){
    statsReportTimelineYFlag = zRealType;
    db_multi_exec("CREATE TEMP VIEW v_reports AS "
                  "SELECT * FROM event WHERE (type GLOB %Q) AND %s",
                  zRealType, zTimeSpan/*safe-for-%s*/);
  }else{
    const char *zNot = rc=='n' ? "NOT" : "";
152
153
154
155
156
157
158


159
160
161
162
163
164
165
      return "merge check-ins";
    case 'n':
      return "non-merge check-ins";
    case 'e':
      return "technotes";
    case 'f':
      return "forum posts";


    case 'w':
      return "wiki changes";
    case 't':
      return "ticket changes";
    case 'g':
      return "tag changes";
    default:







>
>







163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
      return "merge check-ins";
    case 'n':
      return "non-merge check-ins";
    case 'e':
      return "technotes";
    case 'f':
      return "forum posts";
    case 'h':
      return "forum threads";
    case 'w':
      return "wiki changes";
    case 't':
      return "ticket changes";
    case 'g':
      return "tag changes";
    default:
853
854
855
856
857
858
859

860
861
862
863
864
865
866
867
868
869
870
871
872
**   user=NAME         Restricts statistics to the given user
**   type=TYPE         Restricts the report to a specific event type:
**                        * all (everything),
**                        * ci  (check-in)
**                        * m   (merge check-in),
**                        * n   (non-merge check-in)
**                        * f   (forum post)

**                        * w   (wiki page change)
**                        * t   (ticket change)
**                        * g   (tag added or removed)
**                     Defaulting to all event types.
**   from=DATETIME     Consider only events after this timestamp (requires to)
**   to=DATETIME       Consider only events before this timestamp (requires from)
**
**
** The view-specific query parameters include:
**
** view=byweek:
**
**   y=YYYY            The year to report (default is the server's







>




|
|







866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
**   user=NAME         Restricts statistics to the given user
**   type=TYPE         Restricts the report to a specific event type:
**                        * all (everything),
**                        * ci  (check-in)
**                        * m   (merge check-in),
**                        * n   (non-merge check-in)
**                        * f   (forum post)
**                        * h   (forum thread)
**                        * w   (wiki page change)
**                        * t   (ticket change)
**                        * g   (tag added or removed)
**                     Defaulting to all event types.
**   from=DATETIME     Consider only events after this time (requires to)
**   to=DATETIME       Consider only events before this time (requires from)
**
**
** The view-specific query parameters include:
**
** view=byweek:
**
**   y=YYYY            The year to report (default is the server's
892
893
894
895
896
897
898

899
900
901
902
903
904
905
     {  "By Year",     "byyear",    RPT_BYYEAR    },
     {  "By Hour",     "byhour",    RPT_BYHOUR    },
  };
  static const char *const azType[] = {
     "a",  "All Changes",
     "ci", "Check-ins",
     "f",  "Forum Posts",

     "m",  "Merge check-ins",
     "n",  "Non-merge check-ins",
     "g",  "Tags",
     "e",  "Tech Notes",
     "t",  "Tickets",
     "w",  "Wiki"
  };







>







906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
     {  "By Year",     "byyear",    RPT_BYYEAR    },
     {  "By Hour",     "byhour",    RPT_BYHOUR    },
  };
  static const char *const azType[] = {
     "a",  "All Changes",
     "ci", "Check-ins",
     "f",  "Forum Posts",
     "h",  "Forum Threads",
     "m",  "Merge check-ins",
     "n",  "Non-merge check-ins",
     "g",  "Tags",
     "e",  "Tech Notes",
     "t",  "Tickets",
     "w",  "Wiki"
  };