--- parser3/src/classes/hash.C 2004/06/22 14:12:57 1.71 +++ parser3/src/classes/hash.C 2005/06/06 08:45:11 1.73 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_HASH_C="$Date: 2004/06/22 14:12:57 $"; +static const char * const IDENT_HASH_C="$Date: 2005/06/06 08:45:11 $"; #include "classes.h" #include "pa_vmethod_frame.h" @@ -123,10 +123,14 @@ static void _create_or_add(Request& r, M if(params.count()) { Value& vsrc=params.as_no_junction(0, "param must be hash"); if(HashStringValue* src=vsrc.get_hash()) { - HashStringValue* self=&(GET_SELF(r, VHash).hash()); - if(src==self) // same: doing nothing + VHash& self=GET_SELF(r, VHash); + HashStringValue* self_hash=&(self.hash()); + if(src==self_hash) // same: doing nothing return; - src->for_each(copy_all_overwrite_to, self); + src->for_each(copy_all_overwrite_to, self_hash); + + if(VHash* vhash_src=static_cast(vsrc.as(VHASH_TYPE, false))) + self.set_default(vhash_src->get_default()); } } } @@ -275,7 +279,7 @@ static void _sql(Request& r, MethodParam hash); r.connection()->query( statement_cstr, - 0, 0, + placeholders_count, placeholders, offset, limit, handlers, statement_string);