Hello guys,I tried to add a longtext value in a mysql database using gda but I have a SIGPIPE error when I execute the statement.THis is the stack :(gdb) bt#0 0x00007ffff6ec12af in send () from /usr/lib/libc.so.6#1 0x00007fffee217a4d in ?? () from /usr/lib/libmysqlclient.so.18#2 0x00007fffee1f6349 in ?? () from /usr/lib/libmysqlclient.so.18#3 0x00007fffee1f6623 in ?? () from /usr/lib/libmysqlclient.so.18#4 0x00007fffee1f6d2a in ?? () from /usr/lib/libmysqlclient.so.18#5 0x00007fffee1edee4 in mysql_set_character_set () from /usr/lib/libmysqlclient.so.18#6 0x00007fffee1e5266 in mysql_stmt_param_metadata () from /usr/lib/libmysqlclient.so.18#7 0x00007fffee1e753a in mysql_stmt_execute () from /usr/lib/libmysqlclient.so.18#8 0x00007fffee73079a in gda_mysql_provider_statement_execute (provider=<optimized out>, cnc=0x777220, stmt=<optimized out>, params=<optimized out>,model_usage=<optimized out>, col_types=<optimized out>, last_inserted_row=0x7fffffffead0, task_id=0x0, async_cb=0x0, cb_data=0x0, error=0x7fffffffeae0)at gda-mysql-provider.c:2782#9 0x00007ffff65c00c1 in gda_connection_statement_execute_v (cnc=cnc entry=0x777220, stmt=stmt entry=0x699680, params=params entry=0x62b0c0,model_usage=model_usage entry=GDA_STATEMENT_MODEL_RANDOM_ACCESS, last_inserted_row=last_inserted_row entry=0x7fffffffead0, error=error entry=0x7fffffffeae0)at gda-connection.c:3544#10 0x00007ffff65c03b4 in gda_connection_statement_execute (cnc=0x777220, stmt=0x699680, params=0x62b0c0, model_usage=GDA_STATEMENT_MODEL_RANDOM_ACCESS,last_inserted_row=0x7fffffffead0, error=0x7fffffffeae0) at gda-connection.c:3725#11 0x00007ffff78c5a85 in ast_db_event_new_entry_full () from /usr/lib/libAST_DBLayer.so#12 0x00007ffff78c5da3 in ast_db_event_information_new_entry_with_meta_and_hidden () from /usr/lib/libAST_DBLayer.so#13 0x0000000000400b0a in main ()This is the insertion method :GValue*ast_db_event_new_entry_full(GdaConnection* dbConnection, gdouble time, const gchar* meta, const gchar* type, const gchar* subType, const gchar* state, gint sourceID, const gchar* username, gboolean hidden) {GValue* result = NULL;GValue* timeValue = gda_value_new(G_TYPE_DOUBLE);g_value_set_double(timeValue, time);GValue* metaValue = NULL;if (meta != NULL)metaValue = gda_value_new_from_string(meta, G_TYPE_STRING);GValue* subTypeIDValue = ast_db_event_sub_types_get_or_register(dbConnection, subType, type);if (subTypeIDValue != NULL) {GValue* typeIDValue = ast_db_event_types_get_or_register(dbConnection, type);if (typeIDValue != NULL) {GValue* stateID = NULL;if (state != NULL) {stateID = ast_db_event_state_get_id(dbConnection, state);} else {stateID = gda_value_new_null();}if (stateID != NULL) {GValue* sourceIDValue = gda_value_new(G_TYPE_INT);g_value_set_int(sourceIDValue, sourceID);GValue* userIDValue = NULL;if (username != NULL) {userIDValue = gda_value_new_from_string(username, G_TYPE_STRING);} else {userIDValue = gda_value_new_null();}GValue* isHiddenValue= NULL;isHiddenValue = gda_value_new(G_TYPE_INT);g_value_set_int(isHiddenValue, hidden ? 1 : 0);GdaStatement *stmt = NULL;GdaSet * set = NULL;GdaSet * lastRow = NULL;GdaHolder *p = NULL;GError * err = NULL;GObject * res = NULL;stmt = ast_db_common_get_statement(dbConnection, "INSERT INTO Events (time, meta, fk_EventTypes, fk_EventSubTypes, fk_EventState, fk_Sources, username, isHidden) VALUES ( ##the_time::gdouble , ##the_meta::string::null , ##the_type::gint , ##the_subtype::gint, ##the_state::gint::null, ##the_sourceID::gint, ##the_user::string::null, ##is_hidden::gint::null )");if (stmt != NULL) {gda_statement_get_parameters (stmt, &set, NULL);p = gda_set_get_holder (set, "the_time");gda_holder_set_value (p, timeValue, NULL);if (metaValue) {p = gda_set_get_holder (set, "the_meta");gda_holder_set_value (p, metaValue, NULL);}p = gda_set_get_holder (set, "the_type");gda_holder_set_value (p, typeIDValue, NULL);p = gda_set_get_holder (set, "the_subtype");gda_holder_set_value (p, subTypeIDValue, NULL);p = gda_set_get_holder (set, "the_state");gda_holder_set_value (p, stateID, NULL);p = gda_set_get_holder (set, "the_sourceID");gda_holder_set_value (p, sourceIDValue, NULL);p = gda_set_get_holder (set, "the_user");gda_holder_set_value (p, userIDValue, NULL);p = gda_set_get_holder (set, "is_hidden");gda_holder_set_value (p, isHiddenValue, NULL);res = gda_connection_statement_execute(dbConnection,stmt, set,GDA_STATEMENT_MODEL_RANDOM_ACCESS, &lastRow, &err);if ((res != NULL) && (err == NULL)) {GdaHolder *h = GDA_HOLDER(lastRow->holders->data);const GValue* holderValue = gda_holder_get_value(h);result = gda_value_new(G_TYPE_INT);g_value_set_int(result, g_value_get_int(holderValue));//Segmentation fault//g_object_unref(holderValue);g_object_unref(lastRow);g_object_unref(res);} else {g_error ("Could not INSERT data into the 'Events' table: %s\n",ast_error_get_error_message(err));}if (err != NULL)g_error_free(err);g_object_unref(set);g_object_unref(stmt);}gda_value_free(sourceIDValue);gda_value_free(userIDValue);gda_value_free(stateID);} else {g_critical("ast:db:Failed to get the event state. State: %s. SubType: %s. Type: %s.", type, subType, state);}gda_value_free(typeIDValue);} else {g_critical("Ast:DB: Failed to get the type ID. Type: %s", type);}gda_value_free(subTypeIDValue);} else {g_critical("Ast:DB:Failed to get the subType ID. SubType: %s. Type: %s.", subType, type);}gda_value_free(timeValue);if (metaValue)gda_value_free(metaValue);return result;}This is a test application :gint strSize = 10;while (TRUE) {GdaConnection* connection = ast_db_get_connection();gchar* meta = NULL;meta = g_new0(gchar, strSize+1);ast_str_rand_string(meta, strSize);g_message("Before Insert %d", strSize);ast_db_event_information_new_entry_with_meta_and_hidden(connection, "AstInformationEvent","Ast_SystemReport", 1, meta);g_free(meta);ast_db_release(connection);g_message("Insert %d", strSize);strSize = strSize * 2;g_usleep(10000);}*It stop when size if greater than 655360How can I use longtext using gda ?Thx in advance for your help.
_______________________________________________
gnome-db-list mailing list
gnome-db-list gnome org
https://mail.gnome.org/mailman/listinfo/gnome-db-list