Changeset: e1c886462e21 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e1c886462e21 Modified Files: clients/mapiclient/mclient.c monetdb5/mal/Tests/tst1200.stable.out monetdb5/mal/Tests/tst1202.stable.out monetdb5/modules/atoms/mtime.c Branch: default Log Message:
Quote timezone string: it may have an embedded comma. diffs (171 lines): diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -1080,6 +1080,8 @@ TESTrenderer(MapiHdl hdl) /* start or end with white space? */ my_isspace(*s) || my_isspace(s[l - 1]) || + /* timezone can have embedded comma */ + strcmp(tp, "timezone") == 0 || /* a bunch of geom types */ strcmp(tp, "curve") == 0 || strcmp(tp, "geometry") == 0 || diff --git a/monetdb5/mal/Tests/tst1200.stable.out b/monetdb5/mal/Tests/tst1200.stable.out --- a/monetdb5/mal/Tests/tst1200.stable.out +++ b/monetdb5/mal/Tests/tst1200.stable.out @@ -84,21 +84,21 @@ Ready. [ "tzone_bat" ] #-----------------------------------------------------------------------------------------------------------------# # h t # name -# oid tzone # type -#-----------------------------------------------------------------------------------------------------------------# -[ 0@0, GMT ] -[ 1@0, GMT+01:00 ] -[ 2@0, GMT+01:00 ] -[ 3@0, GMT+01:00-DST[october 31@01:15, "first wednesday on or after march 26@01:15" ] -[ 4@0, GMT-DST[17th monday from start of january@01:15, "31th sunday from start of august@01:15" ] -[ 5@0, GMT-01:37-DST[october 31@01:15, "first thursday on or after april 31@01:15" ] -[ 6@0, GMT-01:37-DST[may 26@01:15, "22th tuesday from start of september@01:15" ] -[ 7@0, GMT+23:00-DST[first thursday on or after april 31@01:15, "first wednesday on or after november 22@01:15" ] -[ 8@0, GMT-23:36 ] -[ 9@0, GMT ] -[ 10@0, GMT-01:00 ] -[ 11@0, GMT+23:59 ] -[ 12@0, GMT+01:00 ] +# void timezone # type +#--------------------------# +[ 0@0, "GMT" ] +[ 1@0, "GMT+01:00" ] +[ 2@0, "GMT+01:00" ] +[ 3@0, "GMT+01:00-DST[october 31@01:15,first wednesday on or after march 26@01:15]" ] +[ 4@0, "GMT-DST[17th monday from start of january@01:15,31th sunday from start of august@01:15]" ] +[ 5@0, "GMT-01:37-DST[october 31@01:15,first thursday on or after april 31@01:15]" ] +[ 6@0, "GMT-01:37-DST[may 26@01:15,22th tuesday from start of september@01:15]" ] +[ 7@0, "GMT+23:00-DST[first thursday on or after april 31@01:15,first wednesday on or after november 22@01:15]" ] +[ 8@0, "GMT-23:36" ] +[ 9@0, "GMT" ] +[ 10@0, "GMT-01:00" ] +[ 11@0, "GMT+23:59" ] +[ 12@0, "GMT+01:00" ] [ 13@0, nil ] [ 14@0, nil ] [ 15@0, nil ] @@ -1021,31 +1021,31 @@ Ready. #---------------------------------------------------------------------------------------------------------------------------------# # h t t # name # void str timezone # type -#---------------------------------------------------------------------------------------------------------------------------------# -[ 0@0, "Wake Island", GMT+12:00 ] -[ 1@0, "Melbourne/Australia", GMT+11:00 ] -[ 2@0, "Brisbane/Australia", GMT+10:00 ] -[ 3@0, "Japan", GMT+09:00 ] -[ 4@0, "Singapore", GMT+08:00 ] -[ 5@0, "Thailand", GMT+07:00 ] -[ 6@0, "Pakistan", GMT+05:00 ] -[ 7@0, "United Arab Emirates", GMT+04:00 ] -[ 8@0, "GMT", GMT ] -[ 9@0, "Azore Islands", GMT-01:00 ] -[ 10@0, "Hawaii/USA", GMT-10:00 ] -[ 11@0, "American Samoa", GMT-11:00 ] -[ 12@0, "Kazakhstan", GMT+06:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 13@0, "Moscow/Russia", GMT+03:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 14@0, "East/Europe", GMT+02:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 15@0, "West/Europe", GMT+01:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 16@0, "UK", GMT-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 17@0, "Eastern/Brazil", GMT-02:00-DST[first sunday from end of october@02:01, "first sunday from end of march@02:01" ] -[ 18@0, "Western/Brazil", GMT-03:00-DST[first sunday from end of october@02:01, "first sunday from end of march@02:01" ] -[ 19@0, "Andes/Brazil", GMT-04:00-DST[first sunday from end of october@02:01, "first sunday from end of march@02:01" ] -[ 20@0, "East/USA", GMT-05:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 21@0, "Central/USA", GMT-06:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 22@0, "Mountain/USA", GMT-07:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] -[ 23@0, "Alaska/USA", GMT-09:00-DST[first sunday from end of march@02:01, "first sunday from end of october@02:01" ] +#--------------------------# +[ 0@0, "Wake Island", "GMT+12:00" ] +[ 1@0, "Melbourne/Australia", "GMT+11:00" ] +[ 2@0, "Brisbane/Australia", "GMT+10:00" ] +[ 3@0, "Japan", "GMT+09:00" ] +[ 4@0, "Singapore", "GMT+08:00" ] +[ 5@0, "Thailand", "GMT+07:00" ] +[ 6@0, "Pakistan", "GMT+05:00" ] +[ 7@0, "United Arab Emirates", "GMT+04:00" ] +[ 8@0, "GMT", "GMT" ] +[ 9@0, "Azore Islands", "GMT-01:00" ] +[ 10@0, "Hawaii/USA", "GMT-10:00" ] +[ 11@0, "American Samoa", "GMT-11:00" ] +[ 12@0, "Kazakhstan", "GMT+06:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 13@0, "Moscow/Russia", "GMT+03:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 14@0, "East/Europe", "GMT+02:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 15@0, "West/Europe", "GMT+01:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 16@0, "UK", "GMT-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 17@0, "Eastern/Brazil", "GMT-02:00-DST[first sunday from end of october@02:01,first sunday from end of march@02:01]" ] +[ 18@0, "Western/Brazil", "GMT-03:00-DST[first sunday from end of october@02:01,first sunday from end of march@02:01]" ] +[ 19@0, "Andes/Brazil", "GMT-04:00-DST[first sunday from end of october@02:01,first sunday from end of march@02:01]" ] +[ 20@0, "East/USA", "GMT-05:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 21@0, "Central/USA", "GMT-06:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 22@0, "Mountain/USA", "GMT-07:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] +[ 23@0, "Alaska/USA", "GMT-09:00-DST[first sunday from end of march@02:01,first sunday from end of october@02:01]" ] # io.print("print(timestamp_bat,th_a,wh_a,yh_a,ci_a)"); [ "print(timestamp_bat,th_a,wh_a,yh_a,ci_a)" ] #---------------------------------------------------------------------------------------------------------# diff --git a/monetdb5/mal/Tests/tst1202.stable.out b/monetdb5/mal/Tests/tst1202.stable.out --- a/monetdb5/mal/Tests/tst1202.stable.out +++ b/monetdb5/mal/Tests/tst1202.stable.out @@ -183,21 +183,21 @@ Ready. [ "tzone_bat" ] #-----------------------------------------------------------------------------------------------------------------# # h t # name -# oid timezone # type -#-----------------------------------------------------------------------------------------------------------------# -[ 0@0, GMT ] -[ 1@0, GMT+01:00 ] -[ 2@0, GMT+01:00 ] -[ 3@0, GMT+01:00-DST[october 31@01:15, "first wednesday on or after march 26@01:15" ] -[ 4@0, GMT-DST[17th monday from start of january@01:15, "31th sunday from start of august@01:15" ] -[ 5@0, GMT-01:37-DST[october 31@01:15, "first thursday on or after april 31@01:15" ] -[ 6@0, GMT-01:37-DST[may 26@01:15, "22th tuesday from start of september@01:15" ] -[ 7@0, GMT+23:00-DST[first thursday on or after april 31@01:15, "first wednesday on or after november 22@01:15" ] -[ 8@0, GMT-23:36 ] -[ 9@0, GMT ] -[ 10@0, GMT-01:00 ] -[ 11@0, GMT+23:59 ] -[ 12@0, GMT+01:00 ] +# void timezone # type +#--------------------------# +[ 0@0, "GMT" ] +[ 1@0, "GMT+01:00" ] +[ 2@0, "GMT+01:00" ] +[ 3@0, "GMT+01:00-DST[october 31@01:15,first wednesday on or after march 26@01:15]" ] +[ 4@0, "GMT-DST[17th monday from start of january@01:15,31th sunday from start of august@01:15]" ] +[ 5@0, "GMT-01:37-DST[october 31@01:15,first thursday on or after april 31@01:15]" ] +[ 6@0, "GMT-01:37-DST[may 26@01:15,22th tuesday from start of september@01:15]" ] +[ 7@0, "GMT+23:00-DST[first thursday on or after april 31@01:15,first wednesday on or after november 22@01:15]" ] +[ 8@0, "GMT-23:36" ] +[ 9@0, "GMT" ] +[ 10@0, "GMT-01:00" ] +[ 11@0, "GMT+23:59" ] +[ 12@0, "GMT+01:00" ] [ 13@0, nil ] [ 14@0, nil ] [ "print(kd_a,md_a,od_a)" ] diff --git a/monetdb5/modules/atoms/mtime.c b/monetdb5/modules/atoms/mtime.c --- a/monetdb5/modules/atoms/mtime.c +++ b/monetdb5/modules/atoms/mtime.c @@ -1136,7 +1136,9 @@ tzone_tostr(str *buf, int *len, const tz set_rule(dst_start, z->dst_start); set_rule(dst_end, z->dst_end); - strcpy(*buf, "GMT"); + if (z->dst) + *s++ = '"'; + strcpy(s, "GMT"); s += 3; if (mins > 0) { sprintf(s, "+%02d:%02d", mins / 60, mins % 60); @@ -1152,6 +1154,7 @@ tzone_tostr(str *buf, int *len, const tz *s++ = ','; s += rule_tostr(&s, len, &dst_end); *s++ = ']'; + *s++ = '"'; *s = 0; } } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list