|
|
| version 1.16, 2024/10/02 17:58:15 | version 1.17, 2024/10/04 05:12:05 |
|---|---|
| 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 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); |
| } | } |