aboutsummaryrefslogtreecommitdiff
path: root/src/datastore
diff options
context:
space:
mode:
authorChristophe Genevey Metat <genevey.christophe@gmail.com>2016-06-24 12:07:28 +0000
committerChristophe Genevey Metat <genevey.christophe@gmail.com>2016-06-24 12:07:28 +0000
commit8e2ad5ae986fefae627cb360d0a6b9167893c024 (patch)
tree3d2492793da4eb788887c66ddac1c2ba6f5874a0 /src/datastore
parenteafc8188ef6584f77dc4dbc6827210f384986e1a (diff)
downloadgnunet-8e2ad5ae986fefae627cb360d0a6b9167893c024.tar.gz
gnunet-8e2ad5ae986fefae627cb360d0a6b9167893c024.zip
continue to fix execute select
Diffstat (limited to 'src/datastore')
-rw-r--r--src/datastore/plugin_datastore_mysql.c40
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/*