public Builder clear() { super.clear(); if (catalogNameFilterBuilder_ == null) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { catalogNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); if (schemaNameFilterBuilder_ == null) { schemaNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { schemaNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000002); if (tableNameFilterBuilder_ == null) { tableNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { tableNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); if (columnNameFilterBuilder_ == null) { columnNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { columnNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); return this; }
final String pattern = filter.getPattern(); if (pattern.isEmpty()) { final String escape = filter.getEscape();
public static Predicate<String> getLikePredicate(LikeFilter filter){ if(filter == null || !filter.hasPattern()) { return ALWAYS_TRUE; } if (SQL_LIKE_ANY_STRING_PATTERN.equals(filter.getPattern())) { return ALWAYS_TRUE; } final String patternString = RegexpUtil.sqlToRegexLike(filter.getPattern(), filter.hasEscape() ? filter.getEscape().charAt(0) : (char) 0); final Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE); return input -> pattern.matcher(input).matches(); }
public void mergeFrom(io.protostuff.Input input, com.dremio.exec.proto.UserProtos.GetTablesReq.Builder builder) throws java.io.IOException { for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) { switch(number) { case 0: return; case 1: builder.setCatalogNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 2: builder.setSchemaNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 3: builder.setTableNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 4: builder.addTableTypeFilter(input.readString()); break; default: input.handleUnknownField(number, this); } } } public boolean isInitialized(com.dremio.exec.proto.UserProtos.GetTablesReq.Builder builder)
public void mergeFrom(io.protostuff.Input input, com.dremio.exec.proto.UserProtos.GetColumnsReq.Builder builder) throws java.io.IOException { for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) { switch(number) { case 0: return; case 1: builder.setCatalogNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 2: builder.setSchemaNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 3: builder.setTableNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 4: builder.setColumnNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; default: input.handleUnknownField(number, this); } } } public boolean isInitialized(com.dremio.exec.proto.UserProtos.GetColumnsReq.Builder builder)
@Test public void columnsWithColumnNameFilter() throws Exception { // test("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%\\_p%' ESCAPE '\\'"); // SQL equivalent GetColumnsResp resp = client.getColumns(null, null, null, LikeFilter.newBuilder().setPattern("%\\_p%").setEscape("\\").build()).get(); assertEquals(RequestStatus.OK, resp.getStatus()); List<ColumnMetadata> columns = resp.getColumnsList(); assertEquals(14, columns.size()); Iterator<ColumnMetadata> iterator = columns.iterator(); verifyColumn("INFORMATION_SCHEMA", "COLUMNS", "ORDINAL_POSITION", iterator.next()); verifyColumn("INFORMATION_SCHEMA", "COLUMNS", "NUMERIC_PRECISION", iterator.next()); verifyColumn("INFORMATION_SCHEMA", "COLUMNS", "NUMERIC_PRECISION_RADIX", iterator.next()); verifyColumn("INFORMATION_SCHEMA", "COLUMNS", "DATETIME_PRECISION", iterator.next()); verifyColumn("INFORMATION_SCHEMA", "COLUMNS", "INTERVAL_PRECISION", iterator.next()); verifyColumn("cp", "tpch/customer.parquet", "c_phone", iterator.next()); verifyColumn("sys", "dependencies", "dependency_path", iterator.next()); verifyColumn("sys", "materializations", "data_partitions", iterator.next()); verifyColumn("sys", "materializations", "last_refresh_from_pds", iterator.next()); verifyColumn("sys", "memory", "fabric_port", iterator.next()); verifyColumn("sys", "nodes", "user_port", iterator.next()); verifyColumn("sys", "nodes", "fabric_port", iterator.next()); verifyColumn("sys", "slicing_threads", "fabric_port", iterator.next()); verifyColumn("sys", "threads", "fabric_port", iterator.next()); }
public Builder clear() { super.clear(); if (catalogNameFilterBuilder_ == null) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { catalogNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); if (schemaNameFilterBuilder_ == null) { schemaNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { schemaNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000002); if (tableNameFilterBuilder_ == null) { tableNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance(); } else { tableNameFilterBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); tableTypeFilter_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000008); return this; }
/** * <code>optional .exec.user.LikeFilter table_name_filter = 3;</code> */ public Builder mergeTableNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (tableNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004) && tableNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { tableNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(tableNameFilter_).mergeFrom(value).buildPartial(); } else { tableNameFilter_ = value; } onChanged(); } else { tableNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000004; return this; } /**
/** * <code>optional .exec.user.LikeFilter schema_name_filter = 2;</code> */ public Builder mergeSchemaNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (schemaNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && schemaNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { schemaNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(schemaNameFilter_).mergeFrom(value).buildPartial(); } else { schemaNameFilter_ = value; } onChanged(); } else { schemaNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .exec.user.LikeFilter catalog_name_filter = 1;</code> */ public Builder mergeCatalogNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (catalogNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && catalogNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(catalogNameFilter_).mergeFrom(value).buildPartial(); } else { catalogNameFilter_ = value; } onChanged(); } else { catalogNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
@Test public void tablesWithTableNameFilter() throws Exception { // test("SELECT * FROM INFORMATION_SCHEMA.\"TABLES\" WHERE TABLE_NAME LIKE '%o%'"); // SQL equivalent GetTablesResp resp = client.getTables(null, null, LikeFilter.newBuilder().setPattern("%o%").build(), null).get(); assertEquals(RequestStatus.OK, resp.getStatus()); List<TableMetadata> tables = resp.getTablesList(); assertEquals(10, tables.size()); Iterator<TableMetadata> iterator = tables.iterator(); verifyTable("INFORMATION_SCHEMA", "CATALOGS", iterator.next()); verifyTable("INFORMATION_SCHEMA", "COLUMNS", iterator.next()); verifyTable("sys", "boot", iterator.next()); verifyTable("sys", "materializations", iterator.next()); verifyTable("sys", "memory", iterator.next()); verifyTable("sys", "nodes", iterator.next()); verifyTable("sys", "options", iterator.next()); verifyTable("sys", "reflections", iterator.next()); verifyTable("sys", "version", iterator.next()); }
public void mergeFrom(io.protostuff.Input input, com.dremio.exec.proto.UserProtos.GetSchemasReq.Builder builder) throws java.io.IOException { for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) { switch(number) { case 0: return; case 1: builder.setCatalogNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; case 2: builder.setSchemaNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; default: input.handleUnknownField(number, this); } } } public boolean isInitialized(com.dremio.exec.proto.UserProtos.GetSchemasReq.Builder builder)
/** * <code>optional .exec.user.LikeFilter catalog_name_filter = 1;</code> */ public Builder mergeCatalogNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (catalogNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && catalogNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(catalogNameFilter_).mergeFrom(value).buildPartial(); } else { catalogNameFilter_ = value; } onChanged(); } else { catalogNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
/** * <code>optional .exec.user.LikeFilter catalog_name_filter = 1;</code> */ public Builder mergeCatalogNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (catalogNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && catalogNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(catalogNameFilter_).mergeFrom(value).buildPartial(); } else { catalogNameFilter_ = value; } onChanged(); } else { catalogNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
/** * <code>optional .exec.user.LikeFilter table_name_filter = 3;</code> */ public Builder mergeTableNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (tableNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004) && tableNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { tableNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(tableNameFilter_).mergeFrom(value).buildPartial(); } else { tableNameFilter_ = value; } onChanged(); } else { tableNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000004; return this; } /**
/** * <code>optional .exec.user.LikeFilter schema_name_filter = 2;</code> */ public Builder mergeSchemaNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (schemaNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && schemaNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { schemaNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(schemaNameFilter_).mergeFrom(value).buildPartial(); } else { schemaNameFilter_ = value; } onChanged(); } else { schemaNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .exec.user.LikeFilter column_name_filter = 4;</code> */ public Builder mergeColumnNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (columnNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000008) == 0x00000008) && columnNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { columnNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(columnNameFilter_).mergeFrom(value).buildPartial(); } else { columnNameFilter_ = value; } onChanged(); } else { columnNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000008; return this; } /**
/** * <code>optional .exec.user.LikeFilter schema_name_filter = 2;</code> */ public Builder mergeSchemaNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (schemaNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && schemaNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { schemaNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(schemaNameFilter_).mergeFrom(value).buildPartial(); } else { schemaNameFilter_ = value; } onChanged(); } else { schemaNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .exec.user.LikeFilter catalog_name_filter = 1;</code> */ public Builder mergeCatalogNameFilter(com.dremio.exec.proto.UserProtos.LikeFilter value) { if (catalogNameFilterBuilder_ == null) { if (((bitField0_ & 0x00000001) == 0x00000001) && catalogNameFilter_ != com.dremio.exec.proto.UserProtos.LikeFilter.getDefaultInstance()) { catalogNameFilter_ = com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(catalogNameFilter_).mergeFrom(value).buildPartial(); } else { catalogNameFilter_ = value; } onChanged(); } else { catalogNameFilterBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; return this; } /**
public void mergeFrom(io.protostuff.Input input, com.dremio.exec.proto.UserProtos.GetCatalogsReq.Builder builder) throws java.io.IOException { for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this)) { switch(number) { case 0: return; case 1: builder.setCatalogNameFilter(input.mergeObject(com.dremio.exec.proto.UserProtos.LikeFilter.newBuilder(), com.dremio.exec.proto.SchemaUserProtos.LikeFilter.MERGE)); break; default: input.handleUnknownField(number, this); } } } public boolean isInitialized(com.dremio.exec.proto.UserProtos.GetCatalogsReq.Builder builder)