From bff4a102cb7d34745dbba130a8e586c9034920c4 Mon Sep 17 00:00:00 2001 From: seawinde Date: Mon, 18 Dec 2023 23:43:37 +0800 Subject: [PATCH] remove unnecessary file and modify --- .../mv/MaterializedViewUtilsTest.java | 140 +++-------- .../aggregate_with_roll_up.out | 123 ---------- .../aggregate_without_roll_up.out | 127 ---------- .../data/fault_injection_p0/outer_join.out | 223 ------------------ 4 files changed, 36 insertions(+), 577 deletions(-) delete mode 100644 regression-test/data/fault_injection_p0/aggregate_with_roll_up.out delete mode 100644 regression-test/data/fault_injection_p0/aggregate_without_roll_up.out delete mode 100644 regression-test/data/fault_injection_p0/outer_join.out diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/mv/MaterializedViewUtilsTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/mv/MaterializedViewUtilsTest.java index 4d164ba4cf8e91..2e402cd5c7aa38 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/mv/MaterializedViewUtilsTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/exploration/mv/MaterializedViewUtilsTest.java @@ -41,90 +41,46 @@ protected void runBeforeAll() throws Exception { useDatabase("mv_util_test"); createTable("CREATE TABLE IF NOT EXISTS lineitem (\n" - + " l_orderkey integer not null,\n" - + " l_partkey integer not null,\n" - + " l_suppkey integer not null,\n" - + " l_linenumber integer not null,\n" - + " l_quantity decimalv3(15,2) not null,\n" - + " l_extendedprice decimalv3(15,2) not null,\n" - + " l_discount decimalv3(15,2) not null,\n" - + " l_tax decimalv3(15,2) not null,\n" - + " l_returnflag char(1) not null,\n" - + " l_linestatus char(1) not null,\n" - + " l_shipdate date not null,\n" - + " l_commitdate date not null,\n" - + " l_receiptdate date not null,\n" - + " l_shipinstruct char(25) not null,\n" - + " l_shipmode char(10) not null,\n" - + " l_comment varchar(44) not null\n" + + " L_ORDERKEY INTEGER NOT NULL,\n" + + " L_PARTKEY INTEGER NOT NULL,\n" + + " L_SUPPKEY INTEGER NOT NULL,\n" + + " L_LINENUMBER INTEGER NOT NULL,\n" + + " L_QUANTITY DECIMALV3(15,2) NOT NULL,\n" + + " L_EXTENDEDPRICE DECIMALV3(15,2) NOT NULL,\n" + + " L_DISCOUNT DECIMALV3(15,2) NOT NULL,\n" + + " L_TAX DECIMALV3(15,2) NOT NULL,\n" + + " L_RETURNFLAG CHAR(1) NOT NULL,\n" + + " L_LINESTATUS CHAR(1) NOT NULL,\n" + + " L_SHIPDATE DATE NOT NULL,\n" + + " L_COMMITDATE DATE NOT NULL,\n" + + " L_RECEIPTDATE DATE NOT NULL,\n" + + " L_SHIPINSTRUCT CHAR(25) NOT NULL,\n" + + " L_SHIPMODE CHAR(10) NOT NULL,\n" + + " L_COMMENT VARCHAR(44) NOT NULL\n" + ")\n" - + "DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber)\n" - + "PARTITION BY RANGE(l_shipdate) \n" - + "(FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY)\n" - + "DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3\n" + + "DUPLICATE KEY(L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER)\n" + + "PARTITION BY RANGE(L_SHIPDATE) (PARTITION `day_1` VALUES LESS THAN ('2017-02-01'))\n" + + "DISTRIBUTED BY HASH(L_ORDERKEY) BUCKETS 3\n" + "PROPERTIES (\n" + " \"replication_num\" = \"1\"\n" - + ");"); - // createTable("CREATE TABLE IF NOT EXISTS lineitem (\n" - // + " L_ORDERKEY INTEGER NOT NULL,\n" - // + " L_PARTKEY INTEGER NOT NULL,\n" - // + " L_SUPPKEY INTEGER NOT NULL,\n" - // + " L_LINENUMBER INTEGER NOT NULL,\n" - // + " L_QUANTITY DECIMALV3(15,2) NOT NULL,\n" - // + " L_EXTENDEDPRICE DECIMALV3(15,2) NOT NULL,\n" - // + " L_DISCOUNT DECIMALV3(15,2) NOT NULL,\n" - // + " L_TAX DECIMALV3(15,2) NOT NULL,\n" - // + " L_RETURNFLAG CHAR(1) NOT NULL,\n" - // + " L_LINESTATUS CHAR(1) NOT NULL,\n" - // + " L_SHIPDATE DATE NOT NULL,\n" - // + " L_COMMITDATE DATE NOT NULL,\n" - // + " L_RECEIPTDATE DATE NOT NULL,\n" - // + " L_SHIPINSTRUCT CHAR(25) NOT NULL,\n" - // + " L_SHIPMODE CHAR(10) NOT NULL,\n" - // + " L_COMMENT VARCHAR(44) NOT NULL\n" - // + ")\n" - // + "DUPLICATE KEY(L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER)\n" - // + "PARTITION BY RANGE(L_SHIPDATE) (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY)\n" - // + "DISTRIBUTED BY HASH(L_ORDERKEY) BUCKETS 3\n" - // + "PROPERTIES (\n" - // + " \"replication_num\" = \"1\"\n" - // + ")"); - // createTable("CREATE TABLE IF NOT EXISTS orders (\n" - // + " O_ORDERKEY INTEGER NOT NULL,\n" - // + " O_CUSTKEY INTEGER NOT NULL,\n" - // + " O_ORDERSTATUS CHAR(1) NOT NULL,\n" - // + " O_TOTALPRICE DECIMALV3(15,2) NOT NULL,\n" - // + " O_ORDERDATE DATE NOT NULL,\n" - // + " O_ORDERPRIORITY CHAR(15) NOT NULL, \n" - // + " O_CLERK CHAR(15) NOT NULL, \n" - // + " O_SHIPPRIORITY INTEGER NOT NULL,\n" - // + " O_COMMENT VARCHAR(79) NOT NULL\n" - // + ")\n" - // + "DUPLICATE KEY(O_ORDERKEY, O_CUSTKEY)\n" - // + "PARTITION BY RANGE(O_ORDERDATE) (FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY)\n" - // + "DISTRIBUTED BY HASH(O_ORDERKEY) BUCKETS 3\n" - // + "PROPERTIES (\n" - // + " \"replication_num\" = \"1\"\n" - // + ")"); + + ")"); createTable("CREATE TABLE IF NOT EXISTS orders (\n" - + " o_orderkey integer not null,\n" - + " o_custkey integer not null,\n" - + " o_orderstatus char(1) not null,\n" - + " o_totalprice decimalv3(15,2) not null,\n" - + " o_orderdate date not null,\n" - + " o_orderpriority char(15) not null, \n" - + " o_clerk char(15) not null, \n" - + " o_shippriority integer not null,\n" - + " o_comment varchar(79) not null\n" - + " )\n" - + " DUPLICATE KEY(o_orderkey, o_custkey)\n" - + " PARTITION BY RANGE(o_orderdate)(\n" - + " FROM ('2023-10-17') TO ('2023-10-20') INTERVAL 1 DAY\n" - + " )\n" - + " DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3\n" - + " PROPERTIES (\n" - + " \"replication_num\" = \"1\"\n" - + " );"); + + " O_ORDERKEY INTEGER NOT NULL,\n" + + " O_CUSTKEY INTEGER NOT NULL,\n" + + " O_ORDERSTATUS CHAR(1) NOT NULL,\n" + + " O_TOTALPRICE DECIMALV3(15,2) NOT NULL,\n" + + " O_ORDERDATE DATE NOT NULL,\n" + + " O_ORDERPRIORITY CHAR(15) NOT NULL, \n" + + " O_CLERK CHAR(15) NOT NULL, \n" + + " O_SHIPPRIORITY INTEGER NOT NULL,\n" + + " O_COMMENT VARCHAR(79) NOT NULL\n" + + ")\n" + + "DUPLICATE KEY(O_ORDERKEY, O_CUSTKEY)\n" + + "PARTITION BY RANGE(O_ORDERDATE) (PARTITION `day_2` VALUES LESS THAN ('2017-03-01'))\n" + + "DISTRIBUTED BY HASH(O_ORDERKEY) BUCKETS 3\n" + + "PROPERTIES (\n" + + " \"replication_num\" = \"1\"\n" + + ")"); createTable("CREATE TABLE IF NOT EXISTS partsupp (\n" + " PS_PARTKEY INTEGER NOT NULL,\n" + " PS_SUPPKEY INTEGER NOT NULL,\n" @@ -137,8 +93,6 @@ protected void runBeforeAll() throws Exception { + "PROPERTIES (\n" + " \"replication_num\" = \"1\"\n" + ")"); - - connectContext.getSessionVariable().enableNereidsTimeout = false; } @Test @@ -289,28 +243,6 @@ public void getRelatedTableInfoTestWithWindowButNotPartitionTest() { }); } - @Test - public void getRelatedTableInfoWithLeftJoinTest() { - PlanChecker.from(connectContext) - .checkExplain("select l_shipdate, o_orderdate, l_partkey, l_suppkey, sum(o_totalprice) as sum_total\n" - + " from lineitem\n" - + " left join orders on lineitem.l_orderkey = orders.o_orderkey and l_shipdate = o_orderdate\n" - + " group by\n" - + " l_shipdate,\n" - + " o_orderdate,\n" - + " l_partkey,\n" - + " l_suppkey;", - nereidsPlanner -> { - Plan rewrittenPlan = nereidsPlanner.getRewrittenPlan(); - Optional relatedTableInfo = - MaterializedViewUtils.getRelatedTableInfo("o_orderdate", rewrittenPlan); - checkRelatedTableInfo(relatedTableInfo, - "orders", - "o_orderdate", - true); - }); - } - @Test public void containTableQueryOperatorWithTabletTest() { PlanChecker.from(connectContext) diff --git a/regression-test/data/fault_injection_p0/aggregate_with_roll_up.out b/regression-test/data/fault_injection_p0/aggregate_with_roll_up.out deleted file mode 100644 index b240c02f7eaaf2..00000000000000 --- a/regression-test/data/fault_injection_p0/aggregate_with_roll_up.out +++ /dev/null @@ -1,123 +0,0 @@ --- This file is automatically generated. You should know what you did if you want to edit this --- !query13_0_before -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query13_0_after -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query14_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 \N \N \N 1 0 -2 4 2023-12-10 \N \N \N 1 0 -3 3 2023-12-11 \N \N \N 1 0 -4 3 2023-12-09 \N \N \N 1 0 - --- !query14_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 \N \N \N 1 0 -2 4 2023-12-10 \N \N \N 1 0 -3 3 2023-12-11 \N \N \N 1 0 -4 3 2023-12-09 \N \N \N 1 0 - --- !query15_0_before -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query15_0_after -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query16_0_before -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query16_0_after -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query17_0_before -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query17_0_after -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query18_0_before -- - --- !query18_0_after -- - --- !query19_0_before -- -2 3 2023-12-08 20.00 -2 3 2023-12-12 57.40 -2 4 2023-12-10 46.00 - --- !query19_0_after -- -2 3 2023-12-08 20.00 -2 3 2023-12-12 57.40 -2 4 2023-12-10 46.00 - --- !query20_0_before -- -2023-12-08 3 2023-12-08 20.00 10.50 9.50 2 0 -2023-12-09 3 2023-12-09 11.50 11.50 11.50 1 0 -2023-12-10 4 2023-12-10 46.00 33.50 12.50 2 0 -2023-12-11 3 2023-12-11 43.20 43.20 43.20 1 0 -2023-12-12 3 2023-12-12 57.40 56.20 1.20 2 0 - --- !query20_0_after -- -2023-12-08 3 2023-12-08 20.00 10.50 9.50 2 0 -2023-12-09 3 2023-12-09 11.50 11.50 11.50 1 0 -2023-12-10 4 2023-12-10 46.00 33.50 12.50 2 0 -2023-12-11 3 2023-12-11 43.20 43.20 43.20 1 0 -2023-12-12 3 2023-12-12 57.40 56.20 1.20 2 0 - --- !query21_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 - --- !query21_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 - --- !query22_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 -4 3 2023-12-09 11.50 11.50 11.50 1 0 - --- !query22_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 -4 3 2023-12-09 11.50 11.50 11.50 1 0 - --- !query23_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 - --- !query23_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 - --- !query24_0_before -- -3 2023-12-08 20.00 10.50 9.50 2 0 -3 2023-12-09 11.50 11.50 11.50 1 0 -3 2023-12-11 43.20 43.20 43.20 1 0 -3 2023-12-12 57.40 56.20 1.20 2 0 - --- !query24_0_after -- -3 2023-12-08 20.00 10.50 9.50 2 0 -3 2023-12-09 11.50 11.50 11.50 1 0 -3 2023-12-11 43.20 43.20 43.20 1 0 -3 2023-12-12 57.40 56.20 1.20 2 0 - --- !query25_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 -2 3 2023-12-12 57.40 56.20 1.20 2 -2 4 2023-12-10 46.00 33.50 12.50 2 -3 3 2023-12-11 43.20 43.20 43.20 1 -4 3 2023-12-09 11.50 11.50 11.50 1 - --- !query25_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 -2 3 2023-12-12 57.40 56.20 1.20 2 -2 4 2023-12-10 46.00 33.50 12.50 2 -3 3 2023-12-11 43.20 43.20 43.20 1 -4 3 2023-12-09 11.50 11.50 11.50 1 - diff --git a/regression-test/data/fault_injection_p0/aggregate_without_roll_up.out b/regression-test/data/fault_injection_p0/aggregate_without_roll_up.out deleted file mode 100644 index 346814bc083bf7..00000000000000 --- a/regression-test/data/fault_injection_p0/aggregate_without_roll_up.out +++ /dev/null @@ -1,127 +0,0 @@ --- This file is automatically generated. You should know what you did if you want to edit this --- !query1_0_before -- - --- !query1_0_after -- -1 yy 0 0 77.50 33.50 9.50 5 -2 mi 0 0 57.40 56.20 1.20 2 -2 mm 0 0 43.20 43.20 43.20 1 - --- !query1_2_before -- -1 yy 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 mi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 mm 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - --- !query1_2_after -- -1 yy 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 mi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 mm 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - --- !query2_0_before -- -1 yy 0 0 0 0 0 0 0 0 0 0 0 -2 mi 0 0 0 0 0 0 0 0 0 0 0 -2 mm 0 0 0 0 0 0 0 0 0 0 0 - --- !query2_0_after -- -1 yy 0 0 0 0 0 0 0 0 0 0 0 -2 mi 0 0 0 0 0 0 0 0 0 0 0 -2 mm 0 0 0 0 0 0 0 0 0 0 0 - --- !query3_0_before -- -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - --- !query3_0_after -- -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - --- !query13_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 - --- !query13_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 - --- !query14_0_before -- -2 3 \N \N \N \N 1 0 -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 4 \N \N \N \N 1 0 -3 3 \N \N \N \N 1 0 -4 3 \N \N \N \N 1 0 - --- !query14_0_after -- -2 3 \N \N \N \N 1 0 -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 4 \N \N \N \N 1 0 -3 3 \N \N \N \N 1 0 -4 3 \N \N \N \N 1 0 - --- !query15_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query15_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 -4 3 2023-12-09 11.50 11.50 11.50 1 0 - --- !query16_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 -4 3 2023-12-09 11.50 11.50 11.50 1 0 - --- !query16_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 0 -2 3 2023-12-12 57.40 56.20 1.20 2 0 -2 4 2023-12-10 46.00 33.50 12.50 2 0 -3 3 2023-12-11 43.20 43.20 43.20 1 0 -4 3 2023-12-09 11.50 11.50 11.50 1 0 - --- !query17_0_before -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query17_0_after -- -3 3 2023-12-11 43.20 43.20 43.20 1 0 - --- !query18_0_before -- - --- !query18_0_after -- - --- !query18_1_before -- - --- !query18_1_after -- - --- !query18_2_before -- - --- !query18_2_after -- - --- !query19_0_before -- -2 3 2023-12-08 20.00 10.50 9.50 2 -2 3 2023-12-12 57.40 56.20 1.20 2 -2 4 2023-12-10 46.00 33.50 12.50 2 -3 3 2023-12-11 43.20 43.20 43.20 1 -4 3 2023-12-09 11.50 11.50 11.50 1 - --- !query19_0_after -- -2 3 2023-12-08 20.00 10.50 9.50 2 -2 3 2023-12-12 57.40 56.20 1.20 2 -2 4 2023-12-10 46.00 33.50 12.50 2 -3 3 2023-12-11 43.20 43.20 43.20 1 -4 3 2023-12-09 11.50 11.50 11.50 1 - --- !query19_1_before -- -4 1 77.50 -4 2 43.20 -6 2 57.40 - --- !query19_1_after -- -4 1 77.50 -4 2 43.20 -6 2 57.40 - diff --git a/regression-test/data/fault_injection_p0/outer_join.out b/regression-test/data/fault_injection_p0/outer_join.out deleted file mode 100644 index 94143e800ada97..00000000000000 --- a/regression-test/data/fault_injection_p0/outer_join.out +++ /dev/null @@ -1,223 +0,0 @@ --- This file is automatically generated. You should know what you did if you want to edit this --- !query1_0_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query1_0_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query1_1_before -- -4 -4 -4 -4 -4 -4 -4 -4 -6 -6 -6 -6 - --- !query1_1_after -- -4 -4 -4 -4 -4 -4 -4 -4 -6 -6 -6 -6 - --- !query1_2_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query1_2_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query1_3_before -- -1 1 -1 1 -1 1 -1 1 -1 1 -2 2 -2 2 -2 2 - --- !query1_3_after -- -1 1 -1 1 -1 1 -1 1 -1 1 -2 2 -2 2 -2 2 - --- !query2_0_before -- - --- !query2_0_after -- - --- !query2_1_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query2_1_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_0_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_0_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_1_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_1_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_2_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query3_2_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query4_0_before -- -4 -4 - --- !query4_0_after -- -4 -4 - --- !query5_0_before -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query5_0_after -- -4 -4 -4 -4 -4 -4 -6 -6 - --- !query6_0_before -- -2 3 2023-12-08 -2 3 2023-12-08 -2 3 2023-12-12 -2 4 2023-12-10 -3 3 2023-12-11 -4 3 2023-12-09 - --- !query6_0_after -- -2 3 2023-12-08 -2 3 2023-12-08 -2 3 2023-12-12 -2 4 2023-12-10 -3 3 2023-12-11 -4 3 2023-12-09 - --- !query7_0_before -- -3 3 2023-12-11 - --- !query7_0_after -- -3 3 2023-12-11 -