Changeset: f62db380f0a6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f62db380f0a6
Modified Files:
clients/mapilib/mapi.c
sql/backends/monet5/sql_result.c
Branch: protocol
Log Message:
Also use PFOR/Binpacking for Date columns.
diffs (42 lines):
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -5778,7 +5778,7 @@ mapi_fetch_row(MapiHdl hdl)
buf += col_len + sizeof(lng);
} else {
#ifdef HAVE_BINPACK
- if (hdl->mid->colcomp ==
COLUMN_COMPRESSION_BINPACK && strcasecmp(result->fields[i].columntype, "int")
== 0) {
+ if (hdl->mid->colcomp ==
COLUMN_COMPRESSION_BINPACK && (strcasecmp(result->fields[i].columntype, "int")
== 0 || strcasecmp(result->fields[i].columntype, "date") == 0)) {
lng b = *((lng*) buf);
buf += sizeof(lng);
lng length = *((lng*)(buf));
@@ -5794,7 +5794,7 @@ mapi_fetch_row(MapiHdl hdl)
} else {
#endif
#ifdef HAVE_PFOR
- if (hdl->mid->colcomp ==
COLUMN_COMPRESSION_PFOR && strcasecmp(result->fields[i].columntype, "int") ==
0) {
+ if (hdl->mid->colcomp ==
COLUMN_COMPRESSION_PFOR && (strcasecmp(result->fields[i].columntype, "int") ==
0 || strcasecmp(result->fields[i].columntype, "date") == 0)) {
size_t n = nrows;
// FIXME resbuffer is not freed
char *resbuffer = malloc(nrows
* sizeof(int));
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -2245,7 +2245,7 @@ static int mvc_export_resultset_prot10(r
}
#ifdef HAVE_BINPACK
- if (colcomp == COLUMN_COMPRESSION_BINPACK &&
strcasecmp(c->type.type->sqlname, "int") == 0) {
+ if (colcomp == COLUMN_COMPRESSION_BINPACK &&
(strcasecmp(c->type.type->sqlname, "int") == 0 ||
strcasecmp(c->type.type->sqlname, "date") == 0)) {
// simd binary packing for integer
columns
size_t N = row - srow;
char *datain = Tloc(iterators[i].b,
srow);
@@ -2274,7 +2274,7 @@ static int mvc_export_resultset_prot10(r
} else {
#endif
#ifdef HAVE_PFOR
- if (colcomp == COLUMN_COMPRESSION_PFOR &&
strcasecmp(c->type.type->sqlname, "int") == 0) {
+ if (colcomp == COLUMN_COMPRESSION_PFOR &&
(strcasecmp(c->type.type->sqlname, "int") == 0 ||
strcasecmp(c->type.type->sqlname, "date") == 0)) {
// turbo pfor for integer columns
size_t n = row - srow;
char *datain = Tloc(iterators[i].b,
srow);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list