Changeset: b3f811851686 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b3f811851686
Modified Files:
        clients/mapilib/mapi.c
        monetdb5/mal/Tests/tst1200.stable.out
        monetdb5/mal/Tests/tst1203.stable.out
        monetdb5/modules/atoms/Tests/json04.stable.out
        sql/backends/monet5/UDF/pyapi/Tests/pyapi_returntypes.stable.out
Branch: Jul2017
Log Message:

Fix result set field count if no SQL result set header present.


diffs (truncated from 305 to 300 lines):

diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -3819,6 +3819,7 @@ parse_header_line(MapiHdl hdl, char *lin
        }
 
        if (strcmp(tag, "name") == 0) {
+               result->fieldcnt = n;
                for (i = 0; i < n; i++) {
                        if (anchors[i]) {
                                if (result->fields[i].columnname)
@@ -3828,6 +3829,7 @@ parse_header_line(MapiHdl hdl, char *lin
                        }
                }
        } else if (strcmp(tag, "type") == 0) {
+               result->fieldcnt = n;
                for (i = 0; i < n; i++) {
                        if (anchors[i]) {
                                if (result->fields[i].columntype)
@@ -3837,11 +3839,13 @@ parse_header_line(MapiHdl hdl, char *lin
                        }
                }
        } else if (strcmp(tag, "length") == 0) {
+               result->fieldcnt = n;
                for (i = 0; i < n; i++) {
                        if (anchors[i])
                                result->fields[i].columnlength = 
atoi(anchors[i]);
                }
        } else if (strcmp(tag, "table_name") == 0) {
+               result->fieldcnt = n;
                for (i = 0; i < n; i++) {
                        if (anchors[i]) {
                                if (result->fields[i].tablename)
@@ -3851,6 +3855,7 @@ parse_header_line(MapiHdl hdl, char *lin
                        }
                }
        } else if (strcmp(tag, "typesizes") == 0) {
+               result->fieldcnt = n;
                for (i = 0; i < n; i++) {
                        if (anchors[i]) {
                                char *p;
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
@@ -115,11 +115,11 @@ Ready.
 [ 0@0,   0,              nil,                                            nil   
                                          ]
 [ 1@0,   60,             nil,                                            nil   
                                          ]
 [ 2@0,   60,             nil,                                            nil   
                                          ]
-[ 3@0, 60,     "october 31@01:15",     "first wednesday on or after march 
26@01:15"    ]
-[ 4@0, 0,      "17th monday from start of january@01:15",      "31th sunday 
from start of august@01:15"        ]
-[ 5@0, -97,    "october 31@01:15",     "first thursday on or after april 
31@01:15"     ]
-[ 6@0, -97,    "may 26@01:15", "22th tuesday from start of september@01:15"    
]
-[ 7@0, 1380,   "first thursday on or after april 31@01:15",    "first 
wednesday on or after november 22@01:15" ]
+[ 3@0, 60,     october 31@01:15,       first wednesday on or after march 
26@01:15      ]
+[ 4@0, 0,      17th monday from start of january@01:15,        31th sunday 
from start of august@01:15  ]
+[ 5@0, -97,    october 31@01:15,       first thursday on or after april 
31@01:15       ]
+[ 6@0, -97,    may 26@01:15,   22th tuesday from start of september@01:15      
]
+[ 7@0, 1380,   first thursday on or after april 31@01:15,      first wednesday 
on or after november 22@01:15   ]
 [ 8@0,   -1416,          nil,                                            nil   
                                          ]
 [ 9@0,   0,              nil,                                            nil   
                                          ]
 [ 10@0,          -60,            nil,                                          
  nil                                             ]
@@ -164,19 +164,19 @@ Ready.
 # t    date    min100y diff  # name
 # void date    date    int  # type
 #--------------------------#
-[ 0@0, "2000-01-01",   "1900-01-01",   -36524  ]
-[ 1@0, "5000-01-01",   "4900-01-01",   -36524  ]
-[ 2@0, "1968-02-29",   "1868-02-29",   -36524  ]
-[ 3@0, "1-03-01",      "-100-03-01",   -36525  ]
-[ 4@0, "-5867411-01-01",       nil,    nil     ]
-[ 5@0, "-768-10-01",   "-868-10-01",   -36525  ]
-[ 6@0, "5000-11-01",   "4900-11-01",   -36524  ]
-[ 7@0, "-1999-06-01",  "-2099-06-01",  -36525  ]
-[ 8@0, "2000-07-14",   "1900-07-14",   -36525  ]
-[ 9@0, "1999-09-01",   "1899-09-01",   -36524  ]
-[ 10@0,        "1998-12-01",   "1898-12-01",   -36524  ]
-[ 11@0,        "1953-05-01",   "1853-05-01",   -36524  ]
-[ 12@0,        "5867411-12-31",        "5867311-12-31",        -36524  ]
+[ 0@0, 2000-01-01,     1900-01-01,     -36524  ]
+[ 1@0, 5000-01-01,     4900-01-01,     -36524  ]
+[ 2@0, 1968-02-29,     1868-02-29,     -36524  ]
+[ 3@0, 1-03-01,        -100-03-01,     -36525  ]
+[ 4@0, -5867411-01-01, nil,    nil     ]
+[ 5@0, -768-10-01,     -868-10-01,     -36525  ]
+[ 6@0, 5000-11-01,     4900-11-01,     -36524  ]
+[ 7@0, -1999-06-01,    -2099-06-01,    -36525  ]
+[ 8@0, 2000-07-14,     1900-07-14,     -36525  ]
+[ 9@0, 1999-09-01,     1899-09-01,     -36524  ]
+[ 10@0,        1998-12-01,     1898-12-01,     -36524  ]
+[ 11@0,        1953-05-01,     1853-05-01,     -36524  ]
+[ 12@0,        5867411-12-31,  5867311-12-31,  -36524  ]
 [ 13@0,          nil,            nil,            nil     ]
 [ 14@0,          nil,            nil,            nil     ]
 [ 15@0,          nil,            nil,            nil     ]
@@ -190,19 +190,19 @@ Ready.
 # t    date    plus1m  diff  # name
 # void date    date    int  # type
 #--------------------------#
-[ 0@0, "2000-01-01",   "2000-02-01",   31      ]
-[ 1@0, "5000-01-01",   "5000-02-01",   31      ]
-[ 2@0, "1968-02-29",   "1968-03-29",   29      ]
-[ 3@0, "1-03-01",      "1-04-01",      31      ]
-[ 4@0, "-5867411-01-01",       "-5867411-02-01",       31      ]
-[ 5@0, "-768-10-01",   "-768-11-01",   31      ]
-[ 6@0, "5000-11-01",   "5000-12-01",   30      ]
-[ 7@0, "-1999-06-01",  "-1999-07-01",  30      ]
-[ 8@0, "2000-07-14",   "2000-08-14",   31      ]
-[ 9@0, "1999-09-01",   "1999-10-01",   30      ]
-[ 10@0,        "1998-12-01",   "1999-01-01",   31      ]
-[ 11@0,        "1953-05-01",   "1953-06-01",   31      ]
-[ 12@0,        "5867411-12-31",        nil,    nil     ]
+[ 0@0, 2000-01-01,     2000-02-01,     31      ]
+[ 1@0, 5000-01-01,     5000-02-01,     31      ]
+[ 2@0, 1968-02-29,     1968-03-29,     29      ]
+[ 3@0, 1-03-01,        1-04-01,        31      ]
+[ 4@0, -5867411-01-01, -5867411-02-01, 31      ]
+[ 5@0, -768-10-01,     -768-11-01,     31      ]
+[ 6@0, 5000-11-01,     5000-12-01,     30      ]
+[ 7@0, -1999-06-01,    -1999-07-01,    30      ]
+[ 8@0, 2000-07-14,     2000-08-14,     31      ]
+[ 9@0, 1999-09-01,     1999-10-01,     30      ]
+[ 10@0,        1998-12-01,     1999-01-01,     31      ]
+[ 11@0,        1953-05-01,     1953-06-01,     31      ]
+[ 12@0,        5867411-12-31,  nil,    nil     ]
 [ 13@0,          nil,            nil,            nil     ]
 [ 14@0,          nil,            nil,            nil     ]
 [ 15@0,          nil,            nil,            nil     ]
@@ -970,21 +970,21 @@ Ready.
 # t    daytime hours   minutes seconds milliseconds  # name
 # void daytime int     int     int     int  # type
 #--------------------------#
-[ 0@0, "23:59:59.999", 23,     59,     59,     999     ]
-[ 1@0, "23:59:00.000", 23,     59,     0,      0       ]
-[ 2@0, "00:00:00.000", 0,      0,      0,      0       ]
-[ 3@0, "23:59:59.000", 23,     59,     59,     0       ]
-[ 4@0, "00:00:00.000", 0,      0,      0,      0       ]
-[ 5@0, "00:00:00.000", 0,      0,      0,      0       ]
-[ 6@0, "00:00:00.001", 0,      0,      0,      1       ]
-[ 7@0, "03:49:02.999", 3,      49,     2,      999     ]
-[ 8@0, "20:48:42.999", 20,     48,     42,     999     ]
-[ 9@0, "17:53:38.999", 17,     53,     38,     999     ]
-[ 10@0,        "13:15:34.999", 13,     15,     34,     999     ]
-[ 11@0,        "07:34:27.999", 7,      34,     27,     999     ]
-[ 12@0,        "23:59:59.999", 23,     59,     59,     999     ]
-[ 13@0,        "01:00:03.999", 1,      0,      3,      999     ]
-[ 14@0,        "23:59:59.999", 23,     59,     59,     999     ]
+[ 0@0, 23:59:59.999,   23,     59,     59,     999     ]
+[ 1@0, 23:59:00.000,   23,     59,     0,      0       ]
+[ 2@0, 00:00:00.000,   0,      0,      0,      0       ]
+[ 3@0, 23:59:59.000,   23,     59,     59,     0       ]
+[ 4@0, 00:00:00.000,   0,      0,      0,      0       ]
+[ 5@0, 00:00:00.000,   0,      0,      0,      0       ]
+[ 6@0, 00:00:00.001,   0,      0,      0,      1       ]
+[ 7@0, 03:49:02.999,   3,      49,     2,      999     ]
+[ 8@0, 20:48:42.999,   20,     48,     42,     999     ]
+[ 9@0, 17:53:38.999,   17,     53,     38,     999     ]
+[ 10@0,        13:15:34.999,   13,     15,     34,     999     ]
+[ 11@0,        07:34:27.999,   7,      34,     27,     999     ]
+[ 12@0,        23:59:59.999,   23,     59,     59,     999     ]
+[ 13@0,        01:00:03.999,   1,      0,      3,      999     ]
+[ 14@0,        23:59:59.999,   23,     59,     59,     999     ]
 [ 15@0,          nil,            nil,    nil,            nil,            nil   
          ]
 [ 16@0,          nil,            nil,    nil,            nil,            nil   
          ]
 [ 17@0,          nil,            nil,    nil,            nil,            nil   
          ]
@@ -1078,19 +1078,19 @@ Ready.
 # t    timestamp       plus23  min1    diff  # name
 # void timestamp       timestamp       timestamp       lng  # type
 #--------------------------#
-[ 0@0, "2000-01-02 00:59:59.999",      "2000-01-02 23:59:59.999",      
"2000-01-02 00:58:59.999",      23      ]
-[ 1@0, "5000-01-01 23:59:00.000",      "5000-01-02 22:59:00.000",      
"5000-01-01 23:58:00.000",      23      ]
-[ 2@0, "1968-02-29 00:00:00.000",      "1968-02-29 23:00:00.000",      
"1968-02-28 23:59:00.000",      23      ]
-[ 3@0, "1-03-01 22:59:59.000", "1-03-02 21:59:59.000", "1-03-01 22:58:59.000", 
23      ]
-[ 4@0, "-5867411-01-01 01:00:00.000",  "-5867411-01-02 00:00:00.000",  nil,    
nil     ]
-[ 5@0, "-768-10-01 02:37:00.000",      "-768-10-02 01:37:00.000",      
"-768-10-01 02:36:00.000",      23      ]
-[ 6@0, "5000-11-01 01:37:00.001",      "5000-11-02 00:37:00.001",      
"5000-11-01 01:36:00.001",      23      ]
-[ 7@0, "-1999-05-31 04:49:02.999",     "-1999-06-01 03:49:02.999",     
"-1999-05-31 04:48:02.999",     23      ]
-[ 8@0, "2000-07-15 21:24:42.999",      "2000-07-16 20:24:42.999",      
"2000-07-15 21:23:42.999",      23      ]
-[ 9@0, "1999-09-01 18:53:38.999",      "1999-09-02 17:53:38.999",      
"1999-09-01 18:52:38.999",      23      ]
-[ 10@0,        "1998-12-01 15:15:34.999",      "1998-12-02 14:15:34.999",      
"1998-12-01 15:14:34.999",      23      ]
-[ 11@0,        "1953-04-30 08:35:27.999",      "1953-05-01 07:35:27.999",      
"1953-04-30 08:34:27.999",      23      ]
-[ 12@0,        "5867411-12-31 23:59:59.999",   nil,    "5867411-12-31 
23:58:59.999",   nil     ]
+[ 0@0, 2000-01-02 00:59:59.999,        2000-01-02 23:59:59.999,        
2000-01-02 00:58:59.999,        23      ]
+[ 1@0, 5000-01-01 23:59:00.000,        5000-01-02 22:59:00.000,        
5000-01-01 23:58:00.000,        23      ]
+[ 2@0, 1968-02-29 00:00:00.000,        1968-02-29 23:00:00.000,        
1968-02-28 23:59:00.000,        23      ]
+[ 3@0, 1-03-01 22:59:59.000,   1-03-02 21:59:59.000,   1-03-01 22:58:59.000,   
23      ]
+[ 4@0, -5867411-01-01 01:00:00.000,    -5867411-01-02 00:00:00.000,    nil,    
nil     ]
+[ 5@0, -768-10-01 02:37:00.000,        -768-10-02 01:37:00.000,        
-768-10-01 02:36:00.000,        23      ]
+[ 6@0, 5000-11-01 01:37:00.001,        5000-11-02 00:37:00.001,        
5000-11-01 01:36:00.001,        23      ]
+[ 7@0, -1999-05-31 04:49:02.999,       -1999-06-01 03:49:02.999,       
-1999-05-31 04:48:02.999,       23      ]
+[ 8@0, 2000-07-15 21:24:42.999,        2000-07-16 20:24:42.999,        
2000-07-15 21:23:42.999,        23      ]
+[ 9@0, 1999-09-01 18:53:38.999,        1999-09-02 17:53:38.999,        
1999-09-01 18:52:38.999,        23      ]
+[ 10@0,        1998-12-01 15:15:34.999,        1998-12-02 14:15:34.999,        
1998-12-01 15:14:34.999,        23      ]
+[ 11@0,        1953-04-30 08:35:27.999,        1953-05-01 07:35:27.999,        
1953-04-30 08:34:27.999,        23      ]
+[ 12@0,        5867411-12-31 23:59:59.999,     nil,    5867411-12-31 
23:58:59.999,     nil     ]
 [ 13@0,          nil,                            nil,                          
  nil,                            nil     ]
 [ 14@0,          nil,                            nil,                          
  nil,                            nil     ]
 [ 15@0,          nil,                            nil,                          
  nil,                            nil     ]
diff --git a/monetdb5/mal/Tests/tst1203.stable.out 
b/monetdb5/mal/Tests/tst1203.stable.out
--- a/monetdb5/mal/Tests/tst1203.stable.out
+++ b/monetdb5/mal/Tests/tst1203.stable.out
@@ -60,19 +60,19 @@ Ready.
 # t    date    min100y diff  # name
 # void date    date    int  # type
 #--------------------------#
-[ 0@0, "2000-01-01",   "1900-01-01",   -36524  ]
-[ 1@0, "5000-01-01",   "4900-01-01",   -36524  ]
-[ 2@0, "1968-02-29",   "1868-02-29",   -36524  ]
-[ 3@0, "1-03-01",      "-100-03-01",   -36525  ]
-[ 4@0, "-5867411-01-01",       nil,    nil     ]
-[ 5@0, "-768-10-01",   "-868-10-01",   -36525  ]
-[ 6@0, "5000-11-01",   "4900-11-01",   -36524  ]
-[ 7@0, "-1999-06-01",  "-2099-06-01",  -36525  ]
-[ 8@0, "2000-07-14",   "1900-07-14",   -36525  ]
-[ 9@0, "1999-09-01",   "1899-09-01",   -36524  ]
-[ 10@0,        "1998-12-01",   "1898-12-01",   -36524  ]
-[ 11@0,        "1953-05-01",   "1853-05-01",   -36524  ]
-[ 12@0,        "5867411-12-31",        "5867311-12-31",        -36524  ]
+[ 0@0, 2000-01-01,     1900-01-01,     -36524  ]
+[ 1@0, 5000-01-01,     4900-01-01,     -36524  ]
+[ 2@0, 1968-02-29,     1868-02-29,     -36524  ]
+[ 3@0, 1-03-01,        -100-03-01,     -36525  ]
+[ 4@0, -5867411-01-01, nil,    nil     ]
+[ 5@0, -768-10-01,     -868-10-01,     -36525  ]
+[ 6@0, 5000-11-01,     4900-11-01,     -36524  ]
+[ 7@0, -1999-06-01,    -2099-06-01,    -36525  ]
+[ 8@0, 2000-07-14,     1900-07-14,     -36525  ]
+[ 9@0, 1999-09-01,     1899-09-01,     -36524  ]
+[ 10@0,        1998-12-01,     1898-12-01,     -36524  ]
+[ 11@0,        1953-05-01,     1853-05-01,     -36524  ]
+[ 12@0,        5867411-12-31,  5867311-12-31,  -36524  ]
 [ 13@0,        nil,    nil,    nil     ]
 [ 14@0,        nil,    nil,    nil     ]
 [ 15@0,        nil,    nil,    nil     ]
@@ -86,19 +86,19 @@ Ready.
 # t    date    plus1m  diff  # name
 # void date    date    int  # type
 #--------------------------#
-[ 0@0, "2000-01-01",   "2000-02-01",   31      ]
-[ 1@0, "5000-01-01",   "5000-02-01",   31      ]
-[ 2@0, "1968-02-29",   "1968-03-29",   29      ]
-[ 3@0, "1-03-01",      "1-04-01",      31      ]
-[ 4@0, "-5867411-01-01",       "-5867411-02-01",       31      ]
-[ 5@0, "-768-10-01",   "-768-11-01",   31      ]
-[ 6@0, "5000-11-01",   "5000-12-01",   30      ]
-[ 7@0, "-1999-06-01",  "-1999-07-01",  30      ]
-[ 8@0, "2000-07-14",   "2000-08-14",   31      ]
-[ 9@0, "1999-09-01",   "1999-10-01",   30      ]
-[ 10@0,        "1998-12-01",   "1999-01-01",   31      ]
-[ 11@0,        "1953-05-01",   "1953-06-01",   31      ]
-[ 12@0,        "5867411-12-31",        nil,    nil     ]
+[ 0@0, 2000-01-01,     2000-02-01,     31      ]
+[ 1@0, 5000-01-01,     5000-02-01,     31      ]
+[ 2@0, 1968-02-29,     1968-03-29,     29      ]
+[ 3@0, 1-03-01,        1-04-01,        31      ]
+[ 4@0, -5867411-01-01, -5867411-02-01, 31      ]
+[ 5@0, -768-10-01,     -768-11-01,     31      ]
+[ 6@0, 5000-11-01,     5000-12-01,     30      ]
+[ 7@0, -1999-06-01,    -1999-07-01,    30      ]
+[ 8@0, 2000-07-14,     2000-08-14,     31      ]
+[ 9@0, 1999-09-01,     1999-10-01,     30      ]
+[ 10@0,        1998-12-01,     1999-01-01,     31      ]
+[ 11@0,        1953-05-01,     1953-06-01,     31      ]
+[ 12@0,        5867411-12-31,  nil,    nil     ]
 [ 13@0,        nil,    nil,    nil     ]
 [ 14@0,        nil,    nil,    nil     ]
 [ 15@0,        nil,    nil,    nil     ]
diff --git a/monetdb5/modules/atoms/Tests/json04.stable.out 
b/monetdb5/modules/atoms/Tests/json04.stable.out
--- a/monetdb5/modules/atoms/Tests/json04.stable.out
+++ b/monetdb5/modules/atoms/Tests/json04.stable.out
@@ -56,15 +56,15 @@ Ready.
 # h    t                 # name
 # void json              # type
 #--------------------------#
-[ 0@0, 1       ]
-[ 1@0, true    ]
+[ 0@0, "1"     ]
+[ 1@0, "true"  ]
 [ 2@0, "[2,false]"  ]
 #--------------------------#
 # h    t       t  # name
 # void oid     json  # type
 #--------------------------#
-[ 0@0, 0@0,    1       ]
-[ 1@0, 1@0,    true    ]
+[ 0@0, 0@0,    "1"     ]
+[ 1@0, 1@0,    "true"  ]
 [ 2@0, 2@0,    "[2,false]"  ]
 
 # 22:43:20 >  
diff --git a/sql/backends/monet5/UDF/pyapi/Tests/pyapi_returntypes.stable.out 
b/sql/backends/monet5/UDF/pyapi/Tests/pyapi_returntypes.stable.out
--- a/sql/backends/monet5/UDF/pyapi/Tests/pyapi_returntypes.stable.out
+++ b/sql/backends/monet5/UDF/pyapi/Tests/pyapi_returntypes.stable.out
@@ -139,9 +139,9 @@ Ready.
 # h    t       t  # name
 # void str     str  # type
 #--------------------------#
-[ 0@0, 33,     44      ]
-[ 1@0, 24,     66      ]
-[ 2@0, 55,     345     ]
+[ 0@0, "33",   "44"    ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to