public void serach_column(string column_name, bool raw_int) { var scid = new SingleColumnInfoDesc(); scid.is_rawint = raw_int; scid.column_name = column_name; var bdr = new cog_wraper.blobdata_reader(scid); new cmd_wraper.table_cmd(curr_conn, tbl_name, db_name).load_records(bdr); int match_threshhold = 10; var all_datas = bdr.Values; var matched_data = new List <SingleColumnInfo>(); foreach (var v in all_datas) { if (raw_int) { if (v.int_value > UInt32.MaxValue) { matched_data.Add(v); } } else { var matches = System.Text.RegularExpressions.Regex.Matches(v.str_value, @"4\d{9}"); // 4 is enough here ,be care in your case if (matches.Count > 0) { matched_data.Add(v); } } if (matched_data.Count >= match_threshhold) { profile.add(new uid_like_info() { column_name = column_name, raw_data = v.ToString(), table_name = tbl_name, database_name = db_name, sample_datas = matched_data }); break; } } }
public blobdata_reader(SingleColumnInfoDesc desc) { dst = new List <SingleColumnInfo>(); this.desc = desc; }