This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push: new 31a6c43 [Bug][Alter] Fix boolean support (#4123) 31a6c43 is described below commit 31a6c43a69bb312cf96e2c467468b08507c0db5c Author: Zhengguo Yang <780531...@qq.com> AuthorDate: Wed Jul 22 22:38:55 2020 +0800 [Bug][Alter] Fix boolean support (#4123) Fixes #4122 * add type check when add bloom filter index on boolean column. * support add boolean column. --- .../java/org/apache/doris/analysis/ColumnDef.java | 3 +++ .../apache/doris/common/util/PropertyAnalyzer.java | 2 +- .../org/apache/doris/analysis/ColumnDefTest.java | 22 ++++++++++++++++++++++ .../apache/doris/common/PropertyAnalyzerTest.java | 17 +++++++++++++---- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java index cc9c579..b86d4ac 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java @@ -239,6 +239,9 @@ public class ColumnDef { break; case BITMAP: break; + case BOOLEAN: + BoolLiteral boolLiteral = new BoolLiteral(defaultValue); + break; default: throw new AnalysisException("Unsupported type: " + type); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java index 49f28dc..88448ca 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java @@ -314,7 +314,7 @@ public class PropertyAnalyzer { // tinyint/float/double columns don't support // key columns and none/replace aggregate non-key columns support if (type == PrimitiveType.TINYINT || type == PrimitiveType.FLOAT - || type == PrimitiveType.DOUBLE) { + || type == PrimitiveType.DOUBLE || type == PrimitiveType.BOOLEAN) { throw new AnalysisException(type + " is not supported in bloom filter index. " + "invalid column: " + bfColumn); } else if (column.isKey() diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ColumnDefTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ColumnDefTest.java index 0bf7046..6aa19f9 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ColumnDefTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ColumnDefTest.java @@ -31,12 +31,15 @@ public class ColumnDefTest { private TypeDef intCol; private TypeDef stringCol; private TypeDef floatCol; + private TypeDef booleanCol; @Before public void setUp() { intCol = new TypeDef(ScalarType.createType(PrimitiveType.INT)); stringCol = new TypeDef(ScalarType.createChar(10)); floatCol = new TypeDef(ScalarType.createType(PrimitiveType.FLOAT)); + booleanCol = new TypeDef(ScalarType.createType(PrimitiveType.BOOLEAN)); + } @Test @@ -96,4 +99,23 @@ public class ColumnDefTest { column.analyze(true); } + @Test + public void testBooleanDefaultValue() throws AnalysisException{ + ColumnDef column1 = new ColumnDef("col", booleanCol, true, null, true, new DefaultValue(true, "1"), ""); + column1.analyze(true); + Assert.assertEquals("1", column1.getDefaultValue()); + + ColumnDef column2 = new ColumnDef("col", booleanCol, true, null, true, new DefaultValue(true, "true"), ""); + column2.analyze(true); + Assert.assertEquals("true", column2.getDefaultValue()); + + ColumnDef column3 = new ColumnDef("col", booleanCol, true, null, true, new DefaultValue(true, "10"), ""); + try { + column3.analyze(true); + } catch (AnalysisException e) { + Assert.assertEquals("errCode = 2, detailMessage = Invalid BOOLEAN literal: 10", e.getMessage()); + } + } + + } diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/PropertyAnalyzerTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/PropertyAnalyzerTest.java index 2f88ecd..ddbf6c1 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/common/PropertyAnalyzerTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/common/PropertyAnalyzerTest.java @@ -47,7 +47,7 @@ public class PropertyAnalyzerTest { List<Column> columns = Lists.newArrayList(); columns.add(new Column("k1", PrimitiveType.INT)); columns.add(new Column("k2", PrimitiveType.TINYINT)); - columns.add(new Column("v1", + columns.add(new Column("v1", ScalarType.createType(PrimitiveType.VARCHAR), false, AggregateType.REPLACE, "", "")); columns.add(new Column("v2", ScalarType.createType(PrimitiveType.BIGINT), false, AggregateType.SUM, "0", "")); @@ -66,7 +66,8 @@ public class PropertyAnalyzerTest { List<Column> columns = Lists.newArrayList(); columns.add(new Column("k1", PrimitiveType.INT)); columns.add(new Column("k2", PrimitiveType.TINYINT)); - columns.add(new Column("v1", + columns.add(new Column("k3", PrimitiveType.BOOLEAN)); + columns.add(new Column("v1", ScalarType.createType(PrimitiveType.VARCHAR), false, AggregateType.REPLACE, "", "")); columns.add(new Column("v2", ScalarType.createType(PrimitiveType.BIGINT), false, AggregateType.SUM, "0", "")); columns.get(0).setIsKey(true); @@ -82,8 +83,8 @@ public class PropertyAnalyzerTest { Assert.fail(); } - // k3 not exist - properties.put(PropertyAnalyzer.PROPERTIES_BF_COLUMNS, "k3"); + // k4 not exist + properties.put(PropertyAnalyzer.PROPERTIES_BF_COLUMNS, "k4"); try { PropertyAnalyzer.analyzeBloomFilterColumns(properties, columns); } catch (AnalysisException e) { @@ -98,6 +99,14 @@ public class PropertyAnalyzerTest { Assert.assertTrue(e.getMessage().contains("TINYINT is not supported")); } + // bool not supported + properties.put(PropertyAnalyzer.PROPERTIES_BF_COLUMNS, "k3"); + try { + PropertyAnalyzer.analyzeBloomFilterColumns(properties, columns); + } catch (AnalysisException e) { + Assert.assertTrue(e.getMessage().contains("BOOLEAN is not supported")); + } + // not replace value properties.put(PropertyAnalyzer.PROPERTIES_BF_COLUMNS, "v2"); try { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org