Changeset: 8fb0240e24d3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8fb0240e24d3
Modified Files:
        sql/backends/monet5/vaults/parquet/Tests/test_parquet_unsigned.test.in
        sql/backends/monet5/vaults/parquet/pqc_reader.c
Branch: default
Log Message:

Give more useful error in case unsigned doesn't fit + add more tests.


diffs (102 lines):

diff --git 
a/sql/backends/monet5/vaults/parquet/Tests/test_parquet_unsigned.test.in 
b/sql/backends/monet5/vaults/parquet/Tests/test_parquet_unsigned.test.in
--- a/sql/backends/monet5/vaults/parquet/Tests/test_parquet_unsigned.test.in
+++ b/sql/backends/monet5/vaults/parquet/Tests/test_parquet_unsigned.test.in
@@ -1,39 +1,42 @@
+onlyif has-hugeint
 query IIII nosort
 SELECT * FROM '$QTSTDATAPATH/parquet/parquet_testing/unsigned.parquet'
 ----
-1
-1
-1
-1
-2
-2
-2
-2
-3
-3
-3
-3
-4
-4
-4
-4
-5
-5
-5
-5
-255
-65535
-4294967295
-18446744073709551615
+1      1       1       1
+2      2       2       2
+3      3       3       3
+4      4       4       4
+5      5       5       5
+255    65535   4294967295      18446744073709551615
+
+skipif has-hugeint
+statement error
+SELECT * FROM '$QTSTDATAPATH/parquet/parquet_testing/unsigned.parquet'
 
+query III nosort
+SELECT a,b,c FROM '$QTSTDATAPATH/parquet/parquet_testing/unsigned.parquet'
+----
+1      1       1
+2      2       2
+3      3       3
+4      4       4
+5      5       5
+255    65535   4294967295
+
+onlyif has-hugeint
 query IIII nosort
 SELECT * FROM '$QTSTDATAPATH/parquet/parquet_testing/unsigned_stats.parquet'
 ----
-0
-0
-0
-0
-255
-65535
-4294967295
-18446744073709551615
+0      0       0       0
+255    65535   4294967295      18446744073709551615
+
+skipif has-hugeint
+statement error
+SELECT * FROM '$QTSTDATAPATH/parquet/parquet_testing/unsigned_stats.parquet'
+
+query III nosort
+SELECT utiny, usmall, uint FROM 
'$QTSTDATAPATH/parquet/parquet_testing/unsigned_stats.parquet'
+----
+0      0       0
+255    65535   4294967295
+
diff --git a/sql/backends/monet5/vaults/parquet/pqc_reader.c 
b/sql/backends/monet5/vaults/parquet/pqc_reader.c
--- a/sql/backends/monet5/vaults/parquet/pqc_reader.c
+++ b/sql/backends/monet5/vaults/parquet/pqc_reader.c
@@ -2113,8 +2113,10 @@ pqc_read_page_chunk( pqc_reader_t *r, pq
        if (r->pse->precision == 64 && !r->pse->isSigned) {
                int64_t *l = output;
                for(uint64_t i=0; i< nrows; i++)
-                       if (l[i] < 0)
+                       if (l[i] < 0) {
+                               pqc_set_error(r, "unsigned value overflow");
                                return -1;
+                       }
        } else
 #endif
        if (r->pse->precision == 32 && !r->pse->isSigned) {
@@ -2158,7 +2160,7 @@ pqc_read_page_chunk( pqc_reader_t *r, pq
        ATOMIC_ADD(&r->rownr, orows);
        cr->curnr += orows;
        if (cr->cc->cur_page.num_read + orows > UINT32_MAX) {
-               pqc_set_error(r, "To many rows in one page (> UINT32_MAX)");
+               pqc_set_error(r, "Too many rows in one page (> UINT32_MAX)");
                return -1;
        }
        cr->cc->cur_page.num_read += (uint32_t)orows; /* per page only uint32_t 
*/
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to