Lines Matching refs:S

49 	pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;  in pgsql_stmt_dtor()  local
51 if (S->result) { in pgsql_stmt_dtor()
53 PQclear(S->result); in pgsql_stmt_dtor()
54 S->result = NULL; in pgsql_stmt_dtor()
57 if (S->stmt_name) { in pgsql_stmt_dtor()
58 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_dtor()
62 if (S->is_prepared) { in pgsql_stmt_dtor()
63 spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); in pgsql_stmt_dtor()
70 efree(S->stmt_name); in pgsql_stmt_dtor()
71 S->stmt_name = NULL; in pgsql_stmt_dtor()
73 if (S->param_lengths) { in pgsql_stmt_dtor()
74 efree(S->param_lengths); in pgsql_stmt_dtor()
75 S->param_lengths = NULL; in pgsql_stmt_dtor()
77 if (S->param_values) { in pgsql_stmt_dtor()
78 efree(S->param_values); in pgsql_stmt_dtor()
79 S->param_values = NULL; in pgsql_stmt_dtor()
81 if (S->param_formats) { in pgsql_stmt_dtor()
82 efree(S->param_formats); in pgsql_stmt_dtor()
83 S->param_formats = NULL; in pgsql_stmt_dtor()
85 if (S->param_types) { in pgsql_stmt_dtor()
86 efree(S->param_types); in pgsql_stmt_dtor()
87 S->param_types = NULL; in pgsql_stmt_dtor()
89 if (S->query) { in pgsql_stmt_dtor()
90 efree(S->query); in pgsql_stmt_dtor()
91 S->query = NULL; in pgsql_stmt_dtor()
94 if (S->cursor_name) { in pgsql_stmt_dtor()
95 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_dtor()
99 spprintf(&q, 0, "CLOSE %s", S->cursor_name); in pgsql_stmt_dtor()
103 efree(S->cursor_name); in pgsql_stmt_dtor()
104 S->cursor_name = NULL; in pgsql_stmt_dtor()
107 if(S->cols) { in pgsql_stmt_dtor()
108 efree(S->cols); in pgsql_stmt_dtor()
109 S->cols = NULL; in pgsql_stmt_dtor()
111 efree(S); in pgsql_stmt_dtor()
118 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_execute() local
119 pdo_pgsql_db_handle *H = S->H; in pgsql_stmt_execute()
123 if(S->result) { in pgsql_stmt_execute()
124 PQclear(S->result); in pgsql_stmt_execute()
125 S->result = NULL; in pgsql_stmt_execute()
128 S->current_row = 0; in pgsql_stmt_execute()
130 if (S->cursor_name) { in pgsql_stmt_execute()
133 if (S->is_prepared) { in pgsql_stmt_execute()
134 spprintf(&q, 0, "CLOSE %s", S->cursor_name); in pgsql_stmt_execute()
135 S->result = PQexec(H->server, q); in pgsql_stmt_execute()
139 …spprintf(&q, 0, "DECLARE %s SCROLL CURSOR WITH HOLD FOR %s", S->cursor_name, stmt->active_query_st… in pgsql_stmt_execute()
140 S->result = PQexec(H->server, q); in pgsql_stmt_execute()
144 status = PQresultStatus(S->result); in pgsql_stmt_execute()
146 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_execute()
151 S->is_prepared = 1; in pgsql_stmt_execute()
154 spprintf(&q, 0, "FETCH FORWARD 0 FROM %s", S->cursor_name); in pgsql_stmt_execute()
155 S->result = PQexec(H->server, q); in pgsql_stmt_execute()
157 } else if (S->stmt_name) { in pgsql_stmt_execute()
160 if (!S->is_prepared) { in pgsql_stmt_execute()
164 S->result = PQprepare(H->server, S->stmt_name, S->query, in pgsql_stmt_execute()
166 S->param_types); in pgsql_stmt_execute()
167 status = PQresultStatus(S->result); in pgsql_stmt_execute()
172 S->is_prepared = 1; in pgsql_stmt_execute()
173 PQclear(S->result); in pgsql_stmt_execute()
176 char *sqlstate = pdo_pgsql_sqlstate(S->result); in pgsql_stmt_execute()
186 snprintf(buf, sizeof(buf), "DEALLOCATE %s", S->stmt_name); in pgsql_stmt_execute()
199 S->result = PQexecPrepared(H->server, S->stmt_name, in pgsql_stmt_execute()
203 (const char**)S->param_values, in pgsql_stmt_execute()
204 S->param_lengths, in pgsql_stmt_execute()
205 S->param_formats, in pgsql_stmt_execute()
209 S->result = PQexecParams(H->server, S->query, in pgsql_stmt_execute()
211 S->param_types, in pgsql_stmt_execute()
212 (const char**)S->param_values, in pgsql_stmt_execute()
213 S->param_lengths, in pgsql_stmt_execute()
214 S->param_formats, in pgsql_stmt_execute()
218 S->result = PQexec(H->server, stmt->active_query_string); in pgsql_stmt_execute()
220 status = PQresultStatus(S->result); in pgsql_stmt_execute()
223 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_execute()
227 if (!stmt->executed && (!stmt->column_count || S->cols == NULL)) { in pgsql_stmt_execute()
228 stmt->column_count = (int) PQnfields(S->result); in pgsql_stmt_execute()
229 S->cols = ecalloc(stmt->column_count, sizeof(pdo_pgsql_column)); in pgsql_stmt_execute()
233 stmt->row_count = (long)atoi(PQcmdTuples(S->result)); in pgsql_stmt_execute()
234 H->pgoid = PQoidValue(S->result); in pgsql_stmt_execute()
236 stmt->row_count = (long)PQntuples(S->result); in pgsql_stmt_execute()
245 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_param_hook() local
285 if (!S->param_values) { in pgsql_stmt_param_hook()
286 S->param_values = ecalloc( in pgsql_stmt_param_hook()
289 S->param_lengths = ecalloc( in pgsql_stmt_param_hook()
292 S->param_formats = ecalloc( in pgsql_stmt_param_hook()
295 S->param_types = ecalloc( in pgsql_stmt_param_hook()
319 S->param_values[param->paramno] = (char*)&P->oid; in pgsql_stmt_param_hook()
320 S->param_lengths[param->paramno] = sizeof(P->oid); in pgsql_stmt_param_hook()
321 S->param_formats[param->paramno] = 1; in pgsql_stmt_param_hook()
322 S->param_types[param->paramno] = OIDOID; in pgsql_stmt_param_hook()
345 S->param_values[param->paramno] = NULL; in pgsql_stmt_param_hook()
346 S->param_lengths[param->paramno] = 0; in pgsql_stmt_param_hook()
348 S->param_values[param->paramno] = Z_BVAL_P(param->parameter) ? "t" : "f"; in pgsql_stmt_param_hook()
349 S->param_lengths[param->paramno] = 1; in pgsql_stmt_param_hook()
350 S->param_formats[param->paramno] = 0; in pgsql_stmt_param_hook()
354 S->param_values[param->paramno] = Z_STRVAL_P(param->parameter); in pgsql_stmt_param_hook()
355 S->param_lengths[param->paramno] = Z_STRLEN_P(param->parameter); in pgsql_stmt_param_hook()
356 S->param_formats[param->paramno] = 0; in pgsql_stmt_param_hook()
360 S->param_types[param->paramno] = 0; in pgsql_stmt_param_hook()
361 S->param_formats[param->paramno] = 1; in pgsql_stmt_param_hook()
363 S->param_types[param->paramno] = 0; in pgsql_stmt_param_hook()
384 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_fetch() local
386 if (S->cursor_name) { in pgsql_stmt_fetch()
402 spprintf(&q, 0, "FETCH %s FROM %s", ori_str, S->cursor_name); in pgsql_stmt_fetch()
404 S->result = PQexec(S->H->server, q); in pgsql_stmt_fetch()
406 status = PQresultStatus(S->result); in pgsql_stmt_fetch()
409 pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); in pgsql_stmt_fetch()
413 if (PQntuples(S->result)) { in pgsql_stmt_fetch()
414 S->current_row = 1; in pgsql_stmt_fetch()
420 if (S->current_row < stmt->row_count) { in pgsql_stmt_fetch()
421 S->current_row++; in pgsql_stmt_fetch()
431 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_describe() local
435 if (!S->result) { in pgsql_stmt_describe()
439 cols[colno].name = estrdup(PQfname(S->result, colno)); in pgsql_stmt_describe()
441 cols[colno].maxlen = PQfsize(S->result, colno); in pgsql_stmt_describe()
442 cols[colno].precision = PQfmod(S->result, colno); in pgsql_stmt_describe()
443 S->cols[colno].pgsql_type = PQftype(S->result, colno); in pgsql_stmt_describe()
445 switch(S->cols[colno].pgsql_type) { in pgsql_stmt_describe()
493 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_get_col() local
497 if (!S->result) { in pgsql_stmt_get_col()
502 if (PQgetisnull(S->result, S->current_row - 1, colno)) { /* Check if we got NULL */ in pgsql_stmt_get_col()
506 *ptr = PQgetvalue(S->result, S->current_row - 1, colno); in pgsql_stmt_get_col()
507 *len = PQgetlength(S->result, S->current_row - 1, colno); in pgsql_stmt_get_col()
512 S->cols[colno].intval = atol(*ptr); in pgsql_stmt_get_col()
513 *ptr = (char *) &(S->cols[colno].intval); in pgsql_stmt_get_col()
518 S->cols[colno].boolval = **ptr == 't' ? 1: 0; in pgsql_stmt_get_col()
519 *ptr = (char *) &(S->cols[colno].boolval); in pgsql_stmt_get_col()
524 if (S->cols[colno].pgsql_type == OIDOID) { in pgsql_stmt_get_col()
528 int loid = lo_open(S->H->server, oid, INV_READ); in pgsql_stmt_get_col()
572 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pgsql_stmt_get_column_meta() local
577 if (!S->result) { in pgsql_stmt_get_column_meta()
586 add_assoc_long(return_value, "pgsql:oid", S->cols[colno].pgsql_type); in pgsql_stmt_get_column_meta()
589 spprintf(&q, 0, "SELECT TYPNAME FROM PG_TYPE WHERE OID=%u", S->cols[colno].pgsql_type); in pgsql_stmt_get_column_meta()
590 res = PQexec(S->H->server, q); in pgsql_stmt_get_column_meta()
615 pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; in pdo_pgsql_stmt_cursor_closer() local
617 if (S->cols != NULL){ in pdo_pgsql_stmt_cursor_closer()
618 efree(S->cols); in pdo_pgsql_stmt_cursor_closer()
619 S->cols = NULL; in pdo_pgsql_stmt_cursor_closer()