vitess.io/vitess@v0.16.2/go/vt/vtgate/planbuilder/testdata/unsupported_cases.json (about)

     1  [
     2    {
     3      "comment": "union operations in subqueries (expressions)",
     4      "query": "select * from user where id in (select * from user union select * from user_extra)",
     5      "plan": "VT12001: unsupported: '*' expression in cross-shard query"
     6    },
     7    {
     8      "comment": "TODO: Implement support for select with a target destination",
     9      "query": "select * from `user[-]`.user_metadata",
    10      "plan": "VT12001: unsupported: SELECT with a target destination"
    11    },
    12    {
    13      "comment": "Unsupported INSERT statement with a target destination",
    14      "query": "insert into `user[-]`.user_metadata (a, b) values (1,2)",
    15      "plan": "VT12001: unsupported: INSERT with a target destination"
    16    },
    17    {
    18      "comment": "Unsupported delete statement with a replica target destination",
    19      "query": "DELETE FROM `user[-]@replica`.user_metadata limit 1",
    20      "plan": "VT09002: delete statement with a replica target"
    21    },
    22    {
    23      "comment": "Unsupported update statement with a replica target destination",
    24      "query": "update `user[-]@replica`.user_metadata set id=2",
    25      "plan": "VT09002: update statement with a replica target"
    26    },
    27    {
    28      "comment": "scatter order by with * expression",
    29      "query": "select * from user order by id",
    30      "v3-plan": "VT12001: unsupported: in scatter query: ORDER BY must reference a column in the SELECT list: id asc",
    31      "gen4-plan": "VT12001: unsupported: '*' expression in cross-shard query"
    32    },
    33    {
    34      "comment": "order by rand on a cross-shard subquery",
    35      "query": "select id from (select user.id, user.col from user join user_extra) as t order by rand()",
    36      "v3-plan": "VT12001: unsupported: memory sort: complex ORDER BY expression: rand()",
    37      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: rand()"
    38    },
    39    {
    40      "comment": "natural join",
    41      "query": "select * from user natural join user_extra",
    42      "plan": "VT12001: unsupported: natural join"
    43    },
    44    {
    45      "comment": "join with USING construct",
    46      "query": "select * from user join user_extra using(id)",
    47      "v3-plan": "VT12001: unsupported: JOIN with USING(column_list) clause for complex queries",
    48      "gen4-plan": "can't handle JOIN USING without authoritative tables"
    49    },
    50    {
    51      "comment": "join with USING construct with 3 tables",
    52      "query": "select user.id from user join user_extra using(id) join music using(id2)",
    53      "v3-plan": "VT12001: unsupported: JOIN with USING(column_list) clause for complex queries",
    54      "gen4-plan": "can't handle JOIN USING without authoritative tables"
    55    },
    56    {
    57      "comment": "natural left join",
    58      "query": "select * from user natural left join user_extra",
    59      "plan": "VT12001: unsupported: natural left join"
    60    },
    61    {
    62      "comment": "natural right join",
    63      "query": "select * from user natural right join user_extra",
    64      "plan": "VT12001: unsupported: natural right join"
    65    },
    66    {
    67      "comment": "* expresson not allowed for cross-shard joins",
    68      "query": "select * from user join user_extra",
    69      "plan": "VT12001: unsupported: '*' expression in cross-shard query"
    70    },
    71    {
    72      "comment": "Group by column number, used with non-aliased expression (duplicated code)",
    73      "query": "select * from user group by 1",
    74      "v3-plan": "VT12001: unsupported: '*' expression in cross-shard query",
    75      "gen4-plan": "cannot use column offsets in group statement when using `*`"
    76    },
    77    {
    78      "comment": "complex group by expression",
    79      "query": "select a from user group by a+1",
    80      "v3-plan": "VT12001: unsupported: in scatter query: only simple references are allowed",
    81      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: a + 1"
    82    },
    83    {
    84      "comment": "Complex aggregate expression on scatter",
    85      "query": "select 1+count(*) from user",
    86      "plan": "VT12001: unsupported: in scatter query: complex aggregate expression"
    87    },
    88    {
    89      "comment": "Multi-value aggregates not supported",
    90      "query": "select count(a,b) from user",
    91      "v3-plan": "VT12001: unsupported: only one expression is allowed inside aggregates: count(a, b)",
    92      "gen4-plan": "VT03001: aggregate functions take a single argument 'count(a, b)'"
    93    },
    94    {
    95      "comment": "scatter aggregate complex order by",
    96      "query": "select id from user group by id order by id+1",
    97      "v3-plan": "VT12001: unsupported: in scatter query: complex ORDER BY expression: id + 1",
    98      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: id + 1"
    99    },
   100    {
   101      "comment": "Scatter order by is complex with aggregates in select",
   102      "query": "select col, count(*) from user group by col order by col+1",
   103      "v3-plan": "VT12001: unsupported: in scatter query: complex ORDER BY expression: col + 1",
   104      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: col + 1"
   105    },
   106    {
   107      "comment": "Aggregate detection (group_concat)",
   108      "query": "select group_concat(user.a) from user join user_extra",
   109      "v3-plan": "VT12001: unsupported: cross-shard query with aggregates",
   110      "gen4-plan": "VT12001: unsupported: in scatter query: aggregation function 'group_concat'"
   111    },
   112    {
   113      "comment": "subqueries not supported in group by",
   114      "query": "select id from user group by id, (select id from user_extra)",
   115      "v3-plan": "VT12001: unsupported: subqueries disallowed in sqlparser.GroupBy",
   116      "gen4-plan": "VT12001: unsupported: subqueries in GROUP BY"
   117    },
   118    {
   119      "comment": "Order by uses cross-shard expression",
   120      "query": "select id from user order by id+1",
   121      "v3-plan": "VT12001: unsupported: in scatter query: complex ORDER BY expression: id + 1",
   122      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: id + 1"
   123    },
   124    {
   125      "comment": "Order by column number with collate",
   126      "query": "select user.col1 as a from user order by 1 collate utf8_general_ci",
   127      "v3-plan": "VT12001: unsupported: in scatter query: complex ORDER BY expression: 1 collate utf8_general_ci",
   128      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: a collate utf8_general_ci"
   129    },
   130    {
   131      "comment": "subqueries in delete",
   132      "query": "delete from user where col = (select id from unsharded)",
   133      "v3-plan": "VT12001: unsupported: sharded subqueries in DML",
   134      "gen4-plan": "VT12001: unsupported: subqueries in DML"
   135    },
   136    {
   137      "comment": "sharded subqueries in unsharded delete",
   138      "query": "delete from unsharded where col = (select id from user)",
   139      "v3-plan": "VT12001: unsupported: sharded subqueries in DML",
   140      "gen4-plan": "VT12001: unsupported: subqueries in DML"
   141    },
   142    {
   143      "comment": "sharded delete with limit clasue",
   144      "query": "delete from user_extra limit 10",
   145      "v3-plan": "VT12001: unsupported: multi-shard delete with LIMIT",
   146      "gen4-plan": "VT12001: unsupported: multi shard DELETE with LIMIT"
   147    },
   148    {
   149      "comment": "sharded subquery in unsharded subquery in unsharded delete",
   150      "query": "delete from unsharded where col = (select id from unsharded where id = (select id from user))",
   151      "v3-plan": "VT12001: unsupported: sharded subqueries in DML",
   152      "gen4-plan": "VT12001: unsupported: subqueries in DML"
   153    },
   154    {
   155      "comment": "sharded join unsharded subqueries in unsharded delete",
   156      "query": "delete from unsharded where col = (select id from unsharded join user on unsharded.id = user.id)",
   157      "v3-plan": "VT12001: unsupported: sharded subqueries in DML",
   158      "gen4-plan": "VT12001: unsupported: subqueries in DML"
   159    },
   160    {
   161      "comment": "scatter update with limit clause",
   162      "query": "update user_extra set val = 1 where (name = 'foo' or id = 1) limit 1",
   163      "v3-plan": "VT12001: unsupported: multi-shard update with LIMIT",
   164      "gen4-plan": "VT12001: unsupported: multi shard UPDATE with LIMIT"
   165    },
   166    {
   167      "comment": "multi delete multi table",
   168      "query": "delete user from user join user_extra on user.id = user_extra.id where user.name = 'foo'",
   169      "plan": "VT12001: unsupported: multi-shard or vindex write statement"
   170    },
   171    {
   172      "comment": "update changes primary vindex column",
   173      "query": "update user set id = 1 where id = 1",
   174      "v3-plan": "VT12001: unsupported: you cannot update primary vindex columns; invalid update on vindex: user_index",
   175      "gen4-plan": "VT12001: unsupported: you cannot UPDATE primary vindex columns; invalid update on vindex: user_index"
   176    },
   177    {
   178      "comment": "update change in multicol vindex column",
   179      "query": "update multicol_tbl set colc = 5, colb = 4 where cola = 1 and colb = 2",
   180      "v3-plan": "VT12001: unsupported: you cannot update primary vindex columns; invalid update on vindex: multicolIdx",
   181      "gen4-plan": "VT12001: unsupported: you cannot UPDATE primary vindex columns; invalid update on vindex: multicolIdx"
   182    },
   183    {
   184      "comment": "update changes non lookup vindex column",
   185      "query": "update user_metadata set md5 = 1 where user_id = 1",
   186      "v3-plan": "VT12001: unsupported: you can only update lookup vindexes; invalid update on vindex: user_md5_index",
   187      "gen4-plan": "VT12001: unsupported: you can only UPDATE lookup vindexes; invalid update on vindex: user_md5_index"
   188    },
   189    {
   190      "comment": "update with complex set clause",
   191      "query": "update music set id = id + 1 where id = 1",
   192      "v3-plan": "VT12001: unsupported: only values are supported: invalid update on column: `id` with expr: [id + 1]",
   193      "gen4-plan": "VT12001: unsupported: only values are supported; invalid update on column: `id` with expr: [id + 1]"
   194    },
   195    {
   196      "comment": "update by primary keyspace id, changing one vindex column, limit without order clause",
   197      "query": "update user_metadata set email = 'juan@vitess.io' where user_id = 1 limit 10",
   198      "v3-plan": "VT12001: unsupported: need to provide ORDER BY clause when using LIMIT; invalid update on vindex: email_user_map",
   199      "gen4-plan": "VT12001: unsupported: you need to provide the ORDER BY clause when using LIMIT; invalid update on vindex: email_user_map"
   200    },
   201    {
   202      "comment": "update with derived table",
   203      "query": "update (select id from user) as u set id = 4",
   204      "v3-plan": "VT12001: unsupported: sharded subqueries in DML",
   205      "gen4-plan": "The target table u of the UPDATE is not updatable"
   206    },
   207    {
   208      "comment": "join in update tables",
   209      "query": "update user join user_extra on user.id = user_extra.id set user.name = 'foo'",
   210      "v3-plan": "VT12001: unsupported: multi-shard or vindex write statement",
   211      "gen4-plan": "VT12001: unsupported: multiple tables in update"
   212    },
   213    {
   214      "comment": "multiple tables in update",
   215      "query": "update user as u, user_extra as ue set u.name = 'foo' where u.id = ue.id",
   216      "v3-plan": "VT12001: unsupported: multi-shard or vindex write statement",
   217      "gen4-plan": "VT12001: unsupported: multiple tables in update"
   218    },
   219    {
   220      "comment": "unsharded insert, unqualified names and auto-inc combined",
   221      "query": "insert into unsharded_auto select col from unsharded",
   222      "plan": "VT12001: unsupported: auto-increment and SELECT in INSERT"
   223    },
   224    {
   225      "comment": "unsharded insert, no col list with auto-inc",
   226      "query": "insert into unsharded_auto values(1,1)",
   227      "plan": "VT13001: [BUG] column list required for tables with auto-inc columns"
   228    },
   229    {
   230      "comment": "unsharded insert, col list does not match values",
   231      "query": "insert into unsharded_auto(id, val) values(1)",
   232      "plan": "VT13001: [BUG] column list does not match values"
   233    },
   234    {
   235      "comment": "sharded upsert can't change vindex",
   236      "query": "insert into user(id) values(1) on duplicate key update id = 3",
   237      "plan": "VT12001: unsupported: DML cannot update vindex column"
   238    },
   239    {
   240      "comment": "sharded upsert can't change vindex using values function",
   241      "query": "insert into music(user_id, id) values(1, 2) on duplicate key update user_id = values(id)",
   242      "plan": "VT12001: unsupported: DML cannot update vindex column"
   243    },
   244    {
   245      "comment": "sharded replace no vindex",
   246      "query": "replace into user(val) values(1, 'foo')",
   247      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   248    },
   249    {
   250      "comment": "sharded replace with vindex",
   251      "query": "replace into user(id, name) values(1, 'foo')",
   252      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   253    },
   254    {
   255      "comment": "replace no column list",
   256      "query": "replace into user values(1, 2, 3)",
   257      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   258    },
   259    {
   260      "comment": "replace with mimatched column list",
   261      "query": "replace into user(id) values (1, 2)",
   262      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   263    },
   264    {
   265      "comment": "replace with one vindex",
   266      "query": "replace into user(id) values (1)",
   267      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   268    },
   269    {
   270      "comment": "replace with non vindex on vindex-enabled table",
   271      "query": "replace into user(nonid) values (2)",
   272      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   273    },
   274    {
   275      "comment": "replace with all vindexes supplied",
   276      "query": "replace into user(nonid, name, id) values (2, 'foo', 1)",
   277      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   278    },
   279    {
   280      "comment": "replace for non-vindex autoinc",
   281      "query": "replace into user_extra(nonid) values (2)",
   282      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   283    },
   284    {
   285      "comment": "replace with multiple rows",
   286      "query": "replace into user(id) values (1), (2)",
   287      "plan": "VT12001: unsupported: REPLACE INTO with sharded keyspace"
   288    },
   289    {
   290      "comment": "select keyspace_id from user_index where id = 1 and id = 2",
   291      "query": "select keyspace_id from user_index where id = 1 and id = 2",
   292      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (multiple filters)"
   293    },
   294    {
   295      "comment": "select keyspace_id from user_index where func(id)",
   296      "query": "select keyspace_id from user_index where func(id)",
   297      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (not a comparison)"
   298    },
   299    {
   300      "comment": "select keyspace_id from user_index where id > 1",
   301      "query": "select keyspace_id from user_index where id > 1",
   302      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (not equality)"
   303    },
   304    {
   305      "comment": "select keyspace_id from user_index where 1 = id",
   306      "query": "select keyspace_id from user_index where 1 = id",
   307      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (lhs is not a column)"
   308    },
   309    {
   310      "comment": "select keyspace_id from user_index where keyspace_id = 1",
   311      "query": "select keyspace_id from user_index where keyspace_id = 1",
   312      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (lhs is not id)"
   313    },
   314    {
   315      "comment": "select keyspace_id from user_index where id = id+1",
   316      "query": "select keyspace_id from user_index where id = id+1",
   317      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (rhs is not a value)"
   318    },
   319    {
   320      "comment": "vindex func without where condition",
   321      "query": "select keyspace_id from user_index",
   322      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (where clause missing)"
   323    },
   324    {
   325      "comment": "vindex func in subquery without where",
   326      "query": "select id from user where exists(select keyspace_id from user_index)",
   327      "plan": "VT12001: unsupported: WHERE clause for vindex function must be of the form id = <val> or id in(<val>,...) (where clause missing)"
   328    },
   329    {
   330      "comment": "select func(keyspace_id) from user_index where id = :id",
   331      "query": "select func(keyspace_id) from user_index where id = :id",
   332      "plan": "VT12001: unsupported: expression on results of a vindex function"
   333    },
   334    {
   335      "comment": "delete with multi-table targets",
   336      "query": "delete music,user from music inner join user where music.id = user.id",
   337      "plan": "VT12001: unsupported: multi-shard or vindex write statement"
   338    },
   339    {
   340      "comment": "select get_lock with non-dual table",
   341      "query": "select get_lock('xyz', 10) from user",
   342      "v3-plan": "VT12001: unsupported: get_lock('xyz', 10) is allowed only with dual",
   343      "gen4-plan": "get_lock('xyz', 10) allowed only with dual"
   344    },
   345    {
   346      "comment": "select is_free_lock with non-dual table",
   347      "query": "select is_free_lock('xyz') from user",
   348      "v3-plan": "VT12001: unsupported: is_free_lock('xyz') is allowed only with dual",
   349      "gen4-plan": "is_free_lock('xyz') allowed only with dual"
   350    },
   351    {
   352      "comment": "union with SQL_CALC_FOUND_ROWS",
   353      "query": "(select sql_calc_found_rows id from user where id = 1 limit 1) union select id from user where id = 1",
   354      "v3-plan": "VT12001: unsupported: SQL_CALC_FOUND_ROWS not supported with UNION",
   355      "gen4-plan": "VT12001: unsupported: SQL_CALC_FOUND_ROWS not supported with union"
   356    },
   357    {
   358      "comment": "set with DEFAULT - vitess aware",
   359      "query": "set workload = default",
   360      "plan": "VT12001: unsupported: DEFAULT for @@workload"
   361    },
   362    {
   363      "comment": "set with DEFAULT - reserved connection",
   364      "query": "set sql_mode = default",
   365      "plan": "VT12001: unsupported: DEFAULT for @@%s%!(EXTRA sqlparser.IdentifierCI=sql_mode)"
   366    },
   367    {
   368      "comment": "Multi shard query using into outfile s3",
   369      "query": "select * from user into outfile s3 'out_file_name'",
   370      "plan": "VT12001: unsupported: INTO on sharded keyspace"
   371    },
   372    {
   373      "comment": "create view with Cannot auto-resolve for cross-shard joins",
   374      "query": "create view user.view_a as select col from user join user_extra",
   375      "v3-plan": "VT03019: symbol col not found",
   376      "gen4-plan": "Column 'col' in field list is ambiguous"
   377    },
   378    {
   379      "comment": "create view with join that cannot be served in each shard separately",
   380      "query": "create view user.view_a as select user_extra.id from user join user_extra",
   381      "plan": "VT12001: unsupported: Complex select queries are not supported in create or alter view statements"
   382    },
   383    {
   384      "comment": "create view with sharded limit",
   385      "query": "create view user.view_a as select id from user order by id limit 10",
   386      "plan": "VT12001: unsupported: Complex select queries are not supported in create or alter view statements"
   387    },
   388    {
   389      "comment": "create view with top level subquery in select",
   390      "query": "create view user.view_a as select a, (select col from user) from unsharded",
   391      "plan": "VT12001: unsupported: Select query does not belong to the same keyspace as the view statement"
   392    },
   393    {
   394      "comment": "create view with sql_calc_found_rows with limit",
   395      "query": "create view user.view_a as select sql_calc_found_rows * from music limit 100",
   396      "plan": "VT12001: unsupported: Complex select queries are not supported in create or alter view statements"
   397    },
   398    {
   399      "comment": "create view with sql_calc_found_rows with group by and having",
   400      "query": "create view user.view_a as select sql_calc_found_rows user_id, count(id) from music group by user_id having count(user_id) = 1 order by user_id limit 2",
   401      "plan": "VT12001: unsupported: Complex select queries are not supported in create or alter view statements"
   402    },
   403    {
   404      "comment": "create view with incompatible keyspaces",
   405      "query": "create view main.view_a as select * from user.user_extra",
   406      "plan": "VT12001: unsupported: Select query does not belong to the same keyspace as the view statement"
   407    },
   408    {
   409      "comment": "avg function on scatter query",
   410      "query": "select avg(id) from user",
   411      "v3-plan": "VT12001: unsupported: in scatter query: complex aggregate expression",
   412      "gen4-plan": "VT12001: unsupported: in scatter query: aggregation function 'avg'"
   413    },
   414    {
   415      "comment": "scatter aggregate with ambiguous aliases",
   416      "query": "select distinct a, b as a from user",
   417      "v3-plan": "generating ORDER BY clause: VT03021: ambiguous symbol reference: a",
   418      "gen4-plan": "VT13001: [BUG] generating ORDER BY clause: ambiguous symbol reference: a"
   419    },
   420    {
   421      "comment": "outer and inner subquery route reference the same \"uu.id\" name\n# but they refer to different things. The first reference is to the outermost query,\n# and the second reference is to the innermost 'from' subquery.\n# This query will never work as the inner derived table is only selecting one of the column",
   422      "query": "select id2 from user uu where id in (select id from user where id = uu.id and user.col in (select col from (select id from user_extra where user_id = 5) uu where uu.user_id = uu.id))",
   423      "plan": "VT12001: unsupported: cross-shard correlated subquery"
   424    },
   425    {
   426      "comment": "outer and inner subquery route reference the same \"uu.id\" name\n# but they refer to different things. The first reference is to the outermost query,\n# and the second reference is to the innermost 'from' subquery.\n# changed to project all the columns from the derived tables.",
   427      "query": "select id2 from user uu where id in (select id from user where id = uu.id and user.col in (select col from (select col, id, user_id from user_extra where user_id = 5) uu where uu.user_id = uu.id))",
   428      "plan": "VT12001: unsupported: cross-shard correlated subquery"
   429    },
   430    {
   431      "comment": "Gen4 does a rewrite of 'order by 2' that becomes 'order by id', leading to ambiguous binding.",
   432      "query": "select a.id, b.id from user as a, user_extra as b union select 1, 2 order by 2",
   433      "v3-plan": "VT12001: unsupported: ORDER BY on top of UNION",
   434      "gen4-plan": "Column 'id' in field list is ambiguous"
   435    },
   436    {
   437      "comment": "unsupported with clause in delete statement",
   438      "query": "with x as (select * from user) delete from x",
   439      "plan": "VT12001: unsupported: WITH expression in DELETE statement"
   440    },
   441    {
   442      "comment": "unsupported with clause in update statement",
   443      "query": "with x as (select * from user) update x set name = 'f'",
   444      "plan": "VT12001: unsupported: WITH expression in UPDATE statement"
   445    },
   446    {
   447      "comment": "unsupported with clause in select statement",
   448      "query": "with x as (select * from user) select * from x",
   449      "plan": "VT12001: unsupported: WITH expression in SELECT statement"
   450    },
   451    {
   452      "comment": "unsupported with clause in union statement",
   453      "query": "with x as (select * from user) select * from x union select * from x",
   454      "plan": "VT12001: unsupported: WITH expression in UNION statement"
   455    },
   456    {
   457      "comment": "scatter aggregate with complex select list (can't build order by)",
   458      "query": "select distinct a+1 from user",
   459      "v3-plan": "generating ORDER BY clause: VT12001: unsupported: reference a complex expression",
   460      "gen4-plan": "VT13001: [BUG] in scatter query: complex ORDER BY expression: a + 1"
   461    },
   462    {
   463      "comment": "aggregation on union",
   464      "query": "select sum(col) from (select col from user union all select col from unsharded) t",
   465      "v3-plan": "VT12001: unsupported: cross-shard query with aggregates",
   466      "gen4-plan": "VT12001: unsupported: using aggregation on top of a *planbuilder.concatenateGen4 plan"
   467    },
   468    {
   469      "comment": "insert having subquery in row values",
   470      "query": "insert into user(id, name) values ((select 1 from user where id = 1), 'A')",
   471      "plan": "expr cannot be translated, not supported: (select 1 from `user` where id = 1)"
   472    },
   473    {
   474      "comment": "lateral derived tables",
   475      "query": "select * from user, lateral (select * from user_extra where user_id = user.id) t",
   476      "plan": "VT12001: unsupported: lateral derived tables"
   477    },
   478    {
   479      "comment": "json_table expressions",
   480      "query": "SELECT * FROM JSON_TABLE('[ {\"c1\": null} ]','$[*]' COLUMNS( c1 INT PATH '$.c1' ERROR ON ERROR )) as jt",
   481      "v3-plan": "VT12001: unsupported: JSON_TABLE expressions",
   482      "gen4-plan": "VT12001: unsupported: json_table expressions"
   483    },
   484    {
   485      "comment": "mix lock with other expr",
   486      "query": "select get_lock('xyz', 10), 1 from dual",
   487      "plan": "VT12001: unsupported: LOCK function and other expression: [1] in same select query"
   488    }
   489  ]