Tarantool development patches archive
 help / color / mirror / Atom feed
From: Nikita Pettik <korablev@tarantool.org>
To: tarantool-patches@freelists.org
Cc: v.shpilevoy@tarantool.org, kostja@tarantool.org,
	alexander.turenko@tarantool.org,
	Nikita Pettik <korablev@tarantool.org>
Subject: [tarantool-patches] [PATCH 2/8] port: move struct port_sql to box/port.h
Date: Tue, 27 Aug 2019 16:34:23 +0300	[thread overview]
Message-ID: <31f265719574074dbabca4ced925ed1008bb49eb.1566907520.git.korablev@tarantool.org> (raw)
In-Reply-To: <cover.1566907519.git.korablev@tarantool.org>
In-Reply-To: <cover.1566907519.git.korablev@tarantool.org>

We are going to use port_sql_create() in box/lua/execute.c so to be able
to call it let's make port_sql_create() non-static and move its
declaration to box/port.h alongside with struct port_sql (since
box/port.h already contains struct port_tuple and struct port_lua).

No functional changes are provided.

Needed for #3292
---
 src/box/execute.c   |  2 +-
 src/box/execute.h   | 20 --------------------
 src/box/port.h      | 24 ++++++++++++++++++++++++
 src/lib/core/port.h |  1 +
 4 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/src/box/execute.c b/src/box/execute.c
index 68e94e442..a6454d5bb 100644
--- a/src/box/execute.c
+++ b/src/box/execute.c
@@ -112,7 +112,7 @@ const struct port_vtab port_sql_vtab = {
 	/* .destroy = */ port_sql_destroy,
 };
 
-static void
+void
 port_sql_create(struct port *port, struct sql_stmt *stmt)
 {
 	port_tuple_create(port);
diff --git a/src/box/execute.h b/src/box/execute.h
index a2fd4d1b7..1995c43d5 100644
--- a/src/box/execute.h
+++ b/src/box/execute.h
@@ -69,26 +69,6 @@ sql_prepare_and_execute(const char *sql, int len, const struct sql_bind *bind,
 			uint32_t bind_count, struct port *port,
 			struct region *region);
 
-/**
- * Port implementation that is used to store SQL responses and
- * output them to obuf or Lua. This port implementation is
- * inherited from the port_tuple structure. This allows us to use
- * this structure in the port_tuple methods instead of port_tuple
- * itself.
- *
- * The methods of port_tuple are called via explicit access to
- * port_tuple_vtab just like C++ does with BaseClass::method, when
- * it is called in a child method.
- */
-struct port_sql {
-	/* port_tuple to inherit from. */
-	struct port_tuple port_tuple;
-	/* Prepared SQL statement. */
-	struct sql_stmt *stmt;
-};
-
-extern const struct port_vtab port_sql_vtab;
-
 #if defined(__cplusplus)
 } /* extern "C" { */
 #endif
diff --git a/src/box/port.h b/src/box/port.h
index a7f5d81bd..0d2cc7e84 100644
--- a/src/box/port.h
+++ b/src/box/port.h
@@ -119,6 +119,30 @@ port_init(void);
 void
 port_free(void);
 
+/**
+ * Port implementation that is used to store SQL responses and
+ * output them to obuf or Lua. This port implementation is
+ * inherited from the port_tuple structure. This allows us to use
+ * this structure in the port_tuple methods instead of port_tuple
+ * itself.
+ *
+ * The methods of port_tuple are called via explicit access to
+ * port_tuple_vtab just like C++ does with BaseClass::method, when
+ * it is called in a child method.
+ */
+struct port_sql {
+	/* port_tuple to inherit from. */
+	struct port_tuple port_tuple;
+	/* Prepared SQL statement. */
+	struct sql_stmt *stmt;
+};
+
+extern const struct port_vtab port_sql_vtab;
+
+/** Create instance of SQL port using given attributes. */
+void
+port_sql_create(struct port *port, struct sql_stmt *stmt);
+
 #if defined(__cplusplus)
 } /* extern "C" */
 #endif /* defined __cplusplus */
diff --git a/src/lib/core/port.h b/src/lib/core/port.h
index abe21aa53..2b1ccaae3 100644
--- a/src/lib/core/port.h
+++ b/src/lib/core/port.h
@@ -39,6 +39,7 @@ extern "C" {
 
 struct obuf;
 struct lua_State;
+struct sql_stmt;
 struct port;
 
 /**
-- 
2.15.1

  parent reply	other threads:[~2019-08-27 13:34 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-27 13:34 [tarantool-patches] [PATCH 0/8] rfc: introduce dry-run execution of SQL queries Nikita Pettik
2019-08-27 13:34 ` [tarantool-patches] [PATCH 1/8] port: increase padding of struct port Nikita Pettik
2019-08-28  9:33   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` Nikita Pettik [this message]
2019-08-28  9:33   ` [tarantool-patches] Re: [PATCH 2/8] port: move struct port_sql to box/port.h Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` [tarantool-patches] [PATCH 3/8] sql: remove sql_prepare_v2() Nikita Pettik
2019-08-28  9:33   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` [tarantool-patches] [PATCH 4/8] sql: refactor sql_prepare() and sqlPrepare() Nikita Pettik
2019-08-28  9:35   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` [tarantool-patches] [PATCH 5/8] sql: move sql_prepare() declaration to box/execute.h Nikita Pettik
2019-08-28  9:35   ` [tarantool-patches] " Konstantin Osipov
2019-08-27 13:34 ` [tarantool-patches] [PATCH 6/8] refactoring: use sql_prepare() and sql_execute() in tx_process_sql() Nikita Pettik
2019-08-28  9:37   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` [tarantool-patches] [PATCH 7/8] netbox: allow passing options to :execute() Nikita Pettik
2019-08-28  9:38   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-27 13:34 ` [tarantool-patches] [PATCH 8/8] sql: introduce dry-run execution Nikita Pettik
2019-08-28  9:39   ` [tarantool-patches] " Konstantin Osipov
2019-08-29 20:46   ` Vladislav Shpilevoy
2019-08-28  9:31 ` [tarantool-patches] Re: [PATCH 0/8] rfc: introduce dry-run execution of SQL queries Konstantin Osipov
2019-08-29 20:46 ` Vladislav Shpilevoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=31f265719574074dbabca4ced925ed1008bb49eb.1566907520.git.korablev@tarantool.org \
    --to=korablev@tarantool.org \
    --cc=alexander.turenko@tarantool.org \
    --cc=kostja@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [tarantool-patches] [PATCH 2/8] port: move struct port_sql to box/port.h' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox