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

Reply via email to