From 7ea4f73ad4510088936dc3679e603e2e8569398c Mon Sep 17 00:00:00 2001 From: Will Fitch Date: Thu, 20 Sep 2012 12:32:53 -0400 Subject: Bug #62593 Updated pdo_pgsql driver to convert boolean values to pg native format in emulation mode --- ext/pdo_pgsql/pgsql_statement.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'ext/pdo_pgsql/pgsql_statement.c') diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index c35ee33c7f..e5c7032632 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -362,8 +362,19 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data * } break; } + } else { +#endif + if (param->is_param) { + /* We need to manually convert to a pg native boolean value */ + if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL) { + SEPARATE_ZVAL_IF_NOT_REF(¶m->parameter); + param->param_type = PDO_PARAM_STR; + ZVAL_STRINGL(param->parameter, Z_BVAL_P(param->parameter) ? "t" : "f", 1, 1); + } + } +#if HAVE_PQPREPARE } -#endif +#endif return 1; } -- cgit v1.2.1 From 646c0e57387664f56dcf0a3aaa3e8305e887000d Mon Sep 17 00:00:00 2001 From: Will Fitch Date: Tue, 25 Sep 2012 15:18:12 -0400 Subject: Bug #62593 Updated to always treat zval by value --- ext/pdo_pgsql/pgsql_statement.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/pdo_pgsql/pgsql_statement.c') diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index e5c7032632..b9df24a09f 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -367,7 +367,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data * if (param->is_param) { /* We need to manually convert to a pg native boolean value */ if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL) { - SEPARATE_ZVAL_IF_NOT_REF(¶m->parameter); + SEPARATE_ZVAL(¶m->parameter); param->param_type = PDO_PARAM_STR; ZVAL_STRINGL(param->parameter, Z_BVAL_P(param->parameter) ? "t" : "f", 1, 1); } -- cgit v1.2.1 From d864063a183653ce16a4345e5143f6e912c176fe Mon Sep 17 00:00:00 2001 From: Will Fitch Date: Wed, 26 Sep 2012 12:00:17 -0400 Subject: Bug #62593 Updated to account for INOUT parameters --- ext/pdo_pgsql/pgsql_statement.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ext/pdo_pgsql/pgsql_statement.c') diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index b9df24a09f..1dc0d58e97 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -366,7 +366,8 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data * #endif if (param->is_param) { /* We need to manually convert to a pg native boolean value */ - if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL) { + if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL && + ((param->param_type & PDO_PARAM_INPUT_OUTPUT) != PDO_PARAM_INPUT_OUTPUT)) { SEPARATE_ZVAL(¶m->parameter); param->param_type = PDO_PARAM_STR; ZVAL_STRINGL(param->parameter, Z_BVAL_P(param->parameter) ? "t" : "f", 1, 1); -- cgit v1.2.1