[tarantool-patches] Re: [PATCH v2 5/7] sql: refactor sql_trigger_step_allocate to set diag

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Tue Mar 26 20:08:56 MSK 2019


Thanks for the fixes!

Please, look at the diff below and on the branch.

=============================================================

commit 0acf8d462df1c5c095d8a1e52b90ac5c27209c34
Author: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
Date:   Mon Mar 25 17:13:44 2019 +0300

     Review fixes

diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index 95f489957..6c01deea4 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -4113,9 +4113,10 @@ void sqlDeleteTriggerStep(sql *, TriggerStep *);
   * in body of a TRIGGER.
   *
   * @param db The database connection.
- * @param select The SELECT statement to process.
+ * @param select The SELECT statement to process. Deleted on
+ *        error.
   * @retval Not NULL TriggerStep object on success.
- * @retval NULL Otherwise. The diag message is set.
+ * @retval NULL Error. The diag message is set.
   */
  struct TriggerStep *
  sql_trigger_select_step(struct sql *db, struct Select *select);
@@ -4127,12 +4128,13 @@ sql_trigger_select_step(struct sql *db, struct Select *select);
   *
   * @param db The database connection.
   * @param table_name Name of the table into which we insert.
- * @param column_list List of columns in table to insert into.
- * @param select The SELECT statement that supplies values.
- * @param orconf The conflict algorithm
- *               (ON_CONFLICT_ACTION_ABORT, _REPLACE, etc.).
+ * @param column_list List of columns in table to insert into. Is
+ *        deleted on error.
+ * @param select The SELECT statement that supplies values. Is
+ *        deleted anyway.
+ * @param orconf A conflict processing algorithm.
   * @retval Not NULL TriggerStep object on success.
- * @retval NULL Otherwise. The diag message is set.
+ * @retval NULL Error. The diag message is set.
   */
  struct TriggerStep *
  sql_trigger_insert_step(struct sql *db, struct Token *table_name,
@@ -4147,16 +4149,16 @@ sql_trigger_insert_step(struct sql *db, struct Token *table_name,
   * @param db The database connection.
   * @param table_name Name of the table to be updated.
   * @param new_list The SET clause: list of column and new values.
- * @param where The WHERE clause.
- * @param orconf The conflict algorithm
- *               (ON_CONFLICT_ACTION_ABORT, _REPLACE, etc.).
+ *        Is deleted anyway.
+ * @param where The WHERE clause. Is deleted anyway.
+ * @param orconf A conflict processing algorithm.
   * @retval Not NULL TriggerStep object on success.
- * @retval NULL Otherwise. The diag message is set.
+ * @retval NULL Error. The diag message is set.
   */
  struct TriggerStep *
  sql_trigger_update_step(struct sql *db, struct Token *table_name,
  		        struct ExprList *new_list, struct Expr *where,
-			u8 orconf);
+			enum on_conflict_action orconf);
  
  /**
   * Construct a trigger step that implements a DELETE statement.
@@ -4165,9 +4167,9 @@ sql_trigger_update_step(struct sql *db, struct Token *table_name,
   *
   * @param db The database connection.
   * @param table_name The table from which rows are deleted.
- * @param where The WHERE clause.
+ * @param where The WHERE clause. Is deleted anyway.
   * @retval Not NULL TriggerStep object on success.
- * @retval NULL Otherwise. The diag message is set.
+ * @retval NULL Error. The diag message is set.
   */
  struct TriggerStep *
  sql_trigger_delete_step(struct sql *db, struct Token *table_name,
diff --git a/src/box/sql/trigger.c b/src/box/sql/trigger.c
index 544ba2a5a..20838f51b 100644
--- a/src/box/sql/trigger.c
+++ b/src/box/sql/trigger.c
@@ -274,7 +274,7 @@ sql_trigger_select_step(struct sql *db, struct Select *select)
   * @param op Trigger opcode.
   * @param target_name The target name token.
   * @retval Not NULL TriggerStep object on success.
- * @retval NULL otherwise. The diag message is set.
+ * @retval NULL Otherwise. The diag message is set.
   */
  static struct TriggerStep *
  sql_trigger_step_new(struct sql *db, u8 op, struct Token *target_name)
@@ -298,7 +298,7 @@ sql_trigger_insert_step(struct sql *db, struct Token *table_name,
  			struct IdList *column_list, struct Select *select,
  			enum on_conflict_action orconf)
  {
-	assert(select != 0 || db->mallocFailed);
+	assert(select != NULL || db->mallocFailed);
  	struct TriggerStep *trigger_step =
  		sql_trigger_step_new(db, TK_INSERT, table_name);
  	if (trigger_step != NULL) {
@@ -316,15 +316,14 @@ sql_trigger_insert_step(struct sql *db, struct Token *table_name,
  struct TriggerStep *
  sql_trigger_update_step(struct sql *db, struct Token *table_name,
  		        struct ExprList *new_list, struct Expr *where,
-			u8 orconf)
+			enum on_conflict_action orconf)
  {
  	struct TriggerStep *trigger_step =
  		sql_trigger_step_new(db, TK_UPDATE, table_name);
  	if (trigger_step != NULL) {
  		trigger_step->pExprList =
  		    sql_expr_list_dup(db, new_list, EXPRDUP_REDUCE);
-		trigger_step->pWhere =
-		    sqlExprDup(db, where, EXPRDUP_REDUCE);
+		trigger_step->pWhere = sqlExprDup(db, where, EXPRDUP_REDUCE);
  		trigger_step->orconf = orconf;
  	}
  	sql_expr_list_delete(db, new_list);
@@ -339,8 +338,7 @@ sql_trigger_delete_step(struct sql *db, struct Token *table_name,
  	struct TriggerStep *trigger_step =
  		sql_trigger_step_new(db, TK_DELETE, table_name);
  	if (trigger_step != NULL) {
-		trigger_step->pWhere =
-		    sqlExprDup(db, where, EXPRDUP_REDUCE);
+		trigger_step->pWhere = sqlExprDup(db, where, EXPRDUP_REDUCE);
  		trigger_step->orconf = ON_CONFLICT_ACTION_DEFAULT;
  	}
  	sql_expr_delete(db, where, false);




More information about the Tarantool-patches mailing list