null+****@clear*****
null+****@clear*****
2011年 9月 8日 (木) 18:21:10 JST
Kouhei Sutou 2011-09-08 09:21:10 +0000 (Thu, 08 Sep 2011)
New Revision: 59e2d6e03c33886c461c305c0da7a5ce7be45cfc
Log:
[cast] treat 0 -> geo point cast is invalid.
Modified files:
lib/db.c
test/unit/core/test-cast-basic.c
Modified: lib/db.c (+1 -5)
===================================================================
--- lib/db.c 2011-09-06 05:45:04 +0000 (2aa49c8)
+++ lib/db.c 2011-09-08 09:21:10 +0000 (26a0446)
@@ -4068,11 +4068,7 @@ grn_obj_is_persistent(grn_ctx *ctx, grn_obj *obj)
break;\
case GRN_DB_TOKYO_GEO_POINT :\
case GRN_DB_WGS84_GEO_POINT :\
- if (getvalue(src) == 0) {\
- /* REMOVE ME. just ignore zero for backward compatibility. */\
- } else {\
- rc = GRN_INVALID_ARGUMENT;\
- }\
+ rc = GRN_INVALID_ARGUMENT;\
break;\
default :\
SRC2RECORD();\
Modified: test/unit/core/test-cast-basic.c (+3 -6)
===================================================================
--- test/unit/core/test-cast-basic.c 2011-09-06 05:45:04 +0000 (1c71e42)
+++ test/unit/core/test-cast-basic.c 2011-09-08 09:21:10 +0000 (f39b02f)
@@ -531,13 +531,10 @@ test_int32_to_text(void)
void
test_int32_to_geo_point_zero(void)
{
- gint zero_latitude, zero_longitude;
-
grn_obj_reinit(&context, &dest, GRN_DB_WGS84_GEO_POINT, 0);
- cast_int32(0);
- GRN_GEO_POINT_VALUE(&dest, zero_latitude, zero_longitude);
- cut_assert_equal_int(0, zero_latitude);
- cut_assert_equal_int(0, zero_longitude);
+ set_int32(0);
+ grn_test_assert_equal_rc(GRN_INVALID_ARGUMENT,
+ grn_obj_cast(&context, &src, &dest, GRN_FALSE));
}
void