Skip to content

Commit 4171234

Browse files
WL#11960: Methods refactoring
Completing the session object
1 parent 4b273a3 commit 4171234

14 files changed

+513
-649
lines changed

mysqlx_collection.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,8 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_collection, getSchema)
322322

323323
if(session != nullptr) {
324324
MYSQLND_STRING& schema_name{ object->collection->data->schema->data->schema_name };
325-
XMYSQLND_SCHEMA * schema = session->m->create_schema_object(
326-
session, mnd_str2c(schema_name));
325+
XMYSQLND_SCHEMA * schema = session->create_schema_object(
326+
mnd_str2c(schema_name));
327327
if (schema) {
328328
mysqlx_new_schema(return_value, schema);
329329
} else {

mysqlx_schema.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_schema, drop)
242242
auto session = object->schema->data->session;
243243
const MYSQLND_CSTRING schema_name = mnd_str2c(object->schema->data->schema_name);
244244

245-
RETVAL_BOOL(session && PASS == session->m->drop_db(session, schema_name));
245+
RETVAL_BOOL(session && PASS == session->drop_db(schema_name));
246246
}
247247

248248
DBG_VOID_RETURN;

mysqlx_session.cc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,8 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, getServerVersion)
167167
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
168168

169169
if (XMYSQLND_SESSION session = object->session) {
170-
RETVAL_LONG(session->m->get_server_version(session));
171-
mysqlx_throw_exception_from_session_if_needed(session->data);
170+
RETVAL_LONG(session->get_server_version());
171+
mysqlx_throw_exception_from_session_if_needed(session->get_data());
172172
} else {
173173
RETVAL_FALSE;
174174
}
@@ -191,8 +191,8 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, getClientId)
191191
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
192192

193193
if (XMYSQLND_SESSION session = object->session) {
194-
RETVAL_LONG(session->data->get_client_id());
195-
mysqlx_throw_exception_from_session_if_needed(session->data);
194+
RETVAL_LONG(session->get_data()->get_client_id());
195+
mysqlx_throw_exception_from_session_if_needed(session->get_data());
196196
} else {
197197
RETVAL_FALSE;
198198
}
@@ -252,7 +252,7 @@ get_schemas_handler_on_row(void * context,
252252
}
253253
if (Z_TYPE_P(ctx->list) == IS_ARRAY) {
254254
const MYSQLND_CSTRING schema_name = { Z_STRVAL(row[0]), Z_STRLEN(row[0]) };
255-
XMYSQLND_SCHEMA * schema = session->m->create_schema_object(session, schema_name);
255+
XMYSQLND_SCHEMA * schema = session->create_schema_object(schema_name);
256256
if (schema) {
257257
zval zv;
258258
ZVAL_UNDEF(&zv);
@@ -311,7 +311,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, getSchemas)
311311

312312
ZVAL_UNDEF(&list);
313313

314-
if (PASS == session->m->query_cb(session, namespace_sql, list_query, var_binder, on_result_start, on_row, on_warning, on_error, on_result_end, on_statement_ok)) {
314+
if (PASS == session->query_cb(namespace_sql, list_query, var_binder, on_result_start, on_row, on_warning, on_error, on_result_end, on_statement_ok)) {
315315
ZVAL_COPY_VALUE(return_value, &list);
316316
} else {
317317
zval_dtor(&list);
@@ -341,7 +341,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, getSchema)
341341

342342
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
343343
if (XMYSQLND_SESSION session = object->session) {
344-
XMYSQLND_SCHEMA * schema = session->m->create_schema_object(session, schema_name.to_nd_cstr());
344+
XMYSQLND_SCHEMA * schema = session->create_schema_object(schema_name.to_nd_cstr());
345345
if (schema) {
346346
mysqlx_new_schema(return_value, schema);
347347
} else {
@@ -423,7 +423,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, listClients)
423423

424424
ZVAL_UNDEF(&list);
425425

426-
if (PASS == session->m->query_cb(session, namespace_xplugin, list_query, var_binder, on_result_start, on_row, on_warning, on_error, on_result_end, on_statement_ok)) {
426+
if (PASS == session->query_cb(namespace_xplugin, list_query, var_binder, on_result_start, on_row, on_warning, on_error, on_result_end, on_statement_ok)) {
427427
ZVAL_COPY_VALUE(return_value, &list);
428428
} else {
429429
zval_dtor(&list);
@@ -446,7 +446,7 @@ mysqlx_execute_session_query(XMYSQLND_SESSION session,
446446
const unsigned int argc,
447447
const zval * args)
448448
{
449-
XMYSQLND_STMT * stmt = session->m->create_statement_object(session);
449+
XMYSQLND_STMT * stmt = session->create_statement_object(session);
450450
DBG_ENTER("mysqlx_execute_session_query");
451451

452452
if (stmt) {
@@ -543,7 +543,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, sql)
543543
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
544544

545545
if ((session = object->session)) {
546-
XMYSQLND_STMT * const stmt = session->m->create_statement_object(session);
546+
XMYSQLND_STMT * const stmt = session->create_statement_object(session);
547547
if (stmt) {
548548
mysqlx_new_sql_stmt(return_value, stmt, namespace_sql, query);
549549
if (Z_TYPE_P(return_value) == IS_NULL) {
@@ -607,8 +607,8 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, createSchema)
607607
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
608608
if (XMYSQLND_SESSION session = object->session) {
609609
XMYSQLND_SCHEMA* schema{nullptr};
610-
if (PASS == session->m->create_db(session, schema_name) &&
611-
(schema = session->m->create_schema_object(session, schema_name)))
610+
if (PASS == session->create_db(schema_name) &&
611+
(schema = session->create_schema_object( schema_name)))
612612
{
613613
DBG_INF_FMT("schema=%p", schema);
614614
mysqlx_new_schema(return_value, schema);
@@ -643,7 +643,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, dropSchema)
643643
RETVAL_FALSE;
644644
try {
645645
auto session = data_object.session;
646-
if (PASS == session->m->drop_db(session, schema_name.to_nd_cstr())) {
646+
if (PASS == session->drop_db(schema_name.to_nd_cstr())) {
647647
RETVAL_TRUE;
648648
} else {
649649
util::log_warning("cannot drop schema '" + schema_name.to_string() + "'");
@@ -910,7 +910,7 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_session, close)
910910

911911
MYSQLX_FETCH_SESSION_FROM_ZVAL(object, object_zv);
912912
if (XMYSQLND_SESSION session = object->session) {
913-
session->m->close(session, SESSION_CLOSE_EXPLICIT);
913+
session->close(SESSION_CLOSE_EXPLICIT);
914914
object->closed = TRUE;
915915
RETVAL_TRUE;
916916
} else {

mysqlx_table.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,8 @@ MYSQL_XDEVAPI_PHP_METHOD(mysqlx_table, getSchema)
313313

314314
if(session != nullptr) {
315315
MYSQLND_STRING& schema_name{ object->table->data->schema->data->schema_name };
316-
XMYSQLND_SCHEMA * schema = session->m->create_schema_object(
317-
session, mnd_str2c(schema_name));
316+
XMYSQLND_SCHEMA * schema = session->create_schema_object(
317+
mnd_str2c(schema_name));
318318
if (schema) {
319319
mysqlx_new_schema(return_value, schema);
320320
} else {

xmysqlnd/xmysqlnd_collection.cc

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,7 @@ XMYSQLND_METHOD(xmysqlnd_collection, exists_in_database)(
178178

179179
const st_xmysqlnd_session_on_row_bind on_row = { collection_xplugin_op_on_row, &on_row_ctx };
180180

181-
ret = session->m->query_cb(session,
182-
namespace_xplugin,
181+
ret = session->query_cb(namespace_xplugin,
183182
query,
184183
var_binder,
185184
noop__on_result_start,
@@ -249,8 +248,7 @@ XMYSQLND_METHOD(xmysqlnd_collection, count)(
249248

250249
const st_xmysqlnd_session_on_row_bind on_row = { collection_sql_single_result_op_on_row, &on_row_ctx };
251250

252-
ret = session->m->query_cb(session,
253-
namespace_sql,
251+
ret = session->query_cb(namespace_sql,
254252
query,
255253
noop__var_binder,
256254
noop__on_result_start,
@@ -285,7 +283,7 @@ XMYSQLND_METHOD(xmysqlnd_collection, add)(XMYSQLND_COLLECTION * const collection
285283
enum_func_status request_ret = collection_add.send_request(&collection_add,
286284
xmysqlnd_crud_collection_add__get_protobuf_message(crud_op));
287285
if (PASS == request_ret) {
288-
XMYSQLND_STMT * stmt = session->m->create_statement_object(session);
286+
XMYSQLND_STMT * stmt = session->create_statement_object(session);
289287
stmt->data->msg_stmt_exec = msg_factory.get__sql_stmt_execute(&msg_factory);
290288
ret = stmt;
291289
}
@@ -314,7 +312,7 @@ XMYSQLND_METHOD(xmysqlnd_collection, remove)(XMYSQLND_COLLECTION * const collect
314312
if (PASS == collection_ud.send_delete_request(&collection_ud, xmysqlnd_crud_collection_remove__get_protobuf_message(op))) {
315313
//ret = collection_ud.read_response(&collection_ud);
316314
auto session = collection->data->schema->data->session;
317-
XMYSQLND_STMT * stmt = session->m->create_statement_object(session);
315+
XMYSQLND_STMT * stmt = session->create_statement_object(session);
318316
stmt->data->msg_stmt_exec = msg_factory.get__sql_stmt_execute(&msg_factory);
319317
ret = stmt;
320318
}
@@ -342,7 +340,7 @@ XMYSQLND_METHOD(xmysqlnd_collection, modify)(XMYSQLND_COLLECTION * const collect
342340
if (PASS == collection_ud.send_update_request(&collection_ud, xmysqlnd_crud_collection_modify__get_protobuf_message(op))) {
343341
//ret = collection_ud.read_response(&collection_ud);
344342
auto session = collection->data->schema->data->session;
345-
XMYSQLND_STMT * stmt = session->m->create_statement_object(session);;
343+
XMYSQLND_STMT * stmt = session->create_statement_object(session);
346344
stmt->data->msg_stmt_exec = msg_factory.get__sql_stmt_execute(&msg_factory);
347345
ret = stmt;
348346
}
@@ -364,7 +362,7 @@ static st_xmysqlnd_stmt* XMYSQLND_METHOD(xmysqlnd_collection, find)(XMYSQLND_COL
364362
}
365363
if (xmysqlnd_crud_collection_find__is_initialized(op)) {
366364
auto session = collection->data->schema->data->session;
367-
stmt = session->m->create_statement_object(session);
365+
stmt = session->create_statement_object(session);
368366
if (FAIL == stmt->data->m.send_raw_message(stmt, xmysqlnd_crud_collection_find__get_protobuf_message(op), session->data->stats, session->data->error_info)) {
369367
xmysqlnd_stmt_free(stmt, session->data->stats, session->data->error_info);
370368
stmt = nullptr;

xmysqlnd/xmysqlnd_extension_plugin.cc

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -242,23 +242,6 @@ _xmysqlnd_object_factory_set_methods(const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_o
242242
}
243243
/* }}} */
244244

245-
246-
/* {{{ _xmysqlnd_session_get_methods */
247-
static const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_session) *
248-
_xmysqlnd_session_get_methods()
249-
{
250-
return MYSQLND_CLASS_METHODS_INSTANCE_NAME(xmysqlnd_session);
251-
}
252-
/* }}} */
253-
254-
/* {{{ _xmysqlnd_session_set_methods */
255-
static void
256-
_xmysqlnd_session_set_methods(const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_session) * const methods)
257-
{
258-
MYSQLND_CLASS_METHODS_INSTANCE_NAME(xmysqlnd_session) = methods;
259-
}
260-
/* }}} */
261-
262245
/* {{{ _xmysqlnd_schema_get_methods */
263246
static const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_schema) *
264247
_xmysqlnd_schema_get_methods()
@@ -489,10 +472,6 @@ PHP_MYSQL_XDEVAPI_API struct st_xmysqlnd_plugin_methods_xetters xmysqlnd_plugin_
489472
_xmysqlnd_object_factory_get_methods,
490473
_xmysqlnd_object_factory_set_methods
491474
},
492-
{
493-
_xmysqlnd_session_get_methods,
494-
_xmysqlnd_session_set_methods,
495-
},
496475
{
497476
_xmysqlnd_schema_get_methods,
498477
_xmysqlnd_schema_set_methods,

xmysqlnd/xmysqlnd_extension_plugin.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,6 @@ struct st_xmysqlnd_plugin_methods_xetters
9595
void (*set)(const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_object_factory) * const methods);
9696
} object_factory;
9797

98-
struct st_xmnd_session_xetters
99-
{
100-
const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_session) * (*get)();
101-
void (*set)(const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_session) * const methods);
102-
} session;
103-
10498
struct st_xmnd_schema_xetters
10599
{
106100
const MYSQLND_CLASS_METHODS_TYPE(xmysqlnd_schema) * (*get)();
@@ -186,9 +180,6 @@ PHP_MYSQL_XDEVAPI_API extern struct st_xmysqlnd_plugin_methods_xetters xmysqlnd_
186180
#define xmysqlnd_object_factory_get_methods() xmysqlnd_plugin_methods_xetters.object_factory.get()
187181
#define xmysqlnd_object_factory_set_methods(m) xmysqlnd_plugin_methods_xetters.object_factory.set((m))
188182

189-
#define xmysqlnd_session_get_methods() xmysqlnd_plugin_methods_xetters.session.get()
190-
#define xmysqlnd_session_set_methods(m) xmysqlnd_plugin_methods_xetters.session.set((m))
191-
192183
#define xmysqlnd_schema_get_methods() xmysqlnd_plugin_methods_xetters.schema.get()
193184
#define xmysqlnd_schema_set_methods(m) xmysqlnd_plugin_methods_xetters.schema.set((m))
194185

xmysqlnd/xmysqlnd_index_collection_commands.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,7 @@ bool collection_create_index_execute(
207207
&var_binder_ctx
208208
};
209209

210-
const enum_func_status ret = session->m->query_cb(
211-
session,
210+
const enum_func_status ret = session->query_cb(
212211
namespace_mysqlx,
213212
query,
214213
var_binder,
@@ -285,8 +284,7 @@ bool collection_drop_index_execute(
285284
};
286285

287286
const enum_func_status ret
288-
= session->m->query_cb(
289-
session,
287+
= session->query_cb(
290288
namespace_mysqlx,
291289
query,
292290
var_binder,

xmysqlnd/xmysqlnd_object_factory.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ XMYSQLND_METHOD(xmysqlnd_object_factory, get_session)(const MYSQLND_CLASS_METHOD
6060
DBG_RETURN(nullptr);
6161
}
6262
object->persistent = persistent;
63-
object->m = xmysqlnd_session_get_methods();
6463

6564
DBG_RETURN(object);
6665
}

xmysqlnd/xmysqlnd_schema.cc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,7 @@ XMYSQLND_METHOD(xmysqlnd_schema, exists_in_database)(
201201

202202
const st_xmysqlnd_session_on_row_bind on_row = { schema_sql_op_on_row, &on_row_ctx };
203203

204-
ret = session->m->query_cb(session,
205-
namespace_sql,
204+
ret = session->query_cb(namespace_sql,
206205
query,
207206
var_binder,
208207
noop__on_result_start,
@@ -318,8 +317,7 @@ xmysqlnd_collection_op(
318317

319318
DBG_ENTER("xmysqlnd_collection_op");
320319

321-
ret = session->m->query_cb(session,
322-
namespace_xplugin,
320+
ret = session->query_cb(namespace_xplugin,
323321
query,
324322
var_binder,
325323
noop__on_result_start,
@@ -542,8 +540,7 @@ XMYSQLND_METHOD(xmysqlnd_schema, get_db_objects)(
542540

543541
DBG_ENTER("xmysqlnd_schema::get_db_objects");
544542

545-
ret = session->m->query_cb(session,
546-
namespace_xplugin,
543+
ret = session->query_cb(namespace_xplugin,
547544
query,
548545
var_binder,
549546
noop__on_result_start,

0 commit comments

Comments
 (0)