@@ -168,10 +168,35 @@
168 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** True if manifest_crosslink_begin() has been called but
169 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** manifest_crosslink_end() is still pending.
170 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
171 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static int manifest_crosslink_busy = 0;
172 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** There are some triggers that need to fire whenever new content
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is added to the EVENT table, to make corresponding changes to the
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** PENDING_ALERT and CHAT tables. These are done with TEMP triggers
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** which are created as needed. The reasons for using TEMP triggers:
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * A small minority of invocations of Fossil need to use those triggers.
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** So we save CPU cycles in the common case by not having to parse the
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** trigger definition
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * We don't have to worry about dangling table references inside
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** of triggers. For example, we can create a trigger that adds
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to the CHAT table. But an admin can still drop that CHAT table
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** at any moment, since the trigger that refers to CHAT is a TEMP
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** trigger and won't persist to cause problems.
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Because TEMP triggers are defined by the specific version of the
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** application that is running, we don't have to worry with legacy
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** compatibility of the triggers.
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This boolean variable is set when the TEMP triggers for EVENT
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** have been created.
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int manifest_event_triggers_are_enabled = 0;
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
173 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
174 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Clear the memory allocated in a manifest object
175 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
176 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void manifest_destroy(Manifest *p){
177 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p ){
@@ -1938,10 +1963,11 @@
1938 1963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** by the call to manifest_crosslink_end().
1939 1964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1940 1965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void manifest_crosslink_begin(void){
1941 1966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( manifest_crosslink_busy==0 );
1942 1967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_crosslink_busy = 1;
1968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_create_event_triggers();
1943 1969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
1944 1970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
1945 1971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"CREATE TEMP TABLE pending_xlink(id TEXT PRIMARY KEY)WITHOUT ROWID;"
1946 1972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"CREATE TEMP TABLE time_fudge("
1947 1973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" mid INTEGER PRIMARY KEY," /* The rid of a manifest */
@@ -2056,10 +2082,32 @@
2056 2082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2057 2083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
2058 2084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_crosslink_busy = 0;
2059 2085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return ( rc!=TH_ERROR );
2060 2086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
2089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Activate EVENT triggers if they do not already exist.
2090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
2091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void manifest_create_event_triggers(void){
2092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( manifest_event_triggers_are_enabled ){
2093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return; /* Triggers already exists. No-op. */
2094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ alert_create_trigger();
2096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_event_triggers_are_enabled = 1;
2097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
2100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Disable manifest event triggers. Drop them if they exist, but mark
2101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** them has having been created so that they won't be recreated. This
2102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is used during "rebuild" to prevent triggers from firing then.
2103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
2104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void manifest_disable_event_triggers(void){
2105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ alert_drop_trigger();
2106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_event_triggers_are_enabled = 1;
2107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2061 2109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2062 2110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
2063 2111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Make an entry in the event table for a ticket change artifact.
2064 2112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2065 2113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void manifest_ticket_event(
@@ -2126,10 +2174,11 @@
2126 2174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
2127 2175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&brief, "New ticket [%!S|%S].", pManifest->zTicketUuid,
2128 2176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pManifest->zTicketUuid);
2129 2177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2130 2178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zTitle);
2179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_create_event_triggers();
2131 2180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2132 2181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,tagid,mtime,objid,user,comment,brief)"
2133 2182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('t',%d,%.17g,%d,%Q,%Q,%Q)",
2134 2183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tktTagId, pManifest->rDate, rid, pManifest->zUser,
2135 2184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_str(&comment), blob_str(&brief)
@@ -2227,10 +2276,11 @@
2227 2276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zUuid = 0;
2228 2277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2229 2278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.fSqlTrace ){
2230 2279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_trace("-- manifest_crosslink(%d)\n", rid);
2231 2280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ manifest_create_event_triggers();
2232 2282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (p = manifest_cache_find(rid))!=0 ){
2233 2283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(pContent);
2234 2284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( (p = manifest_parse(pContent, rid, 0))==0 ){
2235 2285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( blob_is_reset(pContent) || pContent==0 );
2236 2286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (flags & MC_NO_ERRORS)==0 ){
@@ -2274,10 +2324,11 @@
2274 2324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2275 2325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
2276 2326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zCom;
2277 2327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
parentid = manifest_add_checkin_linkages(rid,p,p->nParent,p->azParent);
2278 2328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_doc_touch('c', rid, 0);
2329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2279 2330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2280 2331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment,"
2281 2332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"bgcolor,euser,ecomment,omtime)"
2282 2333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('ci',"
2283 2334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" coalesce("
@@ -2389,10 +2440,11 @@
2389 2440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( manifest_crosslink_busy ){
2390 2441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
add_pending_crosslink('w',p->zWikiTitle);
2391 2442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2392 2443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
backlink_wiki_refresh(p->zWikiTitle);
2393 2444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2394 2446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2395 2447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment)"
2396 2448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('w',%.17g,%d,%Q,'%c%q');",
2397 2449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rDate, rid, p->zUser, cPrefix, p->zWikiTitle
2398 2450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -2435,10 +2487,11 @@
2435 2487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2436 2488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( subsequent ){
2437 2489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content_deltify(rid, &subsequent, 1, 0);
2438 2490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2439 2491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_doc_touch('e',rid,0);
2492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2440 2493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2441 2494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,tagid,user,comment,bgcolor)"
2442 2495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('e',%.17g,%d,%d,%Q,%Q,"
2443 2496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d));",
2444 2497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rEventDate, rid, tagid, p->zUser, p->zComment,
@@ -2575,10 +2628,11 @@
2575 2628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2576 2629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zComment = mprintf("Delete attachment \"%h\" from ticket [%!S|%S]",
2577 2630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zAttachName, p->zAttachTarget, p->zAttachTarget);
2578 2631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2579 2632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2580 2634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2581 2635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment)"
2582 2636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('%c',%.17g,%d,%Q,%Q)",
2583 2637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
attachToType, p->rDate, rid, p->zUser, zComment
2584 2638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -2678,10 +2732,11 @@
2678 2732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&comment, ".");
2679 2733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2680 2734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2681 2735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*blob_appendf(&comment, " [[/info/%S | details]]");*/
2682 2736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( blob_size(&comment)==0 ) blob_append(&comment, " ", 1);
2737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2683 2738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2684 2739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment)"
2685 2740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('g',%.17g,%d,%Q,%Q)",
2686 2741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rDate, rid, p->zUser, blob_str(&comment)+1
2687 2742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -2707,10 +2762,11 @@
2707 2762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle = p->zThreadTitle;
2708 2763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zTitle==0 || zTitle[0]==0 ){
2709 2764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTitle = "(Deleted)";
2710 2765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2711 2766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFType = fprev ? "Edit" : "Post";
2767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2712 2768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2713 2769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment)"
2714 2770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('f',%.17g,%d,%Q,'%q: %q')",
2715 2771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rDate, rid, p->zUser, zFType, zTitle
2716 2772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -2739,10 +2795,11 @@
2739 2795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( fprev ){
2740 2796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFType = "Edit reply";
2741 2797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2742 2798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zFType = "Reply";
2743 2799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ assert( manifest_event_triggers_are_enabled );
2744 2801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
2745 2802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"REPLACE INTO event(type,mtime,objid,user,comment)"
2746 2803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"VALUES('f',%.17g,%d,%Q,'%q: %q')",
2747 2804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->rDate, rid, p->zUser, zFType, zTitle
2748 2805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
2749 2806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!