]> granicus.if.org Git - ejabberd/commitdiff
Handle NULL<->undefined correctly in gen_storage_odbc
authorBrendon Hogger <brendonh@gmail.com>
Mon, 20 Feb 2012 22:30:30 +0000 (06:30 +0800)
committerBrendon Hogger <brendonh@gmail.com>
Mon, 20 Feb 2012 22:30:30 +0000 (06:30 +0800)
src/gen_storage_odbc.erl

index 5702df05ff11f60b00e773a3c729e723885aad7c..c282f063a51bf1de3e35065efd830490a8cc29a3 100644 (file)
@@ -423,6 +423,9 @@ rows_to_result(#tabdef{record_name = RecordName,
 
 row_to_result(Row, [], Result) ->
     {Row, lists:reverse(Result)};
+
+row_to_result([null | Row], [_ | Types], Result) ->
+    row_to_result(Row, Types, [undefined | Result]);
 row_to_result([Field | Row], [Type | Types], Result) ->
     case Type of
        int ->
@@ -649,6 +652,10 @@ format(I) when is_integer(I) ->
     %% escaping not needed
     integer_to_list(I);
 
+
+format(undefined) ->
+    "NULL";
+
 format(A) when is_atom(A) ->
     %% escaping usually not needed, watch atom() usage
     "'" ++ atom_to_list(A) ++ "'";