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]