Changeset: b46bc16caffd for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b46bc16caffd
Modified Files:
        sql/backends/monet5/vaults/parquet/pqc_reader.c
Branch: default
Log Message:

using unsigneds directly (no cast to signed)
and only use int128 if its really there


diffs (55 lines):

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
@@ -2100,42 +2100,44 @@ pqc_read_page_chunk( pqc_reader_t *r, pq
                }
        }
        /* convert data */
+#ifdef HAVE_HGE
        if (r->pse->precision == 64 && !r->pse->isSigned) {
                uint64_t *l = output;
                l += nrows-1;
                int128_t *r = output;
                r += nrows-1;
                for(uint64_t i=0; i< nrows; i++)
-                       r[-i] = l[-i];
-       } else if (r->pse->precision == 32 && !r->pse->isSigned) {
+                       *(r-i) = *(l-i);
+       } else
+#endif
+       if (r->pse->precision == 32 && !r->pse->isSigned) {
                uint32_t *l = output;
                l += nrows-1;
                int64_t *r = output;
                r += nrows-1;
                for(uint64_t i=0; i< nrows; i++)
-                       r[-i] = l[-i];
+                       *(r-i) = *(l-i);
        } else if (r->pse->precision == 16 && !r->pse->isSigned) {
                uint16_t *l = output;
                l += nrows-1;
                int32_t *r = output;
                r += nrows-1;
                for(uint64_t i=0; i< nrows; i++)
-                       r[-i] = l[-i];
+                       *(r-i) = *(l-i);
        } else if (r->pse->precision == 8 && !r->pse->isSigned) {
                uint8_t *l = output;
                l += nrows-1;
                int16_t *r = output;
                r += nrows-1;
                for(uint64_t i=0; i< nrows; i++)
-                       r[-i] = l[-i];
+                       *(r-i) = *(l-i);
        } else if (r->pse->type == datetype) {
                /* days since epoch ie 1-1-1970 */
                uint32_t epoch_date = mkdate(1970, 1, 1);
                if (r->pse->precision == 32) {
                        uint32_t *l = output;
-                       for(uint64_t i=0; i< nrows; i++) {
+                       for(uint64_t i=0; i< nrows; i++)
                                l[i] = date_add_day(epoch_date, l[i]);
-                       }
                }
        } else { // todo timetype
                if ((r->pse->type == timestamptype && r->pse->precision == 6) ||
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to