Roxen.git/
server/
base_server/
roxen.pike
Branch:
Tag:
Non-build tags
All tags
No tags
2003-11-11
2003-11-11 15:40:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>
4da2ef4dc159cac797922e7fa6dba118874fdcd9 (
42
lines) (+
13
/-
29
)
[
Show
|
Annotate
]
Branch:
5.2
{DELETE,UPDATE,INSERT} ==> REPLACE.
Rev: server/base_server/roxen.pike:1.852
6:
// Per Hedbor, Henrik Grubbström, Pontus Hagland, David Hedbor and others. // ABS and suicide systems contributed freely by Francesco Chemolli
-
constant cvs_version="$Id: roxen.pike,v 1.
851
2003/11/
10
12
:
22
:
08
grubba Exp $";
+
constant cvs_version="$Id: roxen.pike,v 1.
852
2003/11/
11
15
:
40
:
07
grubba Exp $";
//! @appears roxen //!
2897:
#endif meta_cache_insert( id, meta ); string meta_data = encode_value( meta );
-
if( catch {
-
QUERY( "UPDATE "+name+" SET size=%d, atime=%d, meta=%s, "
-
"data=%s WHERE id=%s",
-
strlen(data)+strlen(meta_data), time(1), meta_data, data, id );
+
#ifdef ARG_CACHE_DEBUG
-
werror("
updated
entry for %
O, existed before\n
", id );
+
werror("
Replacing
entry for %
O\n
", id );
#endif
-
} )
-
{
-
#ifdef ARG_CACHE_DEBUG
-
werror("new entry for %O\n", id );
-
#endif
-
QUERY("
INSERT
INTO "+name+
+
QUERY("
REPLACE
INTO "+name+
" (id,size,atime,meta,data) VALUES (%s,%d,%d,%s,%s)", id, strlen(data)+strlen(meta_data), time(1), meta_data, data ); }
-
}
+
static mapping restore_meta( string id, RequestID rid ) {
3091:
string uid = ""; if( u ) uid = u->name(); // Might have been insterted from elsewhere.
-
catch {
-
QUERY("
INSERT
INTO "+name+
+
QUERY("
REPLACE
INTO "+name+
" (id,uid,atime) VALUES (%s,%s,UNIX_TIMESTAMP())", id, uid );
-
};
+
} return 0;
3232:
if( zero_type( uid_cache[ ci ] ) ) { uid_cache[ci] = user;
-
if( catch(
QUERY(
"
UPDATE
"+name+" SET uid=%s WHERE id=%s",
-
user||"", ci )) )
-
QUERY("INSERT
INTO "+name+" (id,uid,atime) VALUES (%s,%s,%d)",
+
QUERY("
REPLACE
INTO "+name+" (id,uid,atime) VALUES (%s,%s,%d)",
ci, user||"", time(1) ); }
4849:
string enc = encode_value(res, master()->MyCodec(res)); object con = dbm_cached_get("local");
-
con->query("
DELETE
FROM compiled_formats WHERE md5=%s", kmd5);
-
con->query("INSERT
INTO compiled_formats (md5,full,enc) VALUES (%s,%s,%s)",
+
con->query("
REPLACE
INTO compiled_formats (md5,full,enc) VALUES (%s,%s,%s)",
kmd5, fmt, enc); con = 0;
5362:
mixed res = compile_string( code ); dbm_cached_get( "local" )
-
->query("
DELETE
FROM compiled_formats WHERE md5=%s", kmd5 );
-
dbm_cached_get( "local" )
-
->query("INSERT
INTO compiled_formats (md5,full,enc) VALUES (%s,%s,%s)",
+
->query("
REPLACE
INTO compiled_formats (md5,full,enc) VALUES (%s,%s,%s)",
kmd5,pattern,encode_value( res, master()->MyCodec( res ) ) ); return compile_string(code)()->f; }