Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions ext/extconf.rb
Original file line number Diff line number Diff line change
Expand Up @@ -311,12 +311,6 @@ module PG
"of this gem or upgrade your database to at least PostgreSQL-10."
# optional headers/functions
have_func 'PQresultMemorySize', 'libpq-fe.h' # since PostgreSQL-12
have_func 'PQenterPipelineMode', 'libpq-fe.h' do |src| # since PostgreSQL-14
# Ensure header files fit as well
src + " int con(){ return PGRES_PIPELINE_SYNC; }"
end
have_func 'PQsetChunkedRowsMode', 'libpq-fe.h' # since PostgreSQL-17
have_func 'PQfullProtocolVersion', 'libpq-fe.h' # since PostgreSQL-18
have_func 'timegm'
have_func 'rb_io_wait' # since ruby-3.0
have_func 'rb_io_descriptor' # since ruby-3.1
Expand Down
4 changes: 2 additions & 2 deletions ext/gvl_wrappers.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "pg.h"


#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
PGresult *PQclosePrepared(PGconn *conn, const char *stmtName){return NULL;}
PGresult *PQclosePortal(PGconn *conn, const char *portalName){return NULL;}
int PQsendClosePrepared(PGconn *conn, const char *stmtName){return 0;}
Expand All @@ -16,7 +16,7 @@ int PQcancelBlocking(PGcancelConn *cancelConn){return 0;}
int PQcancelStart(PGcancelConn *cancelConn){return 0;}
PostgresPollingStatusType PQcancelPoll(PGcancelConn *cancelConn){return PGRES_POLLING_FAILED;}
#endif
#ifndef HAVE_PQENTERPIPELINEMODE
#ifndef LIBPQ_HAS_PIPELINING
int PQpipelineSync(PGconn *conn){return 0;}
#endif

Expand Down
2 changes: 1 addition & 1 deletion ext/gvl_wrappers.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# include RUBY_EXTCONF_H
#endif

#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
typedef struct pg_cancel_conn PGcancelConn;
#endif

Expand Down
6 changes: 3 additions & 3 deletions ext/pg.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,12 +508,12 @@ Init_pg_ext(void)
rb_define_const(rb_mPGconstants, "PGRES_COPY_BOTH", INT2FIX(PGRES_COPY_BOTH));
/* Result#result_status constant - Single tuple from larger resultset. */
rb_define_const(rb_mPGconstants, "PGRES_SINGLE_TUPLE", INT2FIX(PGRES_SINGLE_TUPLE));
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/* Result#result_status constant - tuple chunk from larger resultset. */
rb_define_const(rb_mPGconstants, "PGRES_TUPLES_CHUNK", INT2FIX(PGRES_TUPLES_CHUNK));
#endif

#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
/* Result#result_status constant - The PG::Result represents a synchronization point in pipeline mode, requested by Connection#pipeline_sync.
*
* This status occurs only when pipeline mode has been selected. */
Expand Down Expand Up @@ -643,7 +643,7 @@ Init_pg_ext(void)
rb_define_const(rb_mPGconstants, "PG_DIAG_CONSTRAINT_NAME", INT2FIX(PG_DIAG_CONSTRAINT_NAME));
#endif

#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
/* Connection#pipeline_status constant
*
* The libpq connection is in pipeline mode.
Expand Down
4 changes: 2 additions & 2 deletions ext/pg_cancel_connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*
*/

#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE

static VALUE rb_cPG_Cancon;
static ID s_id_autoclose_set;
Expand Down Expand Up @@ -340,7 +340,7 @@ pg_cancon_finish(VALUE self)
void
init_pg_cancon(void)
{
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
s_id_autoclose_set = rb_intern("autoclose=");

rb_cPG_Cancon = rb_define_class_under( rb_mPG, "CancelConnection", rb_cObject );
Expand Down
36 changes: 18 additions & 18 deletions ext/pg_connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -865,7 +865,7 @@ pgconn_protocol_version(VALUE self)
return INT2NUM(protocol_version);
}

#ifdef HAVE_PQFULLPROTOCOLVERSION
#ifdef LIBPQ_HAS_FULL_PROTOCOL_VERSION
/*
* call-seq:
* conn.full_protocol_version -> Integer
Expand Down Expand Up @@ -1038,7 +1038,7 @@ pgconn_backend_pid(VALUE self)
return INT2NUM(PQbackendPID(pg_get_pgconn(self)));
}

#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
typedef struct
{
struct sockaddr_storage addr;
Expand Down Expand Up @@ -1613,7 +1613,7 @@ pgconn_sync_describe_portal(VALUE self, VALUE stmt_name)
}


#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/*
* call-seq:
* conn.sync_close_prepared( stmt_name ) -> PG::Result
Expand Down Expand Up @@ -1917,7 +1917,7 @@ pgconn_set_single_row_mode(VALUE self)
return self;
}

#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/*
* call-seq:
* conn.set_chunked_rows_mode -> self
Expand Down Expand Up @@ -2232,7 +2232,7 @@ pgconn_send_describe_portal(VALUE self, VALUE portal)
"PQsendDescribePortal");
}

#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/*
* call-seq:
* conn.send_close_prepared( statement_name ) -> nil
Expand Down Expand Up @@ -2358,7 +2358,7 @@ pgconn_sync_flush(VALUE self)
return (ret) ? Qfalse : Qtrue;
}

#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
static VALUE
pgconn_sync_cancel(VALUE self)
{
Expand Down Expand Up @@ -3657,7 +3657,7 @@ pgconn_async_describe_prepared(VALUE self, VALUE stmt_name)
return pgconn_async_describe_close_prepared_potral(self, stmt_name, pgconn_send_describe_prepared);
}

#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/*
* call-seq:
* conn.close_prepared( statement_name ) -> PG::Result
Expand Down Expand Up @@ -3779,7 +3779,7 @@ pgconn_ssl_attribute_names(VALUE self)



#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
/*
* call-seq:
* conn.pipeline_status -> Integer
Expand Down Expand Up @@ -3872,7 +3872,7 @@ pgconn_sync_pipeline_sync(VALUE self)
}


#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
/*
* call-seq:
* conn.send_pipeline_sync -> nil
Expand Down Expand Up @@ -4754,15 +4754,15 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "transaction_status", pgconn_transaction_status, 0);
rb_define_method(rb_cPGconn, "parameter_status", pgconn_parameter_status, 1);
rb_define_method(rb_cPGconn, "protocol_version", pgconn_protocol_version, 0);
#ifdef HAVE_PQFULLPROTOCOLVERSION
#ifdef LIBPQ_HAS_FULL_PROTOCOL_VERSION
rb_define_method(rb_cPGconn, "full_protocol_version", pgconn_full_protocol_version, 0);
#endif
rb_define_method(rb_cPGconn, "server_version", pgconn_server_version, 0);
rb_define_method(rb_cPGconn, "error_message", pgconn_error_message, 0);
rb_define_method(rb_cPGconn, "socket", pgconn_socket, 0);
rb_define_method(rb_cPGconn, "socket_io", pgconn_socket_io, 0);
rb_define_method(rb_cPGconn, "backend_pid", pgconn_backend_pid, 0);
#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "backend_key", pgconn_backend_key, 0);
#endif
rb_define_method(rb_cPGconn, "connection_needs_password", pgconn_connection_needs_password, 0);
Expand All @@ -4776,7 +4776,7 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "sync_exec_prepared", pgconn_sync_exec_prepared, -1);
rb_define_method(rb_cPGconn, "sync_describe_prepared", pgconn_sync_describe_prepared, 1);
rb_define_method(rb_cPGconn, "sync_describe_portal", pgconn_sync_describe_portal, 1);
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "sync_close_prepared", pgconn_sync_close_prepared, 1);
rb_define_method(rb_cPGconn, "sync_close_portal", pgconn_sync_close_portal, 1);
#endif
Expand All @@ -4787,7 +4787,7 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "exec_prepared", pgconn_async_exec_prepared, -1);
rb_define_method(rb_cPGconn, "describe_prepared", pgconn_async_describe_prepared, 1);
rb_define_method(rb_cPGconn, "describe_portal", pgconn_async_describe_portal, 1);
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "close_prepared", pgconn_async_close_prepared, 1);
rb_define_method(rb_cPGconn, "close_portal", pgconn_async_close_portal, 1);
#endif
Expand All @@ -4799,7 +4799,7 @@ init_pg_connection(void)
rb_define_alias(rb_cPGconn, "async_exec_prepared", "exec_prepared");
rb_define_alias(rb_cPGconn, "async_describe_prepared", "describe_prepared");
rb_define_alias(rb_cPGconn, "async_describe_portal", "describe_portal");
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
rb_define_alias(rb_cPGconn, "async_close_prepared", "close_prepared");
rb_define_alias(rb_cPGconn, "async_close_portal", "close_portal");
#endif
Expand All @@ -4812,7 +4812,7 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "escape_bytea", pgconn_s_escape_bytea, 1);
rb_define_method(rb_cPGconn, "unescape_bytea", pgconn_s_unescape_bytea, 1);
rb_define_method(rb_cPGconn, "set_single_row_mode", pgconn_set_single_row_mode, 0);
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "set_chunked_rows_mode", pgconn_set_chunked_rows_mode, 1);
#endif

Expand All @@ -4834,7 +4834,7 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "discard_results", pgconn_discard_results, 0);

/****** PG::Connection INSTANCE METHODS: Cancelling Queries in Progress ******/
#ifndef HAVE_PQSETCHUNKEDROWSMODE
#ifndef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "sync_cancel", pgconn_sync_cancel, 0);
#endif

Expand Down Expand Up @@ -4876,13 +4876,13 @@ init_pg_connection(void)
rb_define_method(rb_cPGconn, "ssl_attribute", pgconn_ssl_attribute, 1);
rb_define_method(rb_cPGconn, "ssl_attribute_names", pgconn_ssl_attribute_names, 0);

#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
rb_define_method(rb_cPGconn, "pipeline_status", pgconn_pipeline_status, 0);
rb_define_method(rb_cPGconn, "enter_pipeline_mode", pgconn_enter_pipeline_mode, 0);
rb_define_method(rb_cPGconn, "exit_pipeline_mode", pgconn_exit_pipeline_mode, 0);
rb_define_method(rb_cPGconn, "sync_pipeline_sync", pgconn_sync_pipeline_sync, 0);
rb_define_method(rb_cPGconn, "send_flush_request", pgconn_send_flush_request, 0);
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
rb_define_method(rb_cPGconn, "send_pipeline_sync", pgconn_send_pipeline_sync, 0);
#endif
#endif
Expand Down
8 changes: 4 additions & 4 deletions ext/pg_result.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,17 +315,17 @@ pg_result_check( VALUE self )
case PGRES_SINGLE_TUPLE:
case PGRES_EMPTY_QUERY:
case PGRES_COMMAND_OK:
#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
case PGRES_PIPELINE_SYNC:
#endif
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
case PGRES_TUPLES_CHUNK:
#endif
return self;
case PGRES_BAD_RESPONSE:
case PGRES_FATAL_ERROR:
case PGRES_NONFATAL_ERROR:
#ifdef HAVE_PQENTERPIPELINEMODE
#ifdef LIBPQ_HAS_PIPELINING
case PGRES_PIPELINE_ABORTED:
#endif
error = rb_str_new2( PQresultErrorMessage(this->pgresult) );
Expand Down Expand Up @@ -1600,7 +1600,7 @@ pgresult_stream_any(VALUE self, int (*yielder)(VALUE, int, int, void*), void* da
return self;
rb_raise( rb_eInvalidResultStatus, "PG::Result is not in single row mode");
case PGRES_SINGLE_TUPLE:
#ifdef HAVE_PQSETCHUNKEDROWSMODE
#ifdef LIBPQ_HAS_CHUNK_MODE
case PGRES_TUPLES_CHUNK:
#endif
break;
Expand Down
Loading