In preparation for moving from pool connections to trunk connections.
return conn->result ? cass_result_column_count(conn->result) : 0;
}
-static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_cassandra_conn_t *conn = handle->conn;
+ rlm_sql_cassandra_conn_t *conn = query_ctx->handle->conn;
return conn->result ? cass_result_row_count(conn->result) : 0;
}
* There's a good article on it here:
* http://planetcassandra.org/blog/how-to-do-an-upsert-in-cassandra/
*/
-static int sql_affected_rows(UNUSED rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return 1;
}
return sql_finish_query(handle, config);
}
-static int sql_affected_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
SQLINTEGER c;
- rlm_sql_db2_conn_t *conn = handle->conn;
+ rlm_sql_db2_conn_t *conn = query_ctx->handle->conn;
SQLRowCount(conn->stmt, &c);
/* Forward declarations */
static sql_rcode_t sql_free_result(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
-static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static int sql_num_fields(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static sql_rcode_t sql_finish_query(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
return ((rlm_sql_firebird_conn_t *) handle->conn)->sqlda_out->sqld;
}
-/** Returns number of rows in query.
- *
- */
-static int sql_num_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
-{
- return sql_affected_rows(handle, config);
-}
-
/** Returns name of fields.
*
*/
/** Return the number of rows affected by the query (update, or insert)
*
*/
-static int sql_affected_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- return fb_affected_rows(handle->conn);
+ return fb_affected_rows(query_ctx->handle->conn);
}
/* Exported to rlm_sql */
.sql_query = sql_query,
.sql_select_query = sql_query,
.sql_num_fields = sql_num_fields,
- .sql_num_rows = sql_num_rows,
+ .sql_num_rows = sql_affected_rows,
.sql_affected_rows = sql_affected_rows,
.sql_fetch_row = sql_fetch_row,
.sql_fields = sql_fields,
RETURN_MODULE_OK;
}
-static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_freetds_conn_t *conn = handle->conn;
+ rlm_sql_freetds_conn_t *conn = query_ctx->handle->conn;
return (conn->rows_affected);
}
return RLM_SQL_OK;
}
-static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
-{
- return sql_num_rows(handle, config);
-}
-
-
static int _sql_socket_destructor(rlm_sql_freetds_conn_t *conn)
{
DEBUG2("socket destructor called, closing socket");
.sql_num_fields = sql_num_fields,
.sql_num_rows = sql_num_rows,
.sql_fields = sql_fields,
- .sql_affected_rows = sql_affected_rows,
+ .sql_affected_rows = sql_num_rows,
.sql_fetch_row = sql_fetch_row,
.sql_free_result = sql_free_result,
.sql_error = sql_error,
RETURN_MODULE_OK;
}
-static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(handle->conn, rlm_sql_mysql_conn_t);
+ rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(query_ctx->handle->conn, rlm_sql_mysql_conn_t);
if (conn->result) return mysql_num_rows(conn->result);
return RLM_SQL_OK;
}
-static int sql_affected_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(handle->conn, rlm_sql_mysql_conn_t);
+ rlm_sql_mysql_conn_t *conn = talloc_get_type_abort(query_ctx->handle->conn, rlm_sql_mysql_conn_t);
return mysql_affected_rows(conn->sock);
}
return 0;
}
-static int sql_num_rows(UNUSED rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
+static int sql_num_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return 0;
}
return 0;
}
-static int sql_affected_rows(UNUSED rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
return 1;
}
RETURN_MODULE_FAIL;
}
-static int sql_num_rows(rlm_sql_handle_t *handle, UNUSED rlm_sql_config_t const *config)
+static int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_oracle_conn_t *conn = handle->conn;
+ rlm_sql_oracle_conn_t *conn = query_ctx->handle->conn;
ub4 rows = 0;
ub4 size = sizeof(ub4);
return 0;
}
-static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
-{
- return sql_num_rows(handle, config);
-}
-
/* Exported to rlm_sql */
extern rlm_sql_driver_t rlm_sql_oracle;
rlm_sql_driver_t rlm_sql_oracle = {
.sql_select_query = sql_select_query,
.sql_num_fields = sql_num_fields,
.sql_num_rows = sql_num_rows,
- .sql_affected_rows = sql_affected_rows,
+ .sql_affected_rows = sql_num_rows,
.sql_fetch_row = sql_fetch_row,
.sql_fields = sql_fields,
.sql_free_result = sql_free_result,
return i;
}
-static int sql_affected_rows(rlm_sql_handle_t * handle, UNUSED rlm_sql_config_t const *config)
+static int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_postgres_conn_t *conn = handle->conn;
+ rlm_sql_postgres_conn_t *conn = query_ctx->handle->conn;
return conn->affected_rows;
}
return sql_free_result(handle, config);
}
-static int sql_affected_rows(rlm_sql_handle_t *handle,
+static int sql_affected_rows(fr_sql_query_t *query_ctx,
UNUSED rlm_sql_config_t const *config)
{
- rlm_sql_sqlite_conn_t *conn = handle->conn;
+ rlm_sql_sqlite_conn_t *conn = query_ctx->handle->conn;
if (conn->db) return sqlite3_changes(conn->db);
/* Forward declarations */
static int sql_check_error(long err_handle, rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static sql_rcode_t sql_free_result(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
-static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static int sql_num_fields(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
static int _sql_socket_destructor(rlm_sql_unixodbc_conn_t *conn)
* or insert)
*
*************************************************************************/
-static int sql_affected_rows(rlm_sql_handle_t *handle, rlm_sql_config_t const *config)
+static int sql_affected_rows(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config)
{
- rlm_sql_unixodbc_conn_t *conn = handle->conn;
+ rlm_sql_unixodbc_conn_t *conn = query_ctx->handle->conn;
long error_handle;
SQLLEN affected_rows;
error_handle = SQLRowCount(conn->stmt, &affected_rows);
- if (sql_check_error(error_handle, handle, config)) return -1;
+ if (sql_check_error(error_handle, query_ctx->handle, config)) return -1;
return affected_rows;
}
goto finish;
}
- numaffected = (inst->driver->sql_affected_rows)(query_ctx->handle, &inst->config);
+ numaffected = (inst->driver->sql_affected_rows)(query_ctx, &inst->config);
if (numaffected < 1) {
RDEBUG2("SQL query affected no rows");
* Not every driver provides an sql_num_rows function
*/
if (inst->driver->sql_num_rows) {
- ret = inst->driver->sql_num_rows(handle, &inst->config);
+ ret = inst->driver->sql_num_rows(query_ctx, &inst->config);
if (ret == 0) {
RDEBUG2("Server returned an empty result");
rcode = RLM_MODULE_NOOP;
* We need to have updated something for the query to have been
* counted as successful.
*/
- numaffected = (inst->driver->sql_affected_rows)(redundant_ctx->handle, &inst->config);
+ numaffected = (inst->driver->sql_affected_rows)(query_ctx, &inst->config);
talloc_free(query_ctx);
RDEBUG2("%i record(s) updated", numaffected);
unlang_function_t sql_select_query;
int (*sql_num_fields)(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
- int (*sql_num_rows)(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
- int (*sql_affected_rows)(rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
+ int (*sql_num_rows)(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config);
+ int (*sql_affected_rows)(fr_sql_query_t *query_ctx, rlm_sql_config_t const *config);
unlang_function_t sql_fetch_row;
sql_rcode_t (*sql_fields)(char const **out[], rlm_sql_handle_t *handle, rlm_sql_config_t const *config);
*/
if (!query_ctx->handle) return -1;
- affected = (sql->driver->sql_affected_rows)(*handle, &sql->config);
+ affected = (sql->driver->sql_affected_rows)(query_ctx, &sql->config);
talloc_free(query_ctx);