[PATCH v1 1/1] sql: remove _sql_stat1 and _sql_stat4 system tables
Vladimir Davydov
vdavydov.dev at gmail.com
Wed Apr 3 11:35:54 MSK 2019
On Tue, Apr 02, 2019 at 12:25:49PM +0300, imeevma at tarantool.org wrote:
> These tables won't be used anymore and should be deleted.
Please mention that this breaks backward compatibility.
> diff --git a/src/box/sql.c b/src/box/sql.c
> index 4fac020..7beeee1 100644
> --- a/src/box/sql.c
> +++ b/src/box/sql.c
> @@ -87,7 +87,7 @@ sql_load_schema()
> * statistics (_sql_stat1 and _sql_stat4). Thus, we can
> * skip statistics loading.
> */
> - struct space *stat = space_by_id(BOX_SQL_STAT1_ID);
> + struct space *stat = space_by_name("_sql_stat1");
I don't understand this change: even though you removed the tables you
still expect them to be accessible by name here and in a few other
places. At any rate, the comment above needs to be refreshed.
> assert(stat != NULL);
> if (stat->def->field_count == 0)
> return;
> @@ -2478,19 +2460,17 @@ sql_drop_index(struct Parse *parse_context, struct SrcList *index_name_list,
> }
> goto exit_drop_index;
> }
> - struct index *index = space_index(space, index_id);
> - assert(index != NULL);
>
> /*
> * Generate code to remove entry from _index space
> * But firstly, delete statistics since schema
> * changes after DDL.
> */
> - sql_clear_stat_spaces(parse_context, table_name, index->def->name);
> int record_reg = ++parse_context->nMem;
> int space_id_reg = ++parse_context->nMem;
> + int index_id_reg =++parse_context->nMem;
Nit: a space is missing.
Anyway, this change looks like it doesn't have anything to do with stat
tables removal. If so, please factor it out into a separate patch with a
proper justification.
> sqlVdbeAddOp2(v, OP_Integer, space->def->id, space_id_reg);
> - sqlVdbeAddOp2(v, OP_Integer, index_id, space_id_reg + 1);
> + sqlVdbeAddOp2(v, OP_Integer, index_id, index_id_reg);
> sqlVdbeAddOp3(v, OP_MakeRecord, space_id_reg, 2, record_reg);
> sqlVdbeAddOp2(v, OP_SDelete, BOX_INDEX_ID, record_reg);
> sqlVdbeChangeP5(v, OPFLAG_NCHANGE);
More information about the Tarantool-patches
mailing list