diff options
author | Christophe Genevey Metat <genevey.christophe@gmail.com> | 2016-06-24 12:07:28 +0000 |
---|---|---|
committer | Christophe Genevey Metat <genevey.christophe@gmail.com> | 2016-06-24 12:07:28 +0000 |
commit | 8e2ad5ae986fefae627cb360d0a6b9167893c024 (patch) | |
tree | 3d2492793da4eb788887c66ddac1c2ba6f5874a0 /src/datastore | |
parent | eafc8188ef6584f77dc4dbc6827210f384986e1a (diff) | |
download | gnunet-8e2ad5ae986fefae627cb360d0a6b9167893c024.tar.gz gnunet-8e2ad5ae986fefae627cb360d0a6b9167893c024.zip |
continue to fix execute select
Diffstat (limited to 'src/datastore')
-rw-r--r-- | src/datastore/plugin_datastore_mysql.c | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/src/datastore/plugin_datastore_mysql.c b/src/datastore/plugin_datastore_mysql.c index 4dc9334c8..5754e57dc 100644 --- a/src/datastore/plugin_datastore_mysql.c +++ b/src/datastore/plugin_datastore_mysql.c | |||
@@ -214,6 +214,7 @@ struct Plugin | |||
214 | 214 | ||
215 | }; | 215 | }; |
216 | 216 | ||
217 | #define MAX_PARAM 16 | ||
217 | 218 | ||
218 | /** | 219 | /** |
219 | * Delete an entry from the gn090 table. | 220 | * Delete an entry from the gn090 table. |
@@ -534,7 +535,6 @@ execute_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt | |||
534 | va_start (ap, proc_cls); | 535 | va_start (ap, proc_cls); |
535 | 536 | ||
536 | int pc = 0; | 537 | int pc = 0; |
537 | pc = mysql_stmt_param_count (stmt); | ||
538 | 538 | ||
539 | struct GNUNET_MY_QueryParam *params_select = NULL; | 539 | struct GNUNET_MY_QueryParam *params_select = NULL; |
540 | 540 | ||
@@ -546,6 +546,12 @@ execute_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt | |||
546 | unsigned long long *param_longlong = NULL; | 546 | unsigned long long *param_longlong = NULL; |
547 | void *param_blob = NULL; | 547 | void *param_blob = NULL; |
548 | 548 | ||
549 | pc = mysql_stmt_param_count (stmt); | ||
550 | if (pc > MAX_PARAM) | ||
551 | { | ||
552 | GNUNET_break (0); | ||
553 | } | ||
554 | |||
549 | // enum enum_field_type ft; | 555 | // enum enum_field_type ft; |
550 | int ft; | 556 | int ft; |
551 | int j = 0; | 557 | int j = 0; |
@@ -556,26 +562,28 @@ execute_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt | |||
556 | { | 562 | { |
557 | switch (ft) | 563 | switch (ft) |
558 | { | 564 | { |
559 | case MYSQL_TYPE_LONG: | ||
560 | param_long = va_arg (ap, unsigned int*); | ||
561 | param_is_unsigned = va_arg (ap, int); | ||
562 | params_select[j] = GNUNET_MY_query_param_uint32 (param_long); | ||
563 | break; | ||
564 | |||
565 | case MYSQL_TYPE_LONGLONG: | 565 | case MYSQL_TYPE_LONGLONG: |
566 | param_longlong = va_arg (ap, unsigned long long *); | 566 | param_longlong = va_arg (ap, unsigned long long *); |
567 | param_is_unsigned = va_arg (ap, int); | 567 | param_is_unsigned = va_arg (ap, int); |
568 | params_select[j] = GNUNET_MY_query_param_uint64 (param_longlong); | 568 | params_select[j] = GNUNET_MY_query_param_uint64 (param_longlong); |
569 | break; | 569 | break; |
570 | 570 | ||
571 | case MYSQL_TYPE_LONG: | ||
572 | param_long = va_arg (ap, unsigned int*); | ||
573 | param_is_unsigned = va_arg (ap, int); | ||
574 | params_select[j] = GNUNET_MY_query_param_uint32 (param_long); | ||
575 | break; | ||
576 | |||
577 | case MYSQL_TYPE_VAR_STRING: | ||
578 | case MYSQL_TYPE_STRING: | ||
571 | case MYSQL_TYPE_BLOB: | 579 | case MYSQL_TYPE_BLOB: |
572 | param_blob = va_arg (ap, void *); | 580 | param_blob = va_arg (ap, void *); |
573 | param_length = va_arg (ap, unsigned long); | 581 | param_length = va_arg (ap, unsigned long); |
574 | length = va_arg (ap, unsigned long *); | 582 | length = va_arg (ap, unsigned long *); |
575 | params_select[j] = GNUNET_MY_query_param_fixed_size (param_blob, param_length); | 583 | //params_select[j] = GNUNET_MY_query_param_fixed_size (param_blob, param_length); |
576 | fprintf(stderr, "indice de segfault : %d\n", j); | 584 | params_select[j] = GNUNET_MY_query_param_auto_from_type(&key); |
577 | break; | ||
578 | 585 | ||
586 | break; | ||
579 | default: | 587 | default: |
580 | GNUNET_break(0); | 588 | GNUNET_break(0); |
581 | } | 589 | } |
@@ -598,14 +606,20 @@ execute_select (struct Plugin *plugin, struct GNUNET_MYSQL_StatementHandle *stmt | |||
598 | /* | 606 | /* |
599 | 607 | ||
600 | !!!! FAIL HERE FOR SELECT QUERY | 608 | !!!! FAIL HERE FOR SELECT QUERY |
601 | ret = GNUNET_MY_exec_prepared (plugin->mc, stmt, params_select); | 609 | */ ret = GNUNET_MY_exec_prepared (plugin->mc, stmt, params_select); |
602 | 610 | ||
603 | if (ret <= 0) | 611 | if(GNUNET_OK != ret) |
604 | { | 612 | { |
605 | proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0); | 613 | proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0); |
606 | return; | 614 | return; |
607 | } | 615 | } |
608 | */ | 616 | |
617 | /* if (ret <= 0) | ||
618 | { | ||
619 | proc (proc_cls, NULL, 0, NULL, 0, 0, 0, GNUNET_TIME_UNIT_ZERO_ABS, 0); | ||
620 | return; | ||
621 | } | ||
622 | |||
609 | va_end (ap); | 623 | va_end (ap); |
610 | 624 | ||
611 | /* | 625 | /* |