Re: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE
От | Tom Lane |
---|---|
Тема | Re: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE |
Дата | |
Msg-id | 2060083.1654794096@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE (PG Bug reporting form <noreply@postgresql.org>) |
Ответы |
RE: BUG #17514: Application with embedded SQL crashes when executing EXEC SQL PREPARE
|
Список | pgsql-bugs |
PG Bug reporting form <noreply@postgresql.org> writes: > Application with embedded SQL crashes with segmentation fault if I execute > EXEC SQL PREPARE > command before executing EXEC SQL CONNECT command (*1). > I know that it is the correct operation to execute EXEC SQL CONNECT command > first > and then execute EXEC SQL PREPARE command. > But I expect this wrong operation to result in an error, not a crash. We could do something like the attached, perhaps. Having said that, an application that includes no error checks is pretty unlikely to fail gracefully :-(. regards, tom lane diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c index 8dfcabe3b5..90f2ba9701 100644 --- a/src/interfaces/ecpg/ecpglib/connect.c +++ b/src/interfaces/ecpg/ecpglib/connect.c @@ -40,6 +40,8 @@ ecpg_get_connection_nr(const char *connection_name) if ((connection_name == NULL) || (strcmp(connection_name, "CURRENT") == 0)) { #ifdef ENABLE_THREAD_SAFETY + ecpg_pthreads_init(); /* ensure actual_connection_key is valid */ + ret = pthread_getspecific(actual_connection_key); /* @@ -78,6 +78,8 @@ ecpg_get_connection(const char *connection_name) if ((connection_name == NULL) || (strcmp(connection_name, "CURRENT") == 0)) { #ifdef ENABLE_THREAD_SAFETY + ecpg_pthreads_init(); /* ensure actual_connection_key is valid */ + ret = pthread_getspecific(actual_connection_key); /*
В списке pgsql-bugs по дате отправления: