github.com/whtcorpsinc/milevadb-prod@v0.0.0-20211104133533-f57f4be3b597/dbs/cmd/benchdb/explaintest/r/select.result (about)

     1  DROP TABLE IF EXISTS t;
     2  CREATE TABLE t (
     3  c1 int,
     4  c2 int,
     5  c3 int,
     6  PRIMARY KEY (c1)
     7  );
     8  INSERT INTO t VALUES (1,2,3);
     9  set stochastik milevadb_hashagg_partial_concurrency = 1;
    10  set stochastik milevadb_hashagg_final_concurrency = 1;
    11  SELECT * from t;
    12  c1	c2	c3
    13  1	2	3
    14  SELECT c1, c2, c3 from t;
    15  c1	c2	c3
    16  1	2	3
    17  SELECT c1, c1 from t;
    18  c1	c1
    19  1	1
    20  SELECT c1 as a, c2 as a from t;
    21  a	a
    22  1	2
    23  SELECT 1;
    24  1
    25  1
    26  SELECT 1, 1;
    27  1	1
    28  1	1
    29  SET @@autocommit = 1;
    30  SELECT @@autocommit;
    31  @@autocommit
    32  1
    33  SELECT @@autocommit, @@autocommit;
    34  @@autocommit	@@autocommit
    35  1	1
    36  SET @a = 10;
    37  SET @b = 11;
    38  SELECT @a, @@autocommit;
    39  @a	@@autocommit
    40  10	1
    41  SELECT @a, @b;
    42  @a	@b
    43  10	11
    44  SELECT 1, @a;
    45  1	@a
    46  1	10
    47  SELECT 1, @a as a;
    48  1	a
    49  1	10
    50  SELECT 1, @a, @@autocommit as a, c1 from t;
    51  1	@a	a	c1
    52  1	10	1	1
    53  SET @b = "123";
    54  SELECT @b + "123";
    55  @b + "123"
    56  246
    57  SELECT 1 + 1;
    58  1 + 1
    59  2
    60  SELECT 1 a, 1 as a, 1 + 1 a;
    61  a	a	a
    62  1	1	2
    63  SELECT c1 a, c1 as a from t;
    64  a	a
    65  1	1
    66  SELECT * from t LIMIT 0,1;
    67  c1	c2	c3
    68  1	2	3
    69  SELECT * from t LIMIT 1;
    70  c1	c2	c3
    71  1	2	3
    72  SELECT * from t LIMIT 1,1;
    73  c1	c2	c3
    74  SELECT * from t LIMIT 1 OFFSET 0;
    75  c1	c2	c3
    76  1	2	3
    77  DROP TABLE IF EXISTS t2;
    78  CREATE TABLE t2 (
    79  c1 int,
    80  c2 int,
    81  PRIMARY KEY (c1)
    82  );
    83  INSERT INTO t2 VALUES (1,2);
    84  SELECT * from t a;
    85  c1	c2	c3
    86  1	2	3
    87  SELECT * from t a, t2 b;
    88  c1	c2	c3	c1	c2
    89  1	2	3	1	2
    90  SELECT * from t as a, t2 as b;
    91  c1	c2	c3	c1	c2
    92  1	2	3	1	2
    93  SELECT * from t a left join t2 b on a.c1 = b.c1;
    94  c1	c2	c3	c1	c2
    95  1	2	3	1	2
    96  SELECT * from (SELECT 1, 1) as a;
    97  Error 1060: Duplicate column name '1'
    98  SELECT * from (SELECT * FROM t, t2) as a;
    99  Error 1060: Duplicate column name 'c1'
   100  DROP TABLE IF EXISTS t;
   101  CREATE TABLE t (c1 INT, c2 INT);
   102  INSERT INTO t VALUES (1, 2), (1, 1), (1, 3);
   103  SELECT c1=c2 FROM t;
   104  c1=c2
   105  0
   106  1
   107  0
   108  SELECT 1=1;
   109  1=1
   110  1
   111  SELECT t.c1 + t.c2 from t limit 1;
   112  t.c1 + t.c2
   113  3
   114  SELECT t.c1 from t limit 1;
   115  c1
   116  1
   117  SELECT t.c1 + c2 from t limit 1;
   118  t.c1 + c2
   119  3
   120  SELECT c1 + 10 from t limit 1;
   121  c1 + 10
   122  11
   123  SELECT t.c1 + 10 from t limit 1;
   124  t.c1 + 10
   125  11
   126  SELECT all c1, c2 from t limit 1;
   127  c1	c2
   128  1	2
   129  SELECT distinct c1, c2 from t order by c1, c2 limit 1;
   130  c1	c2
   131  1	1
   132  SELECT c2 from t where not (c2 > 2);
   133  c2
   134  2
   135  1
   136  select c2 from t where not null is null;
   137  c2
   138  select !(1 + 2);
   139  !(1 + 2)
   140  0
   141  select + - 1, --1, +-+-+1, + "123";
   142  + - 1	--1	+-+-+1	123
   143  -1	1	1	123
   144  select --------------------1, ++++++++++++++++++++1;
   145  --------------------1	1
   146  1	1
   147  select +(+(1)), (-+1), ((+1)), +1.23, +1e23, +1E23, +null, +true, +false, + ( ( 1 ) );
   148  1	(-+1)	1	1.23	1e23	1E23	NULL	TRUE	FALSE	1
   149  1	-1	1	1.23	1e23	1e23	NULL	1	0	1
   150  select +
   151  (
   152  +
   153  (
   154  1
   155  )
   156  )
   157  ;
   158  1
   159  1
   160  select +	(	+	1	);
   161  1
   162  1
   163  select --+(1 + 1), +-+-(1 * 1);
   164  --+(1 + 1)	+-+-(1 * 1)
   165  2	1
   166  select * from t where null;
   167  c1	c2
   168  select * from t where 1;
   169  c1	c2
   170  1	2
   171  1	1
   172  1	3
   173  select * from t where 0;
   174  c1	c2
   175  select * from t where 0 * 10;
   176  c1	c2
   177  select * from t where null is not null;
   178  c1	c2
   179  select * from t where !1;
   180  c1	c2
   181  select * from t where 1 && 0 || 3 && null;
   182  c1	c2
   183  select * from t as a, t2 as b;
   184  c1	c2	c1	c2
   185  1	2	1	2
   186  1	1	1	2
   187  1	3	1	2
   188  select * from t as a cross join t2 as b;
   189  c1	c2	c1	c2
   190  1	2	1	2
   191  1	1	1	2
   192  1	3	1	2
   193  select * from t as a join t2 as b;
   194  c1	c2	c1	c2
   195  1	2	1	2
   196  1	1	1	2
   197  1	3	1	2
   198  select * from t as a join t2 as b on a.c2 = b.c2;
   199  c1	c2	c1	c2
   200  1	2	1	2
   201  select * from (t);
   202  c1	c2
   203  1	2
   204  1	1
   205  1	3
   206  select * from (t as a, t2 as b);
   207  c1	c2	c1	c2
   208  1	2	1	2
   209  1	1	1	2
   210  1	3	1	2
   211  select * from (t as a cross join t2 as b);
   212  c1	c2	c1	c2
   213  1	2	1	2
   214  1	1	1	2
   215  1	3	1	2
   216  select 1 as a from t;
   217  a
   218  1
   219  1
   220  1
   221  select count(*), 1 from t;
   222  count(*)	1
   223  3	1
   224  select *, 1 from t;
   225  c1	c2	1
   226  1	2	1
   227  1	1	1
   228  1	3	1
   229  select 1, count(1), sum(1);
   230  1	count(1)	sum(1)
   231  1	1	1
   232  drop causet if exists t1;
   233  create causet t1(a int primary key, b int, c int, index idx(b, c));
   234  insert into t1 values(1, 2, 3);
   235  insert into t1 values(2, 3, 4);
   236  insert into t1 values(3 ,4, 5);
   237  insert into t1 values(4, 5, 6);
   238  insert into t1 values(5, 6, 7);
   239  insert into t1 values(6, 7, 8);
   240  insert into t1 values(7, 8, 9);
   241  insert into t1 values(9, 10, 11);
   242  explain select a, c from t1 use index(idx) order by a limit 5;
   243  id	estRows	task	access object	operator info
   244  TopN_7	5.00	root		test.t1.a, offset:0, count:5
   245  └─IndexReader_15	5.00	root		index:TopN_14
   246    └─TopN_14	5.00	cop[einsteindb]		test.t1.a, offset:0, count:5
   247      └─IndexFullScan_13	10000.00	cop[einsteindb]	causet:t1, index:idx(b, c)	keep order:false, stats:pseudo
   248  select c, a from t1 use index(idx) order by a limit 5;
   249  c	a
   250  3	1
   251  4	2
   252  5	3
   253  6	4
   254  7	5
   255  drop causet if exists t;
   256  create causet t (a int, b int, c int, key idx(a, b, c));
   257  explain select count(a) from t;
   258  id	estRows	task	access object	operator info
   259  StreamAgg_20	1.00	root		funcs:count(DeferredCauset#13)->DeferredCauset#5
   260  └─TableReader_21	1.00	root		data:StreamAgg_8
   261    └─StreamAgg_8	1.00	cop[einsteindb]		funcs:count(test.t.a)->DeferredCauset#13
   262      └─TableFullScan_18	10000.00	cop[einsteindb]	causet:t	keep order:false, stats:pseudo
   263  select count(a) from t;
   264  count(a)
   265  0
   266  insert t values(0,0,0);
   267  explain select distinct b from t group by a;
   268  id	estRows	task	access object	operator info
   269  HashAgg_7	8000.00	root		group by:test.t.b, funcs:firstrow(test.t.b)->test.t.b
   270  └─StreamAgg_22	8000.00	root		group by:test.t.a, funcs:firstrow(DeferredCauset#9)->test.t.b
   271    └─IndexReader_23	8000.00	root		index:StreamAgg_11
   272      └─StreamAgg_11	8000.00	cop[einsteindb]		group by:test.t.a, funcs:firstrow(test.t.b)->DeferredCauset#9
   273        └─IndexFullScan_21	10000.00	cop[einsteindb]	causet:t, index:idx(a, b, c)	keep order:true, stats:pseudo
   274  select distinct b from t group by a;
   275  b
   276  0
   277  explain select count(b) from t group by a;
   278  id	estRows	task	access object	operator info
   279  StreamAgg_19	8000.00	root		group by:test.t.a, funcs:count(DeferredCauset#10)->DeferredCauset#5
   280  └─IndexReader_20	8000.00	root		index:StreamAgg_8
   281    └─StreamAgg_8	8000.00	cop[einsteindb]		group by:test.t.a, funcs:count(test.t.b)->DeferredCauset#10
   282      └─IndexFullScan_18	10000.00	cop[einsteindb]	causet:t, index:idx(a, b, c)	keep order:true, stats:pseudo
   283  select count(b) from t group by a;
   284  count(b)
   285  1
   286  insert t values(1,1,1),(3,3,6),(3,2,5),(2,1,4),(1,1,3),(1,1,2);
   287  explain select count(a) from t where b>0 group by a, b;
   288  id	estRows	task	access object	operator info
   289  StreamAgg_25	2666.67	root		group by:test.t.a, test.t.b, funcs:count(DeferredCauset#10)->DeferredCauset#5
   290  └─IndexReader_26	2666.67	root		index:StreamAgg_9
   291    └─StreamAgg_9	2666.67	cop[einsteindb]		group by:test.t.a, test.t.b, funcs:count(test.t.a)->DeferredCauset#10
   292      └─Selection_24	3333.33	cop[einsteindb]		gt(test.t.b, 0)
   293        └─IndexFullScan_23	10000.00	cop[einsteindb]	causet:t, index:idx(a, b, c)	keep order:true, stats:pseudo
   294  select count(a) from t where b>0 group by a, b;
   295  count(a)
   296  3
   297  1
   298  1
   299  1
   300  explain select count(a) from t where b>0 group by a, b order by a;
   301  id	estRows	task	access object	operator info
   302  Projection_7	2666.67	root		DeferredCauset#5
   303  └─StreamAgg_36	2666.67	root		group by:test.t.a, test.t.b, funcs:count(DeferredCauset#15)->DeferredCauset#5, funcs:firstrow(test.t.a)->test.t.a
   304    └─IndexReader_37	2666.67	root		index:StreamAgg_34
   305      └─StreamAgg_34	2666.67	cop[einsteindb]		group by:test.t.a, test.t.b, funcs:count(test.t.a)->DeferredCauset#15
   306        └─Selection_28	3333.33	cop[einsteindb]		gt(test.t.b, 0)
   307          └─IndexFullScan_27	10000.00	cop[einsteindb]	causet:t, index:idx(a, b, c)	keep order:true, stats:pseudo
   308  select count(a) from t where b>0 group by a, b order by a;
   309  count(a)
   310  3
   311  1
   312  1
   313  1
   314  explain select count(a) from t where b>0 group by a, b order by a limit 1;
   315  id	estRows	task	access object	operator info
   316  Projection_9	1.00	root		DeferredCauset#5
   317  └─Limit_15	1.00	root		offset:0, count:1
   318    └─StreamAgg_44	1.00	root		group by:test.t.a, test.t.b, funcs:count(DeferredCauset#16)->DeferredCauset#5, funcs:firstrow(test.t.a)->test.t.a
   319      └─IndexReader_45	1.00	root		index:StreamAgg_40
   320        └─StreamAgg_40	1.00	cop[einsteindb]		group by:test.t.a, test.t.b, funcs:count(test.t.a)->DeferredCauset#16
   321          └─Selection_43	1.25	cop[einsteindb]		gt(test.t.b, 0)
   322            └─IndexFullScan_42	3.75	cop[einsteindb]	causet:t, index:idx(a, b, c)	keep order:true, stats:pseudo
   323  select count(a) from t where b>0 group by a, b order by a limit 1;
   324  count(a)
   325  3
   326  drop causet if exists t;
   327  create causet t (id int primary key, a int, b int);
   328  explain select * from (t t1 left join t t2 on t1.a = t2.a) left join (t t3 left join t t4 on t3.a = t4.a) on t2.b = 1;
   329  id	estRows	task	access object	operator info
   330  HashJoin_10	155937656.25	root		CARTESIAN left outer join, left cond:[eq(test.t.b, 1)]
   331  ├─HashJoin_19(Build)	12487.50	root		left outer join, equal:[eq(test.t.a, test.t.a)]
   332  │ ├─TableReader_25(Build)	9990.00	root		data:Selection_24
   333  │ │ └─Selection_24	9990.00	cop[einsteindb]		not(isnull(test.t.a))
   334  │ │   └─TableFullScan_23	10000.00	cop[einsteindb]	causet:t4	keep order:false, stats:pseudo
   335  │ └─TableReader_22(Probe)	10000.00	root		data:TableFullScan_21
   336  │   └─TableFullScan_21	10000.00	cop[einsteindb]	causet:t3	keep order:false, stats:pseudo
   337  └─HashJoin_12(Probe)	12487.50	root		left outer join, equal:[eq(test.t.a, test.t.a)]
   338    ├─TableReader_18(Build)	9990.00	root		data:Selection_17
   339    │ └─Selection_17	9990.00	cop[einsteindb]		not(isnull(test.t.a))
   340    │   └─TableFullScan_16	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   341    └─TableReader_15(Probe)	10000.00	root		data:TableFullScan_14
   342      └─TableFullScan_14	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   343  drop causet if exists t;
   344  create causet t(a bigint primary key, b bigint);
   345  desc select * from t where a = 1;
   346  id	estRows	task	access object	operator info
   347  Point_Get_1	1.00	root	causet:t	handle:1
   348  desc select * from t where a = '1';
   349  id	estRows	task	access object	operator info
   350  Point_Get_1	1.00	root	causet:t	handle:1
   351  desc select sysdate(), sleep(1), sysdate();
   352  id	estRows	task	access object	operator info
   353  Projection_3	1.00	root		sysdate()->DeferredCauset#1, sleep(1)->DeferredCauset#2, sysdate()->DeferredCauset#3
   354  └─TableDual_4	1.00	root		rows:1
   355  drop causet if exists th;
   356  set @@stochastik.milevadb_enable_block_partition = '1';
   357  create causet th (a int, b int) partition by hash(a) partitions 3;
   358  insert into th values (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8);
   359  insert into th values (-1,-1),(-2,-2),(-3,-3),(-4,-4),(-5,-5),(-6,-6),(-7,-7),(-8,-8);
   360  desc select * from th where a=-2;
   361  id	estRows	task	access object	operator info
   362  TableReader_7	10.00	root	partition:p2	data:Selection_6
   363  └─Selection_6	10.00	cop[einsteindb]		eq(test.th.a, -2)
   364    └─TableFullScan_5	10000.00	cop[einsteindb]	causet:th	keep order:false, stats:pseudo
   365  desc select * from th;
   366  id	estRows	task	access object	operator info
   367  TableReader_5	10000.00	root	partition:all	data:TableFullScan_4
   368  └─TableFullScan_4	10000.00	cop[einsteindb]	causet:th	keep order:false, stats:pseudo
   369  desc select * from th partition (p2,p1);
   370  id	estRows	task	access object	operator info
   371  TableReader_5	10000.00	root	partition:p1,p2	data:TableFullScan_4
   372  └─TableFullScan_4	10000.00	cop[einsteindb]	causet:th	keep order:false, stats:pseudo
   373  drop causet if exists t;
   374  create causet t(a int, b int);
   375  explain select a != any (select a from t t2) from t t1;
   376  id	estRows	task	access object	operator info
   377  Projection_8	10000.00	root		and(or(or(gt(DeferredCauset#8, 1), ne(test.t.a, DeferredCauset#7)), if(ne(DeferredCauset#9, 0), <nil>, 0)), and(ne(DeferredCauset#10, 0), if(isnull(test.t.a), <nil>, 1)))->DeferredCauset#11
   378  └─HashJoin_9	10000.00	root		CARTESIAN inner join
   379    ├─StreamAgg_14(Build)	1.00	root		funcs:max(DeferredCauset#13)->DeferredCauset#7, funcs:count(distinct DeferredCauset#14)->DeferredCauset#8, funcs:sum(DeferredCauset#15)->DeferredCauset#9, funcs:count(1)->DeferredCauset#10
   380    │ └─Projection_19	10000.00	root		test.t.a, test.t.a, cast(isnull(test.t.a), decimal(65,0) BINARY)->DeferredCauset#15
   381    │   └─TableReader_18	10000.00	root		data:TableFullScan_17
   382    │     └─TableFullScan_17	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   383    └─TableReader_12(Probe)	10000.00	root		data:TableFullScan_11
   384      └─TableFullScan_11	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   385  explain select a = all (select a from t t2) from t t1;
   386  id	estRows	task	access object	operator info
   387  Projection_8	10000.00	root		or(and(and(le(DeferredCauset#8, 1), eq(test.t.a, DeferredCauset#7)), if(ne(DeferredCauset#9, 0), <nil>, 1)), or(eq(DeferredCauset#10, 0), if(isnull(test.t.a), <nil>, 0)))->DeferredCauset#11
   388  └─HashJoin_9	10000.00	root		CARTESIAN inner join
   389    ├─StreamAgg_14(Build)	1.00	root		funcs:firstrow(DeferredCauset#13)->DeferredCauset#7, funcs:count(distinct DeferredCauset#14)->DeferredCauset#8, funcs:sum(DeferredCauset#15)->DeferredCauset#9, funcs:count(1)->DeferredCauset#10
   390    │ └─Projection_19	10000.00	root		test.t.a, test.t.a, cast(isnull(test.t.a), decimal(65,0) BINARY)->DeferredCauset#15
   391    │   └─TableReader_18	10000.00	root		data:TableFullScan_17
   392    │     └─TableFullScan_17	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   393    └─TableReader_12(Probe)	10000.00	root		data:TableFullScan_11
   394      └─TableFullScan_11	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   395  drop causet if exists t;
   396  create causet t(a int, b int);
   397  drop causet if exists s;
   398  create causet s(a varchar(20), b varchar(20));
   399  explain select a in (select a from s where s.b = t.b) from t;
   400  id	estRows	task	access object	operator info
   401  HashJoin_10	10000.00	root		left outer semi join, equal:[eq(DeferredCauset#8, DeferredCauset#9)], other cond:eq(cast(test.t.a), cast(test.s.a))
   402  ├─Projection_14(Build)	10000.00	root		test.s.a, cast(test.s.b, double BINARY)->DeferredCauset#9
   403  │ └─TableReader_16	10000.00	root		data:TableFullScan_15
   404  │   └─TableFullScan_15	10000.00	cop[einsteindb]	causet:s	keep order:false, stats:pseudo
   405  └─Projection_11(Probe)	10000.00	root		test.t.a, cast(test.t.b, double BINARY)->DeferredCauset#8
   406    └─TableReader_13	10000.00	root		data:TableFullScan_12
   407      └─TableFullScan_12	10000.00	cop[einsteindb]	causet:t	keep order:false, stats:pseudo
   408  explain select a in (select a+b from t t2 where t2.b = t1.b) from t t1;
   409  id	estRows	task	access object	operator info
   410  HashJoin_8	10000.00	root		left outer semi join, equal:[eq(test.t.b, test.t.b)], other cond:eq(test.t.a, plus(test.t.a, test.t.b))
   411  ├─TableReader_12(Build)	10000.00	root		data:TableFullScan_11
   412  │ └─TableFullScan_11	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   413  └─TableReader_10(Probe)	10000.00	root		data:TableFullScan_9
   414    └─TableFullScan_9	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   415  drop causet t;
   416  create causet t(a int not null, b int);
   417  explain select a in (select a from t t2 where t2.b = t1.b) from t t1;
   418  id	estRows	task	access object	operator info
   419  HashJoin_8	10000.00	root		left outer semi join, equal:[eq(test.t.b, test.t.b) eq(test.t.a, test.t.a)]
   420  ├─TableReader_12(Build)	10000.00	root		data:TableFullScan_11
   421  │ └─TableFullScan_11	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   422  └─TableReader_10(Probe)	10000.00	root		data:TableFullScan_9
   423    └─TableFullScan_9	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   424  explain select 1 from (select sleep(1)) t;
   425  id	estRows	task	access object	operator info
   426  Projection_4	1.00	root		1->DeferredCauset#2
   427  └─Projection_5	1.00	root		sleep(1)->DeferredCauset#1
   428    └─TableDual_6	1.00	root		rows:1
   429  drop causet if exists t;
   430  create causet t(a int, b int);
   431  explain select a from t order by rand();
   432  id	estRows	task	access object	operator info
   433  Projection_8	10000.00	root		test.t.a
   434  └─Sort_4	10000.00	root		DeferredCauset#4
   435    └─Projection_9	10000.00	root		test.t.a, rand()->DeferredCauset#4
   436      └─TableReader_7	10000.00	root		data:TableFullScan_6
   437        └─TableFullScan_6	10000.00	cop[einsteindb]	causet:t	keep order:false, stats:pseudo
   438  explain select a, b from t order by abs(2);
   439  id	estRows	task	access object	operator info
   440  TableReader_8	10000.00	root		data:TableFullScan_7
   441  └─TableFullScan_7	10000.00	cop[einsteindb]	causet:t	keep order:false, stats:pseudo
   442  explain select a from t order by abs(rand())+1;
   443  id	estRows	task	access object	operator info
   444  Projection_8	10000.00	root		test.t.a
   445  └─Sort_4	10000.00	root		DeferredCauset#4
   446    └─Projection_9	10000.00	root		test.t.a, plus(abs(rand()), 1)->DeferredCauset#4
   447      └─TableReader_7	10000.00	root		data:TableFullScan_6
   448        └─TableFullScan_6	10000.00	cop[einsteindb]	causet:t	keep order:false, stats:pseudo
   449  drop causet if exists t1;
   450  create causet t1(a int, b int);
   451  drop causet if exists t2;
   452  create causet t2(a int, b int);
   453  explain select * from t1 where t1.a in (select t2.a as a from t2 where t2.b > t1.b order by t1.b);
   454  id	estRows	task	access object	operator info
   455  HashJoin_10	7984.01	root		semi join, equal:[eq(test.t1.a, test.t2.a)], other cond:gt(test.t2.b, test.t1.b)
   456  ├─TableReader_16(Build)	9980.01	root		data:Selection_15
   457  │ └─Selection_15	9980.01	cop[einsteindb]		not(isnull(test.t2.a)), not(isnull(test.t2.b))
   458  │   └─TableFullScan_14	10000.00	cop[einsteindb]	causet:t2	keep order:false, stats:pseudo
   459  └─TableReader_13(Probe)	9980.01	root		data:Selection_12
   460    └─Selection_12	9980.01	cop[einsteindb]		not(isnull(test.t1.a)), not(isnull(test.t1.b))
   461      └─TableFullScan_11	10000.00	cop[einsteindb]	causet:t1	keep order:false, stats:pseudo
   462  drop causet t;
   463  CREATE TABLE t (id int(10) unsigned NOT NULL AUTO_INCREMENT,
   464  i int(10) unsigned DEFAULT NULL,
   465  x int(10) unsigned DEFAULT 0,
   466  PRIMARY KEY (`id`)
   467  );
   468  explain select row_number() over( partition by i ) - x as rnk from t;
   469  id	estRows	task	access object	operator info
   470  Projection_7	10000.00	root		minus(DeferredCauset#5, test.t.x)->DeferredCauset#7
   471  └─Window_8	10000.00	root		row_number()->DeferredCauset#5 over(partition by test.t.i)
   472    └─Sort_11	10000.00	root		test.t.i
   473      └─TableReader_10	10000.00	root		data:TableRangeScan_9
   474        └─TableRangeScan_9	10000.00	cop[einsteindb]	causet:t	range:[0,+inf], keep order:false, stats:pseudo