|
|
| version 1.14, 2024/10/02 00:07:57 | version 1.17, 2024/10/04 05:12:05 |
|---|---|
| Line 56 static void _create_or_add(Request& r, M | Line 56 static void _create_or_add(Request& r, M |
| self_array.append(src->array()); | self_array.append(src->array()); |
| } | } |
| } else { | } else { |
| HashStringValue* src_hash=vsrc.get_hash(); | HashStringValue* src_hash=vsrc.as_hash("param must be array or"); |
| if(!src_hash) | if(!src_hash) |
| return; | return; |
| for(HashStringValue::Iterator i(*src_hash); i; i.next()){ | for(HashStringValue::Iterator i(*src_hash); i; i.next()){ |
| Line 126 static void _join(Request& r, MethodPara | Line 126 static void _join(Request& r, MethodPara |
| } | } |
| } | } |
| } else { | } else { |
| HashStringValue* src_hash=vsrc.get_hash(); | HashStringValue* src_hash=vsrc.as_hash("param must be array or"); |
| if(!src_hash) | if(!src_hash) |
| return; | return; |
| if(o.defined){ | if(o.defined){ |
| Line 492 static void _sql(Request& r, MethodParam | Line 492 static void _sql(Request& r, MethodParam |
| const char* statement_cstr=statement_string.untaint_cstr(String::L_SQL, r.connection()); | const char* statement_cstr=statement_string.untaint_cstr(String::L_SQL, r.connection()); |
| VArray& self=GET_SELF(r, VArray); | VArray& self=GET_SELF(r, VArray); |
| ArrayValue& array=self.array(); | |
| self.array().clear(); self.invalidate(); // just in case if called as method | array.clear(); self.invalidate(); // just in case if called as method |
| if(sparse){ | if(sparse){ |
| SparseArray_sql_event_handlers handlers(distinct, self.array(), value_type); | SparseArray_sql_event_handlers handlers(distinct, array, value_type); |
| r.connection()->query(statement_cstr, placeholders_count, placeholders, offset, limit, handlers, statement_string); | r.connection()->query(statement_cstr, placeholders_count, placeholders, offset, limit, handlers, statement_string); |
| } else { | } else { |
| Array_sql_event_handlers handlers(self.array(), value_type); | Array_sql_event_handlers handlers(array, value_type); |
| r.connection()->query(statement_cstr, placeholders_count, placeholders, offset, limit, handlers, statement_string); | r.connection()->query(statement_cstr, placeholders_count, placeholders, offset, limit, handlers, statement_string); |
| } | } |
| array.confirm_all_used(); | |
| if(bind) | if(bind) |
| unmarshal_bind_updates(*bind, placeholders_count, placeholders); | unmarshal_bind_updates(*bind, placeholders_count, placeholders); |
| } | } |
| static void mid(Request& r, size_t offset=0, size_t limit=ARRAY_OPTION_LIMIT_ALL) { | static void mid(Request& r, size_t offset=0, size_t limit=ARRAY_OPTION_LIMIT_ALL) { |
| ArrayValue& array=GET_SELF(r, VArray).array(); | ArrayValue& array=GET_SELF(r, VArray).array(); |
| if(limit>0){ | if(limit>0){ |
| Line 525 static void mid(Request& r, size_t offse | Line 527 static void mid(Request& r, size_t offse |
| result_array+=i.value(); | result_array+=i.value(); |
| } | } |
| } | } |
| result_array.confirm_all_used(); | |
| r.write(*result); | r.write(*result); |
| } else { | } else { |
| r.write(*new VArray); | r.write(*new VArray); |
| Line 857 static void _sort(Request& r, MethodPara | Line 860 static void _sort(Request& r, MethodPara |
| for(pos=0; pos<count; pos++) | for(pos=0; pos<count; pos++) |
| array+=seq[pos].array_data; | array+=seq[pos].array_data; |
| self.invalidate(); | |
| delete[] seq; | delete[] seq; |
| } | } |
| Line 866 enum AtResultType { | Line 870 enum AtResultType { |
| AtResultTypeHash = 2 | AtResultTypeHash = 2 |
| }; | }; |
| inline Value& SingleElementHash(String::Body akey, Value* avalue) { | static Value& SingleElementHash(String::Body akey, Value* avalue) { |
| Value& result=*new VHash; | Value& result=*new VHash; |
| result.put_element(*new String(akey, String::L_TAINTED), avalue); | result.put_element(*new String(akey, String::L_TAINTED), avalue); |
| return result; | return result; |
| Line 1017 static void _select(Request& r, MethodPa | Line 1021 static void _select(Request& r, MethodPa |
| } | } |
| } | } |
| result_array.confirm_all_used(); | |
| r.write(*result); | r.write(*result); |
| } | } |