diff --git a/c_src/sqlite3_drv.c b/c_src/sqlite3_drv.c index 9a7b058..6d568ee 100644 --- a/c_src/sqlite3_drv.c +++ b/c_src/sqlite3_drv.c @@ -433,7 +433,7 @@ static int bind_parameters( return output_error(drv, SQLITE_ERROR, "error while binding parameters"); } - acc_string = driver_alloc(sizeof(char*) * (*p_size + 1)); + acc_string = driver_alloc(sizeof(char) * (*p_size + 1)); ei_decode_string(buffer, p_index, acc_string); for (param_index = 1; param_index <= *p_size; param_index++) { sqlite3_bind_int(statement, param_index, (int) (unsigned char) acc_string[param_index - 1]); diff --git a/src/sqlite3_lib.erl b/src/sqlite3_lib.erl index b048e7e..970a5b8 100644 --- a/src/sqlite3_lib.erl +++ b/src/sqlite3_lib.erl @@ -364,6 +364,7 @@ constraint_sql(Constraint) -> unique -> "UNIQUE"; not_null -> "NOT NULL"; {default, DefaultValue} -> ["DEFAULT ", value_to_sql(DefaultValue)]; + {raw, S} when is_list(S) -> S; _ when is_list(Constraint) -> map_intersperse(fun constraint_sql/1, Constraint, " ") end.