Skip to content

Add Databend connector #72474

Add Databend connector

Add Databend connector #72474

Triggered via pull request November 27, 2024 11:45
Status Failure
Total duration 46m 16s
Artifacts 75

ci.yml

on: pull_request
check-commits-dispatcher
32s
check-commits-dispatcher
build-test-matrix
1m 6s
build-test-matrix
Matrix: hive-tests
Matrix: maven-checks
Matrix: check-commit
Matrix: pt
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

95 errors
check-commit (f06ea539a0bf5bb2d2b973f3bc11373b9fe24782)
Process completed with exit code 1.
check-commit (0acd806796f617663fe0129a625ab510d308da23)
Process completed with exit code 1.
check-commit (9e93590907b3b7fb989a7863ded984b393910d89)
Process completed with exit code 1.
check-commit (28f7d1abe90c55d6ce9e40442d63e4732f964617)
Process completed with exit code 1.
check-commit (a6b121bfa85d0823bc3dc75b93a541323d036210)
Process completed with exit code 1.
check-commit (6beb24b95511799a923ed37f631fa428bbfce770)
Process completed with exit code 1.
check-commit (8538ee1802572edf392e988d5900890998f1bee0)
Process completed with exit code 1.
check-commit (0ae7523c5dcf31d3480d4455b9d04ec26b90d800)
Process completed with exit code 1.
TestDatabendConfig.testDefaults: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendConfig.java#L31
Untested attributes: [CacheMaximumSize, CacheMissing, ConnectionUrl, JdbcTypesMappedToVarchar, MetadataCacheTtl, SchemaNamesCacheTtl, StatisticsCacheTtl, TableNamesCacheTtl]
TestDatabendConfig.testExplicitPropertyMappings: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendConfig.java#L41
Untested properties [connection-url, jdbc-types-mapped-to-varchar, metadata.cache-maximum-size, metadata.cache-missing, metadata.cache-ttl, metadata.schemas.cache-ttl, metadata.statistics.cache-ttl, metadata.tables.cache-ttl]
TestDatabendConnectorSmokeTest.: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendConnectorSmokeTest.java#L33
Configuration errors: 1) Error: Invalid value 'PT1M' for type Duration (property 'databend.connection-timeout') in order to call [public DatabendConfig DatabendConfig.setConnectionTimeout(Duration)] 1 error ====================== Full classname legend: ====================== DatabendConfig: "io.trino.plugin.databend.DatabendConfig" Duration: "java.time.Duration" ======================== End of classname legend: ========================
TestDatabendConnectorTest.: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendConnectorTest.java#L31
Configuration errors: 1) Error: Invalid value 'PT1M' for type Duration (property 'databend.connection-timeout') in order to call [public DatabendConfig DatabendConfig.setConnectionTimeout(Duration)] 1 error ====================== Full classname legend: ====================== DatabendConfig: "io.trino.plugin.databend.DatabendConfig" Duration: "java.time.Duration" ======================== End of classname legend: ========================
TestDatabendTypeMapping.testTinyint: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L118
Invalid column label: TABLE_CAT. Valid column labels are: [type_name, scope_schema, is_nullable, nullable, num_prec_radix, decimal_digits, table_name, table_schem, column_def, sql_datetime_sub, table_type, char_octet_length, is_autoincrement, scope_catalog, sql_data_type, column_name, source_data_type, ordinal_position, is_generatedcolumn, column_size, scope_table, data_type, buffer_length, remarks]
TestDatabendTypeMapping.testUnsignedTypes: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L648
Invalid column label: TABLE_CAT. Valid column labels are: [type_name, scope_schema, is_nullable, nullable, num_prec_radix, decimal_digits, table_name, table_schem, column_def, sql_datetime_sub, table_type, char_octet_length, is_autoincrement, scope_catalog, sql_data_type, column_name, source_data_type, ordinal_position, is_generatedcolumn, column_size, scope_table, data_type, buffer_length, remarks]
TestDatabendTypeMapping.testDate: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L269
Invalid column label: TABLE_CAT. Valid column labels are: [type_name, scope_schema, is_nullable, nullable, num_prec_radix, decimal_digits, table_name, table_schem, column_def, sql_datetime_sub, table_type, char_octet_length, is_autoincrement, scope_catalog, sql_data_type, column_name, source_data_type, ordinal_position, is_generatedcolumn, column_size, scope_table, data_type, buffer_length, remarks]
TestDatabendTypeMapping.testJson: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L593
Error executing sql: CREATE TABLE trino_test_jsonhhyqmg737j AS SELECT CAST(JSON '{}' AS json) col_0, CAST(NULL AS json) col_1, CAST(JSON 'null' AS json) col_2, CAST(JSON '123.4' AS json) col_3, CAST(JSON '"abc"' AS json) col_4, CAST(JSON '"text with '' apostrophes"' AS json) col_5, CAST(JSON '""' AS json) col_6, CAST(JSON '{"a":1,"b":2}' AS json) col_7, CAST(JSON '{"a":[1,2,3],"b":{"aa":11,"bb":[{"a":1,"b":2},{"a":0}]}}' AS json) col_8, CAST(JSON '[]' AS json) col_9
TestDatabendTypeMapping.testTimestampFromTrino: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L474
Error executing sql: CREATE TABLE test_timestampq4n2j3jkie AS SELECT CAST(TIMESTAMP '1958-01-01 13:18:03.123' AS timestamp(3)) col_0, CAST(TIMESTAMP '2019-03-18 10:01:17.987' AS timestamp(3)) col_1, CAST(TIMESTAMP '2018-10-28 01:33:17.456' AS timestamp(3)) col_2, CAST(TIMESTAMP '2018-10-28 03:33:33.333' AS timestamp(3)) col_3, CAST(TIMESTAMP '1970-01-01 00:00:00.000' AS timestamp(3)) col_4, CAST(TIMESTAMP '1970-01-01 00:13:42' AS timestamp(0)) col_5, CAST(TIMESTAMP '1970-01-01 00:13:42.000' AS timestamp(3)) col_6, CAST(TIMESTAMP '1970-01-01 00:13:42.123456' AS timestamp(6)) col_7, CAST(TIMESTAMP '2018-04-01 02:13:55' AS timestamp(0)) col_8, CAST(TIMESTAMP '2018-04-01 02:13:55.123' AS timestamp(3)) col_9, CAST(TIMESTAMP '2018-04-01 02:13:55.123456' AS timestamp(6)) col_10, CAST(TIMESTAMP '2018-03-25 03:17:17.123' AS timestamp(3)) col_11, CAST(TIMESTAMP '1986-01-01 00:13:07.123' AS timestamp(3)) col_12, CAST(NULL AS timestamp) col_13, CAST(NULL AS timestamp(0)) col_14, CAST(NULL AS timestamp(1)) col_15, CAST(NULL AS timestamp(2)) col_16, CAST(NULL AS timestamp(3)) col_17, CAST(NULL AS timestamp(4)) col_18, CAST(NULL AS timestamp(5)) col_19, CAST(NULL AS timestamp(6)) col_20
TestDatabendTypeMapping.testTimestampFromDatabend: plugin/trino-databend/src/test/java/io/trino/plugin/databend/TestDatabendTypeMapping.java#L416
Invalid column label: TABLE_CAT. Valid column labels are: [type_name, scope_schema, is_nullable, nullable, num_prec_radix, decimal_digits, table_name, table_schem, column_def, sql_datetime_sub, table_type, char_octet_length, is_autoincrement, scope_catalog, sql_data_type, column_name, source_data_type, ordinal_position, is_generatedcolumn, column_size, scope_table, data_type, buffer_length, remarks]
test (plugin/trino-databend)
Process completed with exit code 1.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - org.assertj.core.api.Assertions.assertThat.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - org.assertj.core.api.Assertions.assertThat.
check-commit (5647860ac7647e5f7b8920308db070e6af8268c9)
UnusedImports: Unused import - io.airlift.log.Level.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
UnusedImports: Unused import - java.util.Optional.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (904517b1314aa6b598d35b6dd3d52bbb63c41c5d)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
EmptyLineSeparator: 'METHOD_DEF' should be separated from previous line.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
EmptyLineSeparator: 'METHOD_DEF' should be separated from previous line.
check-commit (4db29df40ce8960ad1caef5a3debaecad6b0c6a3)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (26b25cbf7712e2618cd28146a68eddef510d6c61)
Process completed with exit code 1.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
UnusedImports: Unused import - java.util.Optional.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (9c2a6b2563b038d3f7fb38de7a8506de7c2ac0bd)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
Indentation: 'try resource' has incorrect indentation level 13, expected level should be 16.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
UnusedImports: Unused import - io.airlift.log.Level.
check-commit (b140a8b33a0d717fafedf32ccf8dcb18575ba2b4)
Process completed with exit code 1.
check-commit (99d7206c730dec4e1b8e50f76ca2f00ee4014dd5)
Process completed with exit code 1.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - com.google.common.base.Splitter.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - io.trino.spi.predicate.Domain.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - java.util.Map.Entry.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - com.google.common.collect.ImmutableMap.toImmutableMap.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - io.trino.plugin.jdbc.JdbcMetadataSessionProperties.getDomainCompactionThreshold.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - io.trino.plugin.jdbc.PredicatePushdownController.FULL_PUSHDOWN.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
UnusedImports: Unused import - java.util.Optional.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (546d8ec69fa0741d84066c4b2154167c8e8c615a)
Indentation: 'try resource' has incorrect indentation level 17, expected level should be 20.
check-commit (e24c717716884acd193d79589fa445a6d292a2cf)
Indentation: 'try resource' has incorrect indentation level 13, expected level should be 16.
check-commit (e24c717716884acd193d79589fa445a6d292a2cf)
UnusedImports: Unused import - io.airlift.log.Level.
check-commit (e24c717716884acd193d79589fa445a6d292a2cf)
Process completed with exit code 1.
check-commit (04e80a45d68925c75ff3e502d997c597e97a1235)
Indentation: 'try resource' has incorrect indentation level 13, expected level should be 16.
check-commit (04e80a45d68925c75ff3e502d997c597e97a1235)
UnusedImports: Unused import - io.airlift.log.Level.
check-commit (04e80a45d68925c75ff3e502d997c597e97a1235)
Process completed with exit code 1.
check-commit (f4fc3d0ad5dc13c900c1920cc6c0bd90de5f3aec)
Process completed with exit code 1.
check-commit (38dc420f93edd68b5a1527125e9bd86b2e3d7a75)
Process completed with exit code 1.
maven-checks 23
ImportOrder: Wrong order for 'io.trino.tests.product.TestGroups.CONFIGURED_FEATURES' import.
maven-checks 23
WhitespaceAfter: ',' is not followed by whitespace.
maven-checks 23
Process completed with exit code 1.
maven-checks 24-ea
ImportOrder: Wrong order for 'io.trino.tests.product.TestGroups.CONFIGURED_FEATURES' import.
maven-checks 24-ea
WhitespaceAfter: ',' is not followed by whitespace.
maven-checks 24-ea
Process completed with exit code 1.

Artifacts

Produced during runtime
Name Size
product tests and server tarball
1.39 GB
results plugin_trino-databend, ,
62.9 KB
test report client_trino-jdbc,plugin_trino-base-jdbc,plugin_trino-memory,plugin_trino-thrift, ,
706 KB
test report core_trino-main, ,
13.4 MB
test report lib_trino-filesystem,lib_trino-filesystem-azure,lib_trino-filesystem-manager,lib_trino-filesystem-s3
310 KB
test report lib_trino-hdfs, cloud-tests,
5.99 KB
test report lib_trino-orc,lib_trino-parquet, ,
999 KB
test report plugin_trino-bigquery, ,
92.9 KB
test report plugin_trino-cassandra, ,
150 KB
test report plugin_trino-clickhouse, ,
69.2 KB
test report plugin_trino-databend, ,
47.5 KB
test report plugin_trino-delta-lake, ,
1.09 MB
test report plugin_trino-delta-lake, fte-tests,
59.9 KB
test report plugin_trino-druid, ,
44.9 KB
test report plugin_trino-elasticsearch, ,
68.8 KB
test report plugin_trino-exasol, ,
36.6 KB
test report plugin_trino-google-sheets, ,
31.3 KB
test report plugin_trino-hive, ,
2.46 MB
test report plugin_trino-hive, fte-tests,
84.6 KB
test report plugin_trino-hive, test-parquet,
15.2 KB
test report plugin_trino-hudi, ,
187 KB
test report plugin_trino-iceberg, ,
1.36 MB
test report plugin_trino-iceberg, fte-tests,
68.5 KB
test report plugin_trino-iceberg, minio-and-avro,
124 KB
test report plugin_trino-ignite, ,
47.3 KB
test report plugin_trino-kafka, ,
241 KB
test report plugin_trino-kudu, ,
136 KB
test report plugin_trino-mariadb, ,
172 KB
test report plugin_trino-mongodb, ,
257 KB
test report plugin_trino-mysql, ,
262 KB
test report plugin_trino-openlineage, ,
49.5 KB
test report plugin_trino-opensearch, ,
103 KB
test report plugin_trino-oracle, ,
252 KB
test report plugin_trino-phoenix5, ,
46.1 KB
test report plugin_trino-pinot, ,
307 KB
test report plugin_trino-postgresql, ,
272 KB
test report plugin_trino-redis, ,
59.1 KB
test report plugin_trino-redshift, ,
25.2 KB
test report plugin_trino-resource-group-managers, ,
71.5 KB
test report plugin_trino-snowflake, ,
18.6 KB
test report plugin_trino-sqlserver, ,
261 KB
test report pt (apache-hive3, suite-hms-only, )
3.63 KB
test report pt (default, suite-1, )
15.6 KB
test report pt (default, suite-2, )
28.6 KB
test report pt (default, suite-3, )
18.8 KB
test report pt (default, suite-5, )
28.3 KB
test report pt (default, suite-6-non-generic, )
22.1 KB
test report pt (default, suite-7-non-generic, )
19.4 KB
test report pt (default, suite-all-connectors-smoke, )
888 Bytes
test report pt (default, suite-apache-ranger, )
1006 Bytes
test report pt (default, suite-cassandra, )
981 Bytes
test report pt (default, suite-clickhouse, )
990 Bytes
test report pt (default, suite-clients, )
3.74 KB
test report pt (default, suite-compatibility, )
7.44 KB
test report pt (default, suite-delta-lake-oss, )
20.5 KB
test report pt (default, suite-functions, )
1.9 KB
test report pt (default, suite-hive-transactional, )
10.1 KB
test report pt (default, suite-hudi, )
3.26 KB
test report pt (default, suite-iceberg, )
27.8 KB
test report pt (default, suite-ignite, )
965 Bytes
test report pt (default, suite-kafka, )
8.55 KB
test report pt (default, suite-ldap, )
10.8 KB
test report pt (default, suite-mysql, )
2.46 KB
test report pt (default, suite-oauth2, )
7.59 KB
test report pt (default, suite-parquet, )
3 KB
test report pt (default, suite-storage-formats-detailed, )
3.62 KB
test report pt (default, suite-tpcds, )
4.91 KB
test report pt (default, suite-tpch, )
1.8 KB
test report test-jdbc-compatibility
26.5 KB
test report test-other-modules
2.33 MB
test report testing_trino-faulttolerant-tests, default,
58.7 KB
test report testing_trino-faulttolerant-tests, test-fault-tolerant-delta,
20.4 KB
test report testing_trino-faulttolerant-tests, test-fault-tolerant-hive,
206 KB
test report testing_trino-faulttolerant-tests, test-fault-tolerant-iceberg,
48.8 KB
test report testing_trino-tests, ,
1.82 MB