@@ -199,8 +199,8 @@ std::optional<T> extract_optional(const pqxx_field &f) {
199
199
200
200
tags_t tags;
201
201
202
- auto keys = psql_array_to_vector (row[col.tag_k_col ]. c_str () );
203
- auto values = psql_array_to_vector (row[col.tag_v_col ]. c_str () );
202
+ auto keys = psql_array_to_vector (row[col.tag_k_col ]);
203
+ auto values = psql_array_to_vector (row[col.tag_v_col ]);
204
204
205
205
if (keys.size () != values.size ()) {
206
206
throw std::runtime_error (" Mismatch in tags key and value size" );
@@ -218,7 +218,7 @@ std::optional<T> extract_optional(const pqxx_field &f) {
218
218
219
219
nodes_t nodes;
220
220
221
- auto ids = psql_array_to_vector (row[col.node_ids_col ]. c_str () );
221
+ auto ids = psql_array_to_vector (row[col.node_ids_col ]);
222
222
223
223
nodes.reserve (ids.size ());
224
224
@@ -269,9 +269,9 @@ element_type type_from_name(const char *name) {
269
269
270
270
members_t members;
271
271
272
- auto types = psql_array_to_vector (row[col.member_types_col ]. c_str () );
273
- auto ids = psql_array_to_vector (row[col.member_ids_col ]. c_str () );
274
- auto roles = psql_array_to_vector (row[col.member_roles_col ]. c_str () );
272
+ auto types = psql_array_to_vector (row[col.member_types_col ]);
273
+ auto ids = psql_array_to_vector (row[col.member_ids_col ]);
274
+ auto roles = psql_array_to_vector (row[col.member_roles_col ]);
275
275
276
276
if (types.size () != ids.size () ||
277
277
ids.size () != roles.size ()) {
@@ -303,11 +303,11 @@ element_type type_from_name(const char *name) {
303
303
304
304
comments_t comments;
305
305
306
- auto id = psql_array_to_vector (row[col.comment_id_col ]. c_str () );
307
- auto author_id = psql_array_to_vector (row[col.comment_author_id_col ]. c_str () );
308
- auto display_name = psql_array_to_vector (row[col.comment_display_name_col ]. c_str () );
309
- auto body = psql_array_to_vector (row[col.comment_body_col ]. c_str () );
310
- auto created_at = psql_array_to_vector (row[col.comment_created_at_col ]. c_str () );
306
+ auto id = psql_array_to_vector (row[col.comment_id_col ]);
307
+ auto author_id = psql_array_to_vector (row[col.comment_author_id_col ]);
308
+ auto display_name = psql_array_to_vector (row[col.comment_display_name_col ]);
309
+ auto body = psql_array_to_vector (row[col.comment_body_col ]);
310
+ auto created_at = psql_array_to_vector (row[col.comment_created_at_col ]);
311
311
312
312
if (id.size () != author_id.size () ||
313
313
author_id.size () != display_name.size () ||
@@ -465,6 +465,10 @@ void extract_changesets(
465
465
}
466
466
}
467
467
468
+ std::vector<std::string> psql_array_to_vector (const pqxx::field& field) {
469
+ return psql_array_to_vector (std::string_view (field.c_str (), field.size ()));
470
+ }
471
+
468
472
std::vector<std::string> psql_array_to_vector (std::string_view str) {
469
473
std::vector<std::string> strs;
470
474
std::string value;
0 commit comments