 							genScanFilter_or_int_leq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
 					}
 
+				} else if (sn->whereAttrType[index] == FLOAT){
+					if(where->andOr == AND){
+						int rel = where->exp[i].relation;
+						float whereValue = *((int*) where->exp[i].content);
+						if(rel==EQ)
+							genScanFilter_and_float_eq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == GTH)
+							genScanFilter_and_float_gth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == LTH)
+							genScanFilter_and_float_lth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == GEQ)
+							genScanFilter_and_float_geq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if (rel == LEQ)
+							genScanFilter_and_float_leq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+					}else{
+						int rel = where->exp[i].relation;
+						float whereValue = *((int*) where->exp[i].content);
+						if(rel==EQ)
+							genScanFilter_or_float_eq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == GTH)
+							genScanFilter_or_float_gth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == LTH)
+							genScanFilter_or_float_lth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if(rel == GEQ)
+							genScanFilter_or_float_geq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+						else if (rel == LEQ)
+							genScanFilter_or_float_leq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
+					}
 				}else{
 					if(where->andOr == AND)
 						genScanFilter_and<<<grid,block>>>(column[index],sn->whereAttrSize[index],sn->whereAttrType[index], totalTupleNum, gpuExp, gpuFilter);

		filter[i] |= con;
	}
}
__global__ static void genScanFilter_or_int_leq(char *col, long tupleNum, int where, int * filter){
        int stride = blockDim.x * gridDim.x;
        int tid = blockIdx.x * blockDim.x + threadIdx.x;

					genScanFilter_or_int_geq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
				else if (rel == LEQ)
					genScanFilter_or_int_leq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);

			}else if (sn->whereAttrType[index] == FLOAT){
				int rel = where->exp[0].relation;
				float whereValue = *((int*) where->exp[0].content);
				if(rel==EQ)
					genScanFilter_or_float_eq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
				else if(rel == GTH)
					genScanFilter_or_float_gth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
				else if(rel == LTH)
					genScanFilter_or_float_lth<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
				else if(rel == GEQ)
					genScanFilter_or_float_geq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);
				else if (rel == LEQ)
					genScanFilter_or_float_leq<<<grid,block>>>(column[index],totalTupleNum, whereValue, gpuFilter);

			}else
				genScanFilter_or<<<grid,block>>>(column[index],sn->whereAttrSize[index],sn->whereAttrType[index], totalTupleNum, gpuExp, gpuFilter);

