Lines Matching refs:S

61 	pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;  in pgsql_stmt_dtor()  local
66 if (S->result) { in pgsql_stmt_dtor()
68 PQclear(S->result); in pgsql_stmt_dtor()
69 S->result = NULL; in pgsql_stmt_dtor()
72 if (S->stmt_name) { in pgsql_stmt_dtor()
73 if (S->is_prepared && server_obj_usable) { in pgsql_stmt_dtor()
74 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_dtor()
78 spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); in pgsql_stmt_dtor()
85 efree(S->stmt_name); in pgsql_stmt_dtor()
86 S->stmt_name = NULL; in pgsql_stmt_dtor()
88 if (S->param_lengths) { in pgsql_stmt_dtor()
89 efree(S->param_lengths); in pgsql_stmt_dtor()
90 S->param_lengths = NULL; in pgsql_stmt_dtor()
92 if (S->param_values) { in pgsql_stmt_dtor()
93 efree(S->param_values); in pgsql_stmt_dtor()
94 S->param_values = NULL; in pgsql_stmt_dtor()
96 if (S->param_formats) { in pgsql_stmt_dtor()
97 efree(S->param_formats); in pgsql_stmt_dtor()
98 S->param_formats = NULL; in pgsql_stmt_dtor()
100 if (S->param_types) { in pgsql_stmt_dtor()
101 efree(S->param_types); in pgsql_stmt_dtor()
102 S->param_types = NULL; in pgsql_stmt_dtor()
104 if (S->query) { in pgsql_stmt_dtor()
105 efree(S->query); in pgsql_stmt_dtor()
106 S->query = NULL; in pgsql_stmt_dtor()
109 if (S->cursor_name) { in pgsql_stmt_dtor()
111 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_dtor()
115 spprintf(&q, 0, "CLOSE %s", S->cursor_name); in pgsql_stmt_dtor()
120 efree(S->cursor_name); in pgsql_stmt_dtor()
121 S->cursor_name = NULL; in pgsql_stmt_dtor()
124 if(S->cols) { in pgsql_stmt_dtor()
125 efree(S->cols); in pgsql_stmt_dtor()
126 S->cols = NULL; in pgsql_stmt_dtor()
128 efree(S); in pgsql_stmt_dtor()
135 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_execute() local
136 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_execute()
140 if(S->result) { in pgsql_stmt_execute()
141 PQclear(S->result); in pgsql_stmt_execute()
142 S->result = NULL; in pgsql_stmt_execute()
145 S->current_row = 0; in pgsql_stmt_execute()
147 if (S->cursor_name) { in pgsql_stmt_execute()
150 if (S->is_prepared) { in pgsql_stmt_execute()
151 spprintf(&q, 0, "CLOSE %s", S->cursor_name); in pgsql_stmt_execute()
156 …spprintf(&q, 0, "DECLARE %s SCROLL CURSOR WITH HOLD FOR %s", S->cursor_name, stmt->active_query_st… in pgsql_stmt_execute()
157 S->result = PQexec(H->server, q); in pgsql_stmt_execute()
161 status = PQresultStatus(S->result); in pgsql_stmt_execute()
163 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_execute()
166 PQclear(S->result); in pgsql_stmt_execute()
169 S->is_prepared = 1; in pgsql_stmt_execute()
172 spprintf(&q, 0, "FETCH FORWARD 0 FROM %s", S->cursor_name); in pgsql_stmt_execute()
173 S->result = PQexec(H->server, q); in pgsql_stmt_execute()
175 } else if (S->stmt_name) { in pgsql_stmt_execute()
178 if (!S->is_prepared) { in pgsql_stmt_execute()
182 S->result = PQprepare(H->server, S->stmt_name, S->query, in pgsql_stmt_execute()
184 S->param_types); in pgsql_stmt_execute()
185 status = PQresultStatus(S->result); in pgsql_stmt_execute()
190 S->is_prepared = 1; in pgsql_stmt_execute()
191 PQclear(S->result); in pgsql_stmt_execute()
194 char *sqlstate = pdo_pgsql_sqlstate(S->result); in pgsql_stmt_execute()
204 snprintf(buf, sizeof(buf), "DEALLOCATE %s", S->stmt_name); in pgsql_stmt_execute()
217 S->result = PQexecPrepared(H->server, S->stmt_name, in pgsql_stmt_execute()
221 (const char**)S->param_values, in pgsql_stmt_execute()
222 S->param_lengths, in pgsql_stmt_execute()
223 S->param_formats, in pgsql_stmt_execute()
227 S->result = PQexecParams(H->server, S->query, in pgsql_stmt_execute()
229 S->param_types, in pgsql_stmt_execute()
230 (const char**)S->param_values, in pgsql_stmt_execute()
231 S->param_lengths, in pgsql_stmt_execute()
232 S->param_formats, in pgsql_stmt_execute()
236 S->result = PQexec(H->server, stmt->active_query_string); in pgsql_stmt_execute()
238 status = PQresultStatus(S->result); in pgsql_stmt_execute()
241 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_execute()
245 if (!stmt->executed && (!stmt->column_count || S->cols == NULL)) { in pgsql_stmt_execute()
246 stmt->column_count = (int) PQnfields(S->result); in pgsql_stmt_execute()
247 S->cols = ecalloc(stmt->column_count, sizeof(pdo_pgsql_column)); in pgsql_stmt_execute()
251 ZEND_ATOL(stmt->row_count, PQcmdTuples(S->result)); in pgsql_stmt_execute()
252 H->pgoid = PQoidValue(S->result); in pgsql_stmt_execute()
254 stmt->row_count = (zend_long)PQntuples(S->result); in pgsql_stmt_execute()
263 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_param_hook() local
312 if (!S->param_values) { in pgsql_stmt_param_hook()
313 S->param_values = ecalloc( in pgsql_stmt_param_hook()
316 S->param_lengths = ecalloc( in pgsql_stmt_param_hook()
319 S->param_formats = ecalloc( in pgsql_stmt_param_hook()
322 S->param_types = ecalloc( in pgsql_stmt_param_hook()
356 S->param_values[param->paramno] = (char*)&P->oid; in pgsql_stmt_param_hook()
357 S->param_lengths[param->paramno] = sizeof(P->oid); in pgsql_stmt_param_hook()
358 S->param_formats[param->paramno] = 1; in pgsql_stmt_param_hook()
359 S->param_types[param->paramno] = OIDOID; in pgsql_stmt_param_hook()
379 S->param_values[param->paramno] = NULL; in pgsql_stmt_param_hook()
380 S->param_lengths[param->paramno] = 0; in pgsql_stmt_param_hook()
382 S->param_values[param->paramno] = Z_TYPE_P(parameter) == IS_TRUE ? "t" : "f"; in pgsql_stmt_param_hook()
383 S->param_lengths[param->paramno] = 1; in pgsql_stmt_param_hook()
384 S->param_formats[param->paramno] = 0; in pgsql_stmt_param_hook()
388 S->param_values[param->paramno] = Z_STRVAL_P(parameter); in pgsql_stmt_param_hook()
389 S->param_lengths[param->paramno] = Z_STRLEN_P(parameter); in pgsql_stmt_param_hook()
390 S->param_formats[param->paramno] = 0; in pgsql_stmt_param_hook()
394 S->param_types[param->paramno] = 0; in pgsql_stmt_param_hook()
395 S->param_formats[param->paramno] = 1; in pgsql_stmt_param_hook()
397 S->param_types[param->paramno] = 0; in pgsql_stmt_param_hook()
418 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_fetch() local
420 if (S->cursor_name) { in pgsql_stmt_fetch()
436 if(S->result) { in pgsql_stmt_fetch()
437 PQclear(S->result); in pgsql_stmt_fetch()
438 S->result = NULL; in pgsql_stmt_fetch()
441 spprintf(&q, 0, "FETCH %s FROM %s", ori_str, S->cursor_name); in pgsql_stmt_fetch()
443 S->result = PQexec(S->H->server, q); in pgsql_stmt_fetch()
445 status = PQresultStatus(S->result); in pgsql_stmt_fetch()
448 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_fetch()
452 if (PQntuples(S->result)) { in pgsql_stmt_fetch()
453 S->current_row = 1; in pgsql_stmt_fetch()
459 if (S->current_row < stmt->row_count) { in pgsql_stmt_fetch()
460 S->current_row++; in pgsql_stmt_fetch()
470 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_describe() local
475 if (!S->result) { in pgsql_stmt_describe()
479 str = PQfname(S->result, colno); in pgsql_stmt_describe()
481 cols[colno].maxlen = PQfsize(S->result, colno); in pgsql_stmt_describe()
482 cols[colno].precision = PQfmod(S->result, colno); in pgsql_stmt_describe()
483 S->cols[colno].pgsql_type = PQftype(S->result, colno); in pgsql_stmt_describe()
485 switch (S->cols[colno].pgsql_type) { in pgsql_stmt_describe()
531 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_get_col() local
535 if (!S->result) { in pgsql_stmt_get_col()
540 if (PQgetisnull(S->result, S->current_row - 1, colno)) { /* Check if we got NULL */ in pgsql_stmt_get_col()
544 *ptr = PQgetvalue(S->result, S->current_row - 1, colno); in pgsql_stmt_get_col()
545 *len = PQgetlength(S->result, S->current_row - 1, colno); in pgsql_stmt_get_col()
550 ZEND_ATOL(S->cols[colno].intval, *ptr); in pgsql_stmt_get_col()
551 *ptr = (char *) &(S->cols[colno].intval); in pgsql_stmt_get_col()
556 S->cols[colno].boolval = **ptr == 't'; in pgsql_stmt_get_col()
557 *ptr = (char *) &(S->cols[colno].boolval); in pgsql_stmt_get_col()
562 if (S->cols[colno].pgsql_type == OIDOID) { in pgsql_stmt_get_col()
566 int loid = lo_open(S->H->server, oid, INV_READ); in pgsql_stmt_get_col()
638 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_get_column_meta() local
645 if (!S->result) { in pgsql_stmt_get_column_meta()
654 add_assoc_long(return_value, "pgsql:oid", S->cols[colno].pgsql_type); in pgsql_stmt_get_column_meta()
656 table_oid = PQftable(S->result, colno); in pgsql_stmt_get_column_meta()
658 table_name = pdo_pgsql_translate_oid_to_table(table_oid, S->H->server); in pgsql_stmt_get_column_meta()
664 switch (S->cols[colno].pgsql_type) { in pgsql_stmt_get_column_meta()
694 spprintf(&q, 0, "SELECT TYPNAME FROM PG_TYPE WHERE OID=%u", S->cols[colno].pgsql_type); in pgsql_stmt_get_column_meta()
695 res = PQexec(S->H->server, q); in pgsql_stmt_get_column_meta()
708 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pdo_pgsql_stmt_cursor_closer() local
710 if (S->cols != NULL){ in pdo_pgsql_stmt_cursor_closer()
711 efree(S->cols); in pdo_pgsql_stmt_cursor_closer()
712 S->cols = NULL; in pdo_pgsql_stmt_cursor_closer()