Disable printing out-of-order messages, increase max_flushes to 25 in running groupby
[com/gs-lite.git] / include / hfta / groupby_slowflush_operator.h
index d2120ba..f9de2a0 100644 (file)
@@ -55,7 +55,7 @@ public:
                group grp;
                if (!func.create_group(tup, (gs_sp_t)&grp)) {
                        if(func.disordered()){
-                               fprintf(stderr,"Out of order record in %s\n",op_name);
+                               // fprintf(stderr,"Out of order record in %s\n",op_name);
                                return 0;
                        }
                        if (func.flush_needed()){
@@ -72,7 +72,7 @@ public:
                        return 0;
                }
                if(func.disordered()){
-                       fprintf(stderr,"Out of order record in %s\n",op_name);
+                       // fprintf(stderr,"Out of order record in %s\n",op_name);
                        return 0;
                }
 
@@ -85,21 +85,21 @@ public:
                                flush_old(result);
                        }
                        if(n_patterns <= 1){
-                               aggregate aggr;
+                               char aggr_buffer[sizeof(aggregate)];
                                // create an aggregate in preallocated buffer
-                               func.create_aggregate(tup, (char*)&aggr);
+                               func.create_aggregate(tup, aggr_buffer);
                                // neeed operator= doing a deep copy
-                               group_table[curr_table].insert(grp, aggr);
+                               group_table[curr_table].insert(grp, (*(aggregate*)aggr_buffer));
                        }else{
                                int p;
                                for(p=0;p<n_patterns;++p){
 // TODO this code is wrong need to check each pattern to see if its in the table
-                                       // need shalow copy constructor for groups
+                                       // need shallow copy constructor for groups
                                        group new_grp(grp, func.get_pattern(p));
-                                       aggregate aggr;
-                                       func.create_aggregate(tup, (char*)&aggr);
+                                       char aggr_buffer[sizeof(aggregate)];
+                                       func.create_aggregate(tup, aggr_buffer);
                                        // neeed operator= doing a deep copy
-                                       group_table[curr_table].insert(new_grp, aggr);
+                                       group_table[curr_table].insert(new_grp, (*(aggregate*)aggr_buffer));
                                }
                        }
                }