Merge pull request #20 from rflynn/master

minor bugfixes
This commit is contained in:
Alexey Romanov
2013-03-23 10:59:50 -07:00
2 changed files with 21 additions and 6 deletions

View File

@@ -246,12 +246,16 @@ static inline int output_ok(sqlite3_drv_t *drv) {
return driver_output_term(drv->port, spec, sizeof(spec) / sizeof(spec[0])); return driver_output_term(drv->port, spec, sizeof(spec) / sizeof(spec[0]));
} }
static int enable_load_extension(sqlite3_drv_t* drv, char *buf, static int enable_load_extension(sqlite3_drv_t* drv, char *buf, int len) {
int len) { #ifdef ERLANG_SQLITE3_LOAD_EXTENSION
char enable = buf[0]; char enable = buf[0];
sqlite3_enable_load_extension(drv->db, (int) enable); sqlite3_enable_load_extension(drv->db, (int) enable);
output_ok(drv); output_ok(drv);
return 0; return 0;
#else
output_error(drv, SQLITE_MISUSE, "extension loading not enabled");
return -1;
#endif
} }
static inline async_sqlite3_command *make_async_command_statement( static inline async_sqlite3_command *make_async_command_statement(
@@ -1415,7 +1419,7 @@ static void fprint_dataset(FILE* log, ErlDrvTermData *dataset, int term_count) {
#if defined(_MSC_VER) #if defined(_MSC_VER)
fprintf(log, "%d-%d: int %I64d", i, i+1, (ErlDrvSInt64) dataset[i+1]); fprintf(log, "%d-%d: int %I64d", i, i+1, (ErlDrvSInt64) dataset[i+1]);
#else #else
fprintf(log, "%d-%d: int %ld", i, i+1, (ErlDrvSInt64) dataset[i+1]); fprintf(log, "%d-%d: int %lld", i, i+1, (ErlDrvSInt64) dataset[i+1]);
#endif #endif
i += 2; i += 2;
stack_size++; stack_size++;
@@ -1424,7 +1428,7 @@ static void fprint_dataset(FILE* log, ErlDrvTermData *dataset, int term_count) {
#if defined(_MSC_VER) #if defined(_MSC_VER)
fprintf(log, "%d-%d: int %I64lu", i, i+1, (ErlDrvUInt64) dataset[i+1]); fprintf(log, "%d-%d: int %I64lu", i, i+1, (ErlDrvUInt64) dataset[i+1]);
#else #else
fprintf(log, "%d-%d: int %lu", i, i+1, (ErlDrvUInt64) dataset[i+1]); fprintf(log, "%d-%d: int %llu", i, i+1, (ErlDrvUInt64) dataset[i+1]);
#endif #endif
i += 2; i += 2;
stack_size++; stack_size++;

View File

@@ -304,11 +304,11 @@ sql_number(NumberStr) ->
case string:to_integer(NumberStr) of case string:to_integer(NumberStr) of
{Int, []} -> {Int, []} ->
Int; Int;
Other -> _ ->
case string:to_float(NumberStr) of case string:to_float(NumberStr) of
{Float, []} -> {Float, []} ->
Float; Float;
Other -> _ ->
{error, not_a_number} {error, not_a_number}
end end
end. end.
@@ -408,6 +408,17 @@ quote_test() ->
?assertFlat("'abc'", value_to_sql("abc")), ?assertFlat("'abc'", value_to_sql("abc")),
?assertFlat("'a''b''''c'", value_to_sql("a'b''c")). ?assertFlat("'a''b''''c'", value_to_sql("a'b''c")).
number_test() ->
?assertEqual(sql_number(""), {error, not_a_number}),
?assertEqual(sql_number("a"), {error, not_a_number}),
?assertEqual(sql_number(" 1"), {error, not_a_number}),
?assertEqual(sql_number("1 "), {error, not_a_number}),
?assertEqual(sql_number(" 1 "), {error, not_a_number}),
?assertEqual(sql_number("0"), 0),
?assertEqual(sql_number("0.0"), 0.0),
?assertEqual(sql_number("-0.0"), 0.0),
?assertEqual(sql_number("+0.0"), 0.0).
create_table_sql_test() -> create_table_sql_test() ->
?assertFlat( ?assertFlat(
"CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT, CHECK ('am'='am'));", "CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT, CHECK ('am'='am'));",