* [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser
@ 2018-05-31 15:01 Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h Kirill Shcherbatov
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:01 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy, Kirill Shcherbatov
Branch: http://github.com/tarantool/tarantool/tree/kshch/gh-3438-parser-own-region
Issue: https://github.com/tarantool/tarantool/issues/3438
Kirill Shcherbatov (2):
sql: remove parser construct, destruct to sql.h
sql: use own region in Parser
src/box/sql.h | 17 +++++++++++++++++
src/box/sql/build.c | 6 +++---
src/box/sql/prepare.c | 11 +++++++++--
src/box/sql/select.c | 2 +-
src/box/sql/sqliteInt.h | 29 ++---------------------------
src/box/sql/tokenize.c | 10 ++++++----
6 files changed, 38 insertions(+), 37 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h
2018-05-31 15:01 [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser Kirill Shcherbatov
@ 2018-05-31 15:01 ` Kirill Shcherbatov
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 2/2] sql: use own region in Parser Kirill Shcherbatov
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:01 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy, Kirill Shcherbatov
Moved sql_parser_create and sql_parser_destroy to sql.h to
use them not only in DDL.
Removed SELECTTRACE_ENABLED macro with conditional fields from
struct Parse to prevent different object sizes across the project.
Part of #3272.
---
src/box/sql.h | 17 +++++++++++++++++
src/box/sql/prepare.c | 9 +++++++++
src/box/sql/sqliteInt.h | 25 -------------------------
3 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/src/box/sql.h b/src/box/sql.h
index 3c26492..ecaf431 100644
--- a/src/box/sql.h
+++ b/src/box/sql.h
@@ -175,6 +175,23 @@ sql_ephemeral_space_def_new(struct Parse *parser, const char *name);
int
sql_table_def_rebuild(struct sqlite3 *db, struct Table *table);
+/**
+ * Initialize a new parser object.
+ * A number of service allocations are performed on the region,
+ * which is also cleared in the destroy function.
+ * @param parser object to initialize.
+ * @param db SQLite object.
+ */
+void
+sql_parser_create(struct Parse *parser, struct sqlite3 *db);
+
+/**
+ * Release the parser object resources.
+ * @param parser object to release.
+ */
+void
+sql_parser_destroy(struct Parse *parser);
+
#if defined(__cplusplus)
} /* extern "C" { */
#endif
diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
index 8dc433f..8d94642 100644
--- a/src/box/sql/prepare.c
+++ b/src/box/sql/prepare.c
@@ -433,6 +433,15 @@ sqlite3_prepare_v2(sqlite3 * db, /* Database handle. */
}
void
+sql_parser_create(struct Parse *parser, sqlite3 *db)
+{
+ memset(parser, 0, sizeof(struct Parse));
+ parser->db = db;
+ struct region *region = &fiber()->gc;
+ parser->region_initial_size = region_used(region);
+}
+
+void
sql_parser_destroy(Parse *parser)
{
assert(parser != NULL);
diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
index 950409d..abf1543 100644
--- a/src/box/sql/sqliteInt.h
+++ b/src/box/sql/sqliteInt.h
@@ -2903,10 +2903,8 @@ struct Parse {
Token constraintName; /* Name of the constraint currently being parsed */
int regRoot; /* Register holding root page number for new objects */
int nMaxArg; /* Max args passed to user function by sub-program */
-#ifdef SELECTTRACE_ENABLED
int nSelect; /* Number of SELECT statements seen */
int nSelectIndent; /* How far to indent SELECTTRACE() output */
-#endif
Parse *pToplevel; /* Parse structure for main program (or NULL) */
Table *pTriggerTab; /* Table triggers are being coded for */
u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
@@ -4537,27 +4535,4 @@ extern int sqlite3InitDatabase(sqlite3 * db);
enum on_conflict_action
table_column_nullable_action(struct Table *tab, uint32_t column);
-/**
- * Initialize a new parser object.
- * A number of service allocations are performed on the region, which is also
- * cleared in the destroy function.
- * @param parser object to initialize.
- * @param db SQLite object.
- */
-static inline void
-sql_parser_create(struct Parse *parser, sqlite3 *db)
-{
- memset(parser, 0, sizeof(struct Parse));
- parser->db = db;
- struct region *region = &fiber()->gc;
- parser->region_initial_size = region_used(region);
-}
-
-/**
- * Release the parser object resources.
- * @param parser object to release.
- */
-void
-sql_parser_destroy(struct Parse *parser);
-
#endif /* SQLITEINT_H */
--
2.7.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] [PATCH v1 2/2] sql: use own region in Parser
2018-05-31 15:01 [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h Kirill Shcherbatov
@ 2018-05-31 15:01 ` Kirill Shcherbatov
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-31 15:41 ` [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser Vladislav Shpilevoy
2018-05-31 15:50 ` Kirill Shcherbatov
3 siblings, 1 reply; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:01 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy, Kirill Shcherbatov
Fixes #3438.
---
src/box/sql/build.c | 6 +++---
src/box/sql/prepare.c | 6 ++----
src/box/sql/select.c | 2 +-
src/box/sql/sqliteInt.h | 4 ++--
src/box/sql/tokenize.c | 10 ++++++----
5 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/box/sql/build.c b/src/box/sql/build.c
index e376295..4e77084 100644
--- a/src/box/sql/build.c
+++ b/src/box/sql/build.c
@@ -636,7 +636,7 @@ sql_field_retrieve(Parse *parser, Table *table, uint32_t id)
if (id >= table->def->exact_field_count) {
uint32_t columns_new = table->def->exact_field_count;
columns_new = (columns_new > 0) ? 2 * columns_new : 1;
- struct region *region = &fiber()->gc;
+ struct region *region = &parser->region;
field = region_alloc(region, columns_new *
sizeof(table->def->fields[0]));
if (field == NULL) {
@@ -698,7 +698,7 @@ sqlite3AddColumn(Parse * pParse, Token * pName, Token * pType)
if (sql_field_retrieve(pParse, p,
(uint32_t) p->def->field_count) == NULL)
return;
- struct region *region = &fiber()->gc;
+ struct region *region = &pParse->region;
z = region_alloc(region, pName->n + 1);
if (z == NULL) {
diag_set(OutOfMemory, pName->n + 1,
@@ -906,7 +906,7 @@ sqlite3AddDefaultValue(Parse * pParse, ExprSpan * pSpan)
assert(p->def != NULL);
struct field_def *field =
&p->def->fields[p->def->field_count - 1];
- struct region *region = &fiber()->gc;
+ struct region *region = &pParse->region;
uint32_t default_length = (int)(pSpan->zEnd - pSpan->zStart);
field->default_value = region_alloc(region,
default_length + 1);
diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
index 8d94642..e796077 100644
--- a/src/box/sql/prepare.c
+++ b/src/box/sql/prepare.c
@@ -437,8 +437,7 @@ sql_parser_create(struct Parse *parser, sqlite3 *db)
{
memset(parser, 0, sizeof(struct Parse));
parser->db = db;
- struct region *region = &fiber()->gc;
- parser->region_initial_size = region_used(region);
+ region_create(&parser->region, &cord()->slabc);
}
void
@@ -454,6 +453,5 @@ sql_parser_destroy(Parse *parser)
db->lookaside.bDisable -= parser->disableLookaside;
}
parser->disableLookaside = 0;
- struct region *region = &fiber()->gc;
- region_truncate(region, parser->region_initial_size);
+ region_destroy(&parser->region);
}
diff --git a/src/box/sql/select.c b/src/box/sql/select.c
index 5fbcbaf..b26565b 100644
--- a/src/box/sql/select.c
+++ b/src/box/sql/select.c
@@ -1762,7 +1762,7 @@ sqlite3ColumnsFromExprList(Parse * parse, ExprList * expr_list, Table *table)
* names for existing table.
*/
assert(table->def->fields == NULL);
- struct region *region = &fiber()->gc;
+ struct region *region = &parse->region;
table->def->fields =
region_alloc(region, nCol * sizeof(table->def->fields[0]));
if (table->def->fields == NULL) {
diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
index abf1543..4275f72 100644
--- a/src/box/sql/sqliteInt.h
+++ b/src/box/sql/sqliteInt.h
@@ -2913,8 +2913,8 @@ struct Parse {
u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */
u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */
u8 disableTriggers; /* True to disable triggers */
- /** Region size at the Parser launch. */
- size_t region_initial_size;
+ /* Region to make SQL temp allocations. */
+ struct region region;
/**************************************************************************
* Fields above must be initialized to zero. The fields that follow,
diff --git a/src/box/sql/tokenize.c b/src/box/sql/tokenize.c
index fc4fe25..1fd8b29 100644
--- a/src/box/sql/tokenize.c
+++ b/src/box/sql/tokenize.c
@@ -544,16 +544,18 @@ sql_expr_compile(sqlite3 *db, const char *expr, struct Expr **result)
{
const char *outer = "SELECT ";
int len = strlen(outer) + strlen(expr);
- char *stmt = (char *) region_alloc(&fiber()->gc, len + 1);
+
+ struct Parse parser;
+ sql_parser_create(&parser, db);
+ parser.parse_only = true;
+
+ char *stmt = (char *)region_alloc(&parser.region, len + 1);
if (stmt == NULL) {
diag_set(OutOfMemory, len + 1, "region_alloc", "stmt");
return -1;
}
sprintf(stmt, "%s%s", outer, expr);
- struct Parse parser;
- sql_parser_create(&parser, db);
- parser.parse_only = true;
char *unused;
if (sqlite3RunParser(&parser, stmt, &unused) != SQLITE_OK) {
diag_set(ClientError, ER_SQL_EXECUTE, expr);
--
2.7.4
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h Kirill Shcherbatov
@ 2018-05-31 15:41 ` Vladislav Shpilevoy
2018-05-31 15:49 ` Kirill Shcherbatov
0 siblings, 1 reply; 11+ messages in thread
From: Vladislav Shpilevoy @ 2018-05-31 15:41 UTC (permalink / raw)
To: Kirill Shcherbatov, tarantool-patches
Thanks for the patch!
> sql: remove parser construct, destruct to sql.h
What is construct/destruct? It is verbs. How can you remove them?
Please, use sql_parser_create/destroy, and do not use 'remove' word here.
It means rather delete something than move.
On 31/05/2018 18:01, Kirill Shcherbatov wrote:
> Moved sql_parser_create and sql_parser_destroy to sql.h to
> use them not only in DDL.
> Removed SELECTTRACE_ENABLED macro with conditional fields from
> struct Parse to prevent different object sizes across the project.
>
> Part of #3272.
> ---
> src/box/sql.h | 17 +++++++++++++++++
> src/box/sql/prepare.c | 9 +++++++++
> src/box/sql/sqliteInt.h | 25 -------------------------
> 3 files changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/src/box/sql.h b/src/box/sql.h
> index 3c26492..ecaf431 100644
> --- a/src/box/sql.h
> +++ b/src/box/sql.h
> @@ -175,6 +175,23 @@ sql_ephemeral_space_def_new(struct Parse *parser, const char *name);
> int
> sql_table_def_rebuild(struct sqlite3 *db, struct Table *table);
>
> +/**
> + * Initialize a new parser object.
> + * A number of service allocations are performed on the region,
> + * which is also cleared in the destroy function.
> + * @param parser object to initialize.
> + * @param db SQLite object.
> + */
> +void
> +sql_parser_create(struct Parse *parser, struct sqlite3 *db);
> +
> +/**
> + * Release the parser object resources.
> + * @param parser object to release.
> + */
> +void
> +sql_parser_destroy(struct Parse *parser);
> +
> #if defined(__cplusplus)
> } /* extern "C" { */
> #endif
> diff --git a/src/box/sql/prepare.c b/src/box/sql/prepare.c
> index 8dc433f..8d94642 100644
> --- a/src/box/sql/prepare.c
> +++ b/src/box/sql/prepare.c
> @@ -433,6 +433,15 @@ sqlite3_prepare_v2(sqlite3 * db, /* Database handle. */
> }
>
> void
> +sql_parser_create(struct Parse *parser, sqlite3 *db)
> +{
> + memset(parser, 0, sizeof(struct Parse));
> + parser->db = db;
> + struct region *region = &fiber()->gc;
> + parser->region_initial_size = region_used(region);
> +}
> +
> +void
> sql_parser_destroy(Parse *parser)
> {
> assert(parser != NULL);
> diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
> index 950409d..abf1543 100644
> --- a/src/box/sql/sqliteInt.h
> +++ b/src/box/sql/sqliteInt.h
> @@ -2903,10 +2903,8 @@ struct Parse {
> Token constraintName; /* Name of the constraint currently being parsed */
> int regRoot; /* Register holding root page number for new objects */
> int nMaxArg; /* Max args passed to user function by sub-program */
> -#ifdef SELECTTRACE_ENABLED
> int nSelect; /* Number of SELECT statements seen */
> int nSelectIndent; /* How far to indent SELECTTRACE() output */
> -#endif
> Parse *pToplevel; /* Parse structure for main program (or NULL) */
> Table *pTriggerTab; /* Table triggers are being coded for */
> u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
> @@ -4537,27 +4535,4 @@ extern int sqlite3InitDatabase(sqlite3 * db);
> enum on_conflict_action
> table_column_nullable_action(struct Table *tab, uint32_t column);
>
> -/**
> - * Initialize a new parser object.
> - * A number of service allocations are performed on the region, which is also
> - * cleared in the destroy function.
> - * @param parser object to initialize.
> - * @param db SQLite object.
> - */
> -static inline void
> -sql_parser_create(struct Parse *parser, sqlite3 *db)
> -{
> - memset(parser, 0, sizeof(struct Parse));
> - parser->db = db;
> - struct region *region = &fiber()->gc;
> - parser->region_initial_size = region_used(region);
> -}
> -
> -/**
> - * Release the parser object resources.
> - * @param parser object to release.
> - */
> -void
> -sql_parser_destroy(struct Parse *parser);
> -
> #endif /* SQLITEINT_H */
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 2/2] sql: use own region in Parser
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 2/2] sql: use own region in Parser Kirill Shcherbatov
@ 2018-05-31 15:41 ` Vladislav Shpilevoy
2018-05-31 15:49 ` Kirill Shcherbatov
0 siblings, 1 reply; 11+ messages in thread
From: Vladislav Shpilevoy @ 2018-05-31 15:41 UTC (permalink / raw)
To: tarantool-patches, Kirill Shcherbatov
Thanks for the patch! See 2 comments below.
On 31/05/2018 18:01, Kirill Shcherbatov wrote:
> diff --git a/src/box/sql/select.c b/src/box/sql/select.c
> index 5fbcbaf..b26565b 100644
> --- a/src/box/sql/select.c
> +++ b/src/box/sql/select.c
> @@ -1762,7 +1762,7 @@ sqlite3ColumnsFromExprList(Parse * parse, ExprList * expr_list, Table *table)
> * names for existing table.
> */
> assert(table->def->fields == NULL);
> - struct region *region = &fiber()->gc;
> + struct region *region = &parse->region;
> table->def->fields =
> region_alloc(region, nCol * sizeof(table->def->fields[0]));
> if (table->def->fields == NULL) {
> diff --git a/src/box/sql/sqliteInt.h b/src/box/sql/sqliteInt.h
> index abf1543..4275f72 100644
> --- a/src/box/sql/sqliteInt.h
> +++ b/src/box/sql/sqliteInt.h
> @@ -2913,8 +2913,8 @@ struct Parse {
> u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */
> u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */
> u8 disableTriggers; /* True to disable triggers */
> - /** Region size at the Parser launch. */
> - size_t region_initial_size;
> + /* Region to make SQL temp allocations. */
1. Please, use /** for out of a function body comments.
> + struct region region;
>
> /**************************************************************************
> * Fields above must be initialized to zero. The fields that follow,
2. Did you check it works now on the Kirill Yu. patch? (with additional field in
space options).
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser
2018-05-31 15:01 [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 2/2] sql: use own region in Parser Kirill Shcherbatov
@ 2018-05-31 15:41 ` Vladislav Shpilevoy
2018-05-31 15:50 ` Kirill Shcherbatov
3 siblings, 0 replies; 11+ messages in thread
From: Vladislav Shpilevoy @ 2018-05-31 15:41 UTC (permalink / raw)
To: tarantool-patches, Kirill Shcherbatov
Hello. Thanks for the patch!
On 31/05/2018 18:01, Kirill Shcherbatov wrote:
> Branch: http://github.com/tarantool/tarantool/tree/kshch/gh-3438-parser-own-region
> Issue: https://github.com/tarantool/tarantool/issues/3438
Please, provide the patchset description.
>
> Kirill Shcherbatov (2):
> sql: remove parser construct, destruct to sql.h
> sql: use own region in Parser
>
> src/box/sql.h | 17 +++++++++++++++++
> src/box/sql/build.c | 6 +++---
> src/box/sql/prepare.c | 11 +++++++++--
> src/box/sql/select.c | 2 +-
> src/box/sql/sqliteInt.h | 29 ++---------------------------
> src/box/sql/tokenize.c | 10 ++++++----
> 6 files changed, 38 insertions(+), 37 deletions(-)
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 2/2] sql: use own region in Parser
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
@ 2018-05-31 15:49 ` Kirill Shcherbatov
0 siblings, 0 replies; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:49 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy
> 1. Please, use /** for out of a function body comments.
- /* Region to make SQL temp allocations. */
+ /** Region to make SQL temp allocations. */
> 2. Did you check it works now on the Kirill Yu. patch? (with additional field in
> space options).
Yes, I did.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
@ 2018-05-31 15:49 ` Kirill Shcherbatov
0 siblings, 0 replies; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:49 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy
> Please, use sql_parser_create/destroy, and do not use 'remove' word here.
> It means rather delete something than move.
sql: move sql_parser_create/destroy to sql.h
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser
2018-05-31 15:01 [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser Kirill Shcherbatov
` (2 preceding siblings ...)
2018-05-31 15:41 ` [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser Vladislav Shpilevoy
@ 2018-05-31 15:50 ` Kirill Shcherbatov
2018-05-31 15:55 ` Vladislav Shpilevoy
3 siblings, 1 reply; 11+ messages in thread
From: Kirill Shcherbatov @ 2018-05-31 15:50 UTC (permalink / raw)
To: tarantool-patches; +Cc: v.shpilevoy
Moved sql_parser_create and sql_parser_destroy to sql.h to
use them not only in DDL.
Removed SELECTTRACE_ENABLED macro with conditional fields from
struct Parse to prevent different object sizes across the project.
Start use own region for parser to avoid unexpected memory releases.
On 31.05.2018 18:01, Kirill Shcherbatov wrote:
> Branch: http://github.com/tarantool/tarantool/tree/kshch/gh-3438-parser-own-region
> Issue: https://github.com/tarantool/tarantool/issues/3438
>
> Kirill Shcherbatov (2):
> sql: remove parser construct, destruct to sql.h
> sql: use own region in Parser
>
> src/box/sql.h | 17 +++++++++++++++++
> src/box/sql/build.c | 6 +++---
> src/box/sql/prepare.c | 11 +++++++++--
> src/box/sql/select.c | 2 +-
> src/box/sql/sqliteInt.h | 29 ++---------------------------
> src/box/sql/tokenize.c | 10 ++++++----
> 6 files changed, 38 insertions(+), 37 deletions(-)
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser
2018-05-31 15:50 ` Kirill Shcherbatov
@ 2018-05-31 15:55 ` Vladislav Shpilevoy
2018-05-31 17:43 ` Kirill Yukhin
0 siblings, 1 reply; 11+ messages in thread
From: Vladislav Shpilevoy @ 2018-05-31 15:55 UTC (permalink / raw)
To: tarantool-patches, Kirill Shcherbatov
LGTM.
On 31/05/2018 18:50, Kirill Shcherbatov wrote:
> Moved sql_parser_create and sql_parser_destroy to sql.h to
> use them not only in DDL.
> Removed SELECTTRACE_ENABLED macro with conditional fields from
> struct Parse to prevent different object sizes across the project.
> Start use own region for parser to avoid unexpected memory releases.
>
> On 31.05.2018 18:01, Kirill Shcherbatov wrote:
>> Branch: http://github.com/tarantool/tarantool/tree/kshch/gh-3438-parser-own-region
>> Issue: https://github.com/tarantool/tarantool/issues/3438
>>
>> Kirill Shcherbatov (2):
>> sql: remove parser construct, destruct to sql.h
>> sql: use own region in Parser
>>
>> src/box/sql.h | 17 +++++++++++++++++
>> src/box/sql/build.c | 6 +++---
>> src/box/sql/prepare.c | 11 +++++++++--
>> src/box/sql/select.c | 2 +-
>> src/box/sql/sqliteInt.h | 29 ++---------------------------
>> src/box/sql/tokenize.c | 10 ++++++----
>> 6 files changed, 38 insertions(+), 37 deletions(-)
>>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser
2018-05-31 15:55 ` Vladislav Shpilevoy
@ 2018-05-31 17:43 ` Kirill Yukhin
0 siblings, 0 replies; 11+ messages in thread
From: Kirill Yukhin @ 2018-05-31 17:43 UTC (permalink / raw)
To: tarantool-patches; +Cc: Kirill Shcherbatov
Hello,
On 31 мая 18:55, Vladislav Shpilevoy wrote:
> LGTM.
I've checked the patch-set into 2.0 branch.
--
Regards, Kirill Yukhin
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-05-31 17:43 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-31 15:01 [tarantool-patches] [PATCH v1 0/2] sql: Create special region for parser Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 1/2] sql: remove parser construct, destruct to sql.h Kirill Shcherbatov
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-31 15:49 ` Kirill Shcherbatov
2018-05-31 15:01 ` [tarantool-patches] [PATCH v1 2/2] sql: use own region in Parser Kirill Shcherbatov
2018-05-31 15:41 ` [tarantool-patches] " Vladislav Shpilevoy
2018-05-31 15:49 ` Kirill Shcherbatov
2018-05-31 15:41 ` [tarantool-patches] Re: [PATCH v1 0/2] sql: Create special region for parser Vladislav Shpilevoy
2018-05-31 15:50 ` Kirill Shcherbatov
2018-05-31 15:55 ` Vladislav Shpilevoy
2018-05-31 17:43 ` Kirill Yukhin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox