Le 03/01/2010 11:15, Dave Page a écrit :
> On Sun, Jan 3, 2010 at 10:11 AM, Guillaume Lelarge
> <[email protected]> wrote:
>>> Also, doesn't the debugger falback to the libc encoding as the main
>>> connection class does?
>>>
>>
>> It didn't have the fallback libc encoding code before I began to work on
>> this, so I didn't add it. But I can add that pretty easily.
>
> It seems like an oversight, so please do if you have the time.
>
Done. You'll find the new patch attached.
Other comments?
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
diff --git a/pgadmin/db/pgConn.cpp b/pgadmin/db/pgConn.cpp
index 303f0fa..04853e6 100644
--- a/pgadmin/db/pgConn.cpp
+++ b/pgadmin/db/pgConn.cpp
@@ -50,7 +50,7 @@ static void pgNoticeProcessor(void *arg, const char *message)
((pgConn*)arg)->Notice(message);
}
-pgConn::pgConn(const wxString& server, const wxString& database, const wxString& username, const wxString& password, int port, int sslmode, OID oid)
+pgConn::pgConn(const wxString& server, const wxString& database, const wxString& username, const wxString& password, int port, int sslmode, OID oid, const wxString& applicationname)
{
wxString msg, hostip, hostname;
@@ -61,6 +61,7 @@ pgConn::pgConn(const wxString& server, const wxString& database, const wxString&
save_port = port;
save_sslmode = sslmode;
save_oid = oid;
+ save_applicationname = applicationname;
memset(features, 0, sizeof(features));
majorVersion=0;
@@ -168,6 +169,21 @@ pgConn::pgConn(const wxString& server, const wxString& database, const wxString&
dbHost = server;
dbHostName = hostname;
dbHostAddress = hostip;
+
+ if (!applicationname.IsEmpty())
+ {
+ // Check connection string with application_name
+ char *errmsg;
+ wxString connstr_with_applicationname = connstr + wxT(" application_name='") + applicationname + wxT("'");
+ if (PQconninfoParse(connstr_with_applicationname.mb_str(wxConvUTF8), &errmsg))
+ {
+ connstr = connstr_with_applicationname;
+ }
+ else if (PQconninfoParse(connstr_with_applicationname.mb_str(wxConvLibc), &errmsg))
+ {
+ connstr = connstr_with_applicationname;
+ }
+ }
// Open the connection
wxString cleanConnStr = connstr;
@@ -206,10 +222,6 @@ bool pgConn::DoConnect()
connStatus = PGCONN_OK;
PQsetNoticeProcessor(conn, pgNoticeProcessor, this);
- // tell the backend who we really are
- if (BackendMinimumVersion(8, 5))
- ExecuteVoid(wxT("SET application_name='pgAdmin - Browser'"),false);
-
wxString sql=wxT("SET DateStyle=ISO;SELECT oid, pg_encoding_to_char(encoding) AS encoding, datlastsysoid\n")
wxT(" FROM pg_database WHERE ");
diff --git a/pgadmin/debugger/dbgPgConn.cpp b/pgadmin/debugger/dbgPgConn.cpp
index be5e00f..78b1521 100644
--- a/pgadmin/debugger/dbgPgConn.cpp
+++ b/pgadmin/debugger/dbgPgConn.cpp
@@ -43,20 +43,23 @@ typedef u_long in_addr_t;
//
// The constructor creates a new thread and connects to the specified server
-dbgPgConn::dbgPgConn(frmDebugger *frame, const wxString &server, const wxString &database, const wxString &userName, const wxString &password, const wxString &port, int sslmode)
+dbgPgConn::dbgPgConn(frmDebugger *frame, const wxString &server, const wxString &database, const wxString &userName, const wxString &password, const wxString &port, int sslmode, const wxString &applicationname)
: m_frame(frame)
{
- Init( server, database, userName, password, port, sslmode, true );
+ Init( server, database, userName, password, port, sslmode, applicationname, true );
}
dbgPgConn::dbgPgConn(frmDebugger *frame, const dbgConnProp & props, bool startThread )
: m_frame(frame)
{
- Init( props.m_host, props.m_database, props.m_userName, props.m_password, props.m_port, props.m_sslMode, startThread );
+ Init( props.m_host, props.m_database, props.m_userName, props.m_password, props.m_port, props.m_sslMode, props.m_applicationName, startThread );
}
-void dbgPgConn::Init( const wxString &server, const wxString &database, const wxString &username, const wxString &password, const wxString &port, int sslmode, bool startThread )
+void dbgPgConn::Init( const wxString &server, const wxString &database, const wxString &username, const wxString &password, const wxString &port, int sslmode, const wxString &applicationname, bool startThread )
{
+ bool utfConnectString = false;
+ bool libcConnectString = false;
+
m_pgConn = NULL;
m_majorVersion = 0;
m_minorVersion = 0;
@@ -205,13 +208,41 @@ void dbgPgConn::Init( const wxString &server, const wxString &database, const wx
connectParams.Trim(true);
connectParams.Trim(false);
+ if (!applicationname.IsEmpty())
+ {
+ // Check connection string with application_name
+ char *errmsg;
+ wxString connectParams_with_applicationname = connectParams + wxT(" application_name='") + applicationname + wxT("'");
+ if (PQconninfoParse(connectParams_with_applicationname.mb_str(wxConvUTF8), &errmsg))
+ {
+ utfConnectString = true;
+ connectParams = connectParams_with_applicationname;
+ }
+ else if (PQconninfoParse(connectParams_with_applicationname.mb_str(wxConvLibc), &errmsg))
+ {
+ libcConnectString = true;
+ connectParams = connectParams_with_applicationname;
+ }
+ }
+
m_frame->getStatusBar()->SetStatusText( wxString::Format(_( "Connecting to %s" ), msg.c_str()), 1 );
- m_pgConn = PQconnectdb( connectParams.mb_str(wxConvUTF8));
+ wxCharBuffer cstrUTF=connectParams.mb_str(wxConvUTF8);
+ wxCharBuffer cstrLibc=connectParams.mb_str(wxConvLibc);
+
+ if (!libcConnectString)
+ m_pgConn = PQconnectdb(cstrUTF);
+ else
+ m_pgConn = PQconnectdb(cstrLibc);
+
+ if (PQstatus(m_pgConn) != CONNECTION_OK)
+ {
+ PQfinish(m_pgConn);
+ m_pgConn = PQconnectdb(cstrLibc);
+ }
if( PQstatus( m_pgConn ) == CONNECTION_OK )
{
m_frame->getStatusBar()->SetStatusText( wxString::Format(_( "Connected to %s" ), msg.c_str()), 1 );
-
PQsetClientEncoding( m_pgConn, "UNICODE" );
}
else
diff --git a/pgadmin/dlg/dlgSelectConnection.cpp b/pgadmin/dlg/dlgSelectConnection.cpp
index 45e95e4..2c6e564 100644
--- a/pgadmin/dlg/dlgSelectConnection.cpp
+++ b/pgadmin/dlg/dlgSelectConnection.cpp
@@ -186,10 +186,10 @@ void dlgSelectConnection::OnCancel(wxCommandEvent& ev)
EndModal(wxID_CANCEL);
}
-pgConn *dlgSelectConnection::CreateConn()
+pgConn *dlgSelectConnection::CreateConn(wxString& applicationname)
{
if (GetServer()) /* Running with access to the main form with the object tree */
- return GetServer()->CreateConn(GetDatabase());
+ return GetServer()->CreateConn(GetDatabase(), 0, applicationname);
else
{
/* gcc requires that we store this in temporary variables for some reason... */
@@ -206,14 +206,14 @@ pgConn *dlgSelectConnection::CreateConn()
serv = serv.Mid(0, serv.Find(':'));
}
wxString user = txtUsername->GetValue();
- return CreateConn(serv, db, user, port, 0, true);
+ return CreateConn(serv, db, user, port, 0, applicationname, true);
}
}
-pgConn *dlgSelectConnection::CreateConn(wxString& server, wxString& dbname, wxString& username, int port, int sslmode, bool writeMRU)
+pgConn *dlgSelectConnection::CreateConn(wxString& server, wxString& dbname, wxString& username, int port, int sslmode, wxString& applicationname, bool writeMRU)
{
pgConn *newconn;
- newconn = new pgConn(server, dbname, username, wxT(""), port, sslmode);
+ newconn = new pgConn(server, dbname, username, wxT(""), port, sslmode, 0, applicationname);
if (newconn->GetStatus() != PGCONN_OK &&
newconn->GetLastError().Cmp(wxString(PQnoPasswordSupplied, wxConvUTF8)) == 0)
{
@@ -227,7 +227,7 @@ pgConn *dlgSelectConnection::CreateConn(wxString& server, wxString& dbname, wxSt
if (dlg.Go() != wxID_OK)
return NULL;
- newconn = new pgConn(server, dbname, username, dlg.GetPassword(), port, sslmode);
+ newconn = new pgConn(server, dbname, username, dlg.GetPassword(), port, sslmode, 0, applicationname);
}
if (newconn)
diff --git a/pgadmin/frm/frmConfig.cpp b/pgadmin/frm/frmConfig.cpp
index 3e21a6a..aae2227 100644
--- a/pgadmin/frm/frmConfig.cpp
+++ b/pgadmin/frm/frmConfig.cpp
@@ -62,11 +62,6 @@ frmConfig::frmConfig(frmMain *parent, const wxString& title, pgConn *_conn)
mainForm = parent;
conn=_conn;
SetStatusBarPane(-1);
-
- // tell the backend who we really are
- if (conn->BackendMinimumVersion(8, 5))
- conn->ExecuteVoid(wxT("SET application_name='pgAdmin - Config Editor'"),false);
-
}
diff --git a/pgadmin/frm/frmEditGrid.cpp b/pgadmin/frm/frmEditGrid.cpp
index 4927f27..30bd017 100644
--- a/pgadmin/frm/frmEditGrid.cpp
+++ b/pgadmin/frm/frmEditGrid.cpp
@@ -107,10 +107,6 @@ frmEditGrid::frmEditGrid(frmMain *form, const wxString& _title, pgConn *_conn, p
relid=(Oid)obj->GetOid();
editorCell = new sqlCell();
- // tell the backend who we really are
- if (connection->BackendMinimumVersion(8, 5))
- connection->ExecuteVoid(wxT("SET application_name='pgAdmin - Edit Grid'"),false);
-
// notify wxAUI which frame to use
manager.SetManagedWindow(this);
manager.SetFlags(wxAUI_MGR_DEFAULT | wxAUI_MGR_TRANSPARENT_DRAG);
@@ -3064,9 +3060,10 @@ bool editGridFactoryBase::CheckEnable(pgObject *obj)
wxWindow *editGridFactoryBase::ViewData(frmMain *form, pgObject *obj, bool filter)
{
pgDatabase *db=((pgSchemaObject*)obj)->GetDatabase();
+ wxString applicationname = wxT("pgAdmin - Edit Grid");
pgServer *server=db->GetServer();
- pgConn *conn= db->CreateConn();
+ pgConn *conn= db->CreateConn(applicationname);
if (conn)
{
wxString txt = wxT("Edit Data - ")
diff --git a/pgadmin/frm/frmHbaConfig.cpp b/pgadmin/frm/frmHbaConfig.cpp
index 511ff9f..4f5114e 100644
--- a/pgadmin/frm/frmHbaConfig.cpp
+++ b/pgadmin/frm/frmHbaConfig.cpp
@@ -48,16 +48,13 @@ END_EVENT_TABLE()
frmHbaConfig::frmHbaConfig(frmMain *parent, pgServer *server)
: frmConfig(parent, BACE_TITLE, 0)
{
+ wxString applicationname = wxT("pgAdmin - Configuration Editor");
if (server)
- conn = server->CreateConn();
+ conn = server->CreateConn(wxEmptyString, 0, applicationname);
Init();
if (conn)
{
- // tell the backend who we really are
- if (conn->BackendMinimumVersion(8, 5))
- conn->ExecuteVoid(wxT("SET application_name='pgAdmin - Config Editor'"),false);
-
serverFileName = conn->ExecuteScalar(wxT("SHOW hba_file"));
if (serverFileName == wxT("unset") || serverFileName.IsEmpty())
serverFileName = wxT("pg_hba.conf");
diff --git a/pgadmin/frm/frmMainConfig.cpp b/pgadmin/frm/frmMainConfig.cpp
index 1b21f0d..1d7395f 100644
--- a/pgadmin/frm/frmMainConfig.cpp
+++ b/pgadmin/frm/frmMainConfig.cpp
@@ -47,18 +47,15 @@ END_EVENT_TABLE()
frmMainConfig::frmMainConfig(frmMain *parent, pgServer *server)
: frmConfig(parent, BCE_TITLE, 0)
{
+ wxString applicationname = wxT("pgAdmin - Configuration Editor");
if (server)
- conn = server->CreateConn();
+ conn = server->CreateConn(wxEmptyString, 0, applicationname);
InitForm();
Init();
if (conn)
{
- // tell the backend who we really are
- if (conn->BackendMinimumVersion(8, 5))
- conn->ExecuteVoid(wxT("SET application_name='pgAdmin - Config Editor'"),false);
-
if (serverFileName.IsEmpty())
serverFileName = wxT("postgresql.conf");
diff --git a/pgadmin/frm/frmQuery.cpp b/pgadmin/frm/frmQuery.cpp
index ecfca27..8cc5e05 100644
--- a/pgadmin/frm/frmQuery.cpp
+++ b/pgadmin/frm/frmQuery.cpp
@@ -212,10 +212,6 @@ pgsTimer(new pgScriptTimer(this))
recentKey = wxT("RecentFiles");
RestorePosition(100, 100, 600, 500, 450, 300);
- // tell the backend who we really are
- if (conn->BackendMinimumVersion(8, 5))
- conn->ExecuteVoid(wxT("SET application_name='pgAdmin - Query Tool'"),false);
-
// notify wxAUI which frame to use
manager.SetManagedWindow(this);
manager.SetFlags(wxAUI_MGR_DEFAULT | wxAUI_MGR_TRANSPARENT_DRAG);
@@ -910,7 +906,8 @@ void frmQuery::OnChangeConnection(wxCommandEvent &ev)
int rc=dlg.Go(conn, cbConnection);
if (rc == wxID_OK)
{
- conn = dlg.CreateConn();
+ wxString applicationname = wxT("pgAdmin - Query Tool");
+ conn = dlg.CreateConn(applicationname);
if (conn)
{
cbConnection->Insert(conn->GetName(), CreateBitmap(GetServerColour()), sel, (void*)conn);
@@ -2592,7 +2589,8 @@ wxColour frmQuery::GetServerColour()
wxWindow *queryToolBaseFactory::StartDialogSql(frmMain *form, pgObject *obj, const wxString &sql)
{
pgDatabase *db=obj->GetDatabase();
- pgConn *conn = db->CreateConn();
+ wxString applicationname = wxT("pgAdmin - Query Tool");
+ pgConn *conn = db->CreateConn(applicationname);
if (conn)
{
frmQuery *fq= new frmQuery(form, wxEmptyString, conn, sql);
diff --git a/pgadmin/frm/frmStatus.cpp b/pgadmin/frm/frmStatus.cpp
index 1678d09..d25c1f9 100644
--- a/pgadmin/frm/frmStatus.cpp
+++ b/pgadmin/frm/frmStatus.cpp
@@ -176,10 +176,6 @@ frmStatus::frmStatus(frmMain *form, const wxString& _title, pgConn *conn) : pgFr
logHasTimestamp = false;
logFormatKnown = false;
- // tell the backend who we really are
- if (conn->BackendMinimumVersion(8, 5))
- conn->ExecuteVoid(wxT("SET application_name='pgAdmin - Server Status'"),false);
-
// Notify wxAUI which frame to use
manager.SetManagedWindow(this);
manager.SetFlags(wxAUI_MGR_DEFAULT | wxAUI_MGR_TRANSPARENT_DRAG | wxAUI_MGR_ALLOW_ACTIVE_PANE);
@@ -442,7 +438,8 @@ void frmStatus::OnChangeDatabase(wxCommandEvent &ev)
}
locks_connection = new pgConn(connection->GetHostAddress(), cbDatabase->GetValue(),
- connection->GetUser(), connection->GetPassword(), connection->GetPort(), connection->GetSslMode());
+ connection->GetUser(), connection->GetPassword(), connection->GetPort(), connection->GetSslMode(),
+ 0, connection->GetApplicationName());
}
@@ -801,10 +798,10 @@ void frmStatus::OnCopyQuery(wxCommandEvent& ev)
if (text.Length() > 0 && dbname.Length() > 0
&& text.Trim() != wxT("<IDLE>") && text.Trim() != wxT("<IDLE in transaction>"))
{
- //pgDatabase *db=obj->GetDatabase();
pgConn *conn = new pgConn(connection->GetHostAddress(), dbname,
connection->GetUser(), connection->GetPassword(),
- connection->GetPort(), connection->GetSslMode(), connection->GetDbOid());
+ connection->GetPort(), connection->GetSslMode(), connection->GetDbOid(),
+ connection->GetApplicationName());
if (conn)
{
frmQuery *fq = new frmQuery(mainForm, wxEmptyString, conn, text);
@@ -2329,7 +2326,9 @@ void frmStatus::OnCommit(wxCommandEvent &event)
connection->GetUser(),
connection->GetPassword(),
connection->GetPort(),
- connection->GetSslMode());
+ connection->GetSslMode(),
+ 0,
+ connection->GetApplicationName());
if (tmpConn)
{
if (tmpConn->GetStatus() != PGCONN_OK)
@@ -2377,7 +2376,9 @@ void frmStatus::OnRollback(wxCommandEvent &event)
connection->GetUser(),
connection->GetPassword(),
connection->GetPort(),
- connection->GetSslMode());
+ connection->GetSslMode(),
+ 0,
+ connection->GetApplicationName());
if (tmpConn)
{
if (tmpConn->GetStatus() != PGCONN_OK)
@@ -2542,8 +2543,9 @@ wxWindow *serverStatusFactory::StartDialog(frmMain *form, pgObject *obj)
{
pgServer *server=obj->GetServer();
+ wxString applicationname = wxT("pgAdmin - Server Status");
- pgConn *conn = server->CreateConn();
+ pgConn *conn = server->CreateConn(wxEmptyString, 0, applicationname);
if (conn)
{
wxString txt = _("Server Status - ") + server->GetDescription()
diff --git a/pgadmin/include/db/pgConn.h b/pgadmin/include/db/pgConn.h
index 6d5261a..289bf72 100644
--- a/pgadmin/include/db/pgConn.h
+++ b/pgadmin/include/db/pgConn.h
@@ -81,7 +81,7 @@ typedef struct pgError {
class pgConn
{
public:
- pgConn(const wxString& server = wxT(""), const wxString& database = wxT(""), const wxString& username = wxT(""), const wxString& password = wxT(""), int port = 5432, int sslmode=0, OID oid=0);
+ pgConn(const wxString& server = wxT(""), const wxString& database = wxT(""), const wxString& username = wxT(""), const wxString& password = wxT(""), int port = 5432, int sslmode=0, OID oid=0, const wxString& applicationname = wxT("pgAdmin"));
~pgConn();
bool HasPrivilege(const wxString &objTyp, const wxString &objName, const wxString &priv);
@@ -114,6 +114,7 @@ public:
wxString GetHostName() const { return dbHostName; }
wxString GetHostAddress() const { return dbHostAddress; }
wxString GetDbname() const { return save_database; }
+ wxString GetApplicationName() const { return save_applicationname; }
wxString GetName() const;
bool GetNeedUtfConnectString() { return utfConnectString; }
int GetPort() const { return atoi(PQport(conn)); };
@@ -177,7 +178,7 @@ private:
wxString reservedNamespaces;
wxString connstr;
- wxString save_server, save_database, save_username, save_password;
+ wxString save_server, save_database, save_username, save_password, save_applicationname;
int save_port, save_sslmode;
OID save_oid;
};
diff --git a/pgadmin/include/debugger/dbgConnProp.h b/pgadmin/include/debugger/dbgConnProp.h
index e527ffc..dca36a0 100644
--- a/pgadmin/include/debugger/dbgConnProp.h
+++ b/pgadmin/include/debugger/dbgConnProp.h
@@ -32,6 +32,7 @@ public:
wxString m_port; // Port number
wxString m_debugPort; // Port number for debugger connection
int m_sslMode; // SSL Mode
+ wxString m_applicationName; // Application name, only on 8.5
};
#endif
diff --git a/pgadmin/include/debugger/dbgPgConn.h b/pgadmin/include/debugger/dbgPgConn.h
index a96c6d9..7ca3e13 100644
--- a/pgadmin/include/debugger/dbgPgConn.h
+++ b/pgadmin/include/debugger/dbgPgConn.h
@@ -57,7 +57,8 @@ class dbgPgConn
const wxString &username = wxT( "" ),
const wxString &password = wxT( "" ),
const wxString &port = wxT( "5432" ),
- int sslmode = 0 );
+ int sslmode = 0,
+ const wxString &applicationname = wxT( "" ));
dbgPgConn( frmDebugger *frame, const dbgConnProp & props, bool startThread = true );
@@ -83,7 +84,7 @@ class dbgPgConn
private:
- void Init( const wxString &server, const wxString &database, const wxString &userName, const wxString &password, const wxString &port, int sslmode, bool startThread );
+ void Init( const wxString &server, const wxString &database, const wxString &userName, const wxString &password, const wxString &port, int sslmode, const wxString &applicationname, bool startThread );
PGconn *m_pgConn; // libpq connection handler
dbgPgThread *m_workerThread; // Worker thread (this thread interacts with the server)
diff --git a/pgadmin/include/dlg/dlgSelectConnection.h b/pgadmin/include/dlg/dlgSelectConnection.h
index 41607c6..d1c3541 100644
--- a/pgadmin/include/dlg/dlgSelectConnection.h
+++ b/pgadmin/include/dlg/dlgSelectConnection.h
@@ -24,8 +24,8 @@ public:
~dlgSelectConnection();
wxString GetHelpPage() const;
pgServer *GetServer() { return remoteServer; }
- pgConn *CreateConn();
- pgConn *CreateConn(wxString& server, wxString& dbname, wxString& username, int port, int sslmode, bool writeMRU = false);
+ pgConn *CreateConn(wxString& applicationame);
+ pgConn *CreateConn(wxString& server, wxString& dbname, wxString& username, int port, int sslmode, wxString& applicationame, bool writeMRU = false);
wxString GetServerName();
wxString GetDatabase();
diff --git a/pgadmin/include/schema/pgDatabase.h b/pgadmin/include/schema/pgDatabase.h
index 1bfaf0d..440248c 100644
--- a/pgadmin/include/schema/pgDatabase.h
+++ b/pgadmin/include/schema/pgDatabase.h
@@ -51,7 +51,7 @@ public:
bool ExecuteVoid(const wxString& sql, bool reportError = true);
void UpdateDefaultSchema();
- pgConn *CreateConn() { return server->CreateConn(GetName(), GetOid()); }
+ pgConn *CreateConn(const wxString& applicationname) { return server->CreateConn(GetName(), GetOid(), applicationname); }
wxString GetPrettyOption() const { return prettyOption; }
diff --git a/pgadmin/include/schema/pgServer.h b/pgadmin/include/schema/pgServer.h
index 40f5ed7..2d59b5b 100644
--- a/pgadmin/include/schema/pgServer.h
+++ b/pgadmin/include/schema/pgServer.h
@@ -81,7 +81,7 @@ public:
bool GetCreateRole() const { return createRole; }
void iSetCreateRole(const bool b) { createRole=b; }
- pgConn *CreateConn(wxString dbName=wxEmptyString, OID oid=0);
+ pgConn *CreateConn(wxString dbName=wxEmptyString, OID oid=0, wxString applicationname=wxEmptyString);
wxString GetLastDatabase() const { return lastDatabase; }
void iSetLastDatabase(const wxString& s) { lastDatabase=s; }
diff --git a/pgadmin/pgAdmin3.cpp b/pgadmin/pgAdmin3.cpp
index 053ead4..259fec5 100644
--- a/pgadmin/pgAdmin3.cpp
+++ b/pgadmin/pgAdmin3.cpp
@@ -435,6 +435,7 @@ bool pgAdmin3::OnInit()
// -S specified, but not -s. Open the server status window but do *not* open the main window
pgConn *conn = NULL;
wxString connstr;
+ wxString applicationname = wxT("pgAdmin - Server Status");
if (cmdParser.Found(wxT("S")))
{
@@ -447,7 +448,7 @@ bool pgAdmin3::OnInit()
int rc=dlg.Go(conn, NULL);
if (rc != wxID_OK)
return false;
- conn = dlg.CreateConn();
+ conn = dlg.CreateConn(applicationname);
}
else if (cmdParser.Found(wxT("Sc"), &connstr))
{
@@ -498,7 +499,7 @@ bool pgAdmin3::OnInit()
winSplash->Show(false);
dlgSelectConnection dlg(NULL, NULL);
dlg.CenterOnParent();
- conn = dlg.CreateConn(host, database, username, port, sslmode);
+ conn = dlg.CreateConn(host, database, username, port, sslmode, applicationname);
}
else
{
@@ -521,6 +522,7 @@ bool pgAdmin3::OnInit()
// -q specified, but not -s. Open a query tool but do *not* open the main window
pgConn *conn = NULL;
wxString connstr;
+ wxString applicationname = wxT("pgAdmin - Query Tool");
#ifdef __WXMAC__
if (cmdParser.Found(wxT("q")) || !macFileToOpen.IsEmpty())
@@ -537,7 +539,7 @@ bool pgAdmin3::OnInit()
int rc=dlg.Go(conn, NULL);
if (rc != wxID_OK)
return false;
- conn = dlg.CreateConn();
+ conn = dlg.CreateConn(applicationname);
}
else if (cmdParser.Found(wxT("qc"), &connstr))
{
@@ -588,7 +590,7 @@ bool pgAdmin3::OnInit()
winSplash->Show(false);
dlgSelectConnection dlg(NULL, NULL);
dlg.CenterOnParent();
- conn = dlg.CreateConn(host, database, username, port, sslmode);
+ conn = dlg.CreateConn(host, database, username, port, sslmode, applicationname);
}
else
{
@@ -633,7 +635,8 @@ bool pgAdmin3::OnInit()
if (srv && cmdParser.Found(wxT("q")))
{
pgConn *conn;
- conn = srv->CreateConn();
+ wxString applicationname = wxT("pgAdmin - Query Tool");
+ conn = srv->CreateConn(applicationname);
if (conn)
{
wxString fn;
diff --git a/pgadmin/schema/pgDatabase.cpp b/pgadmin/schema/pgDatabase.cpp
index 2b401b3..8bf83a5 100644
--- a/pgadmin/schema/pgDatabase.cpp
+++ b/pgadmin/schema/pgDatabase.cpp
@@ -87,7 +87,8 @@ int pgDatabase::Connect()
else
{
useServerConnection = false;
- conn = CreateConn();
+ wxString applicationname = wxT("pgAdmin - Browser");
+ conn = CreateConn(applicationname);
if (!conn)
{
diff --git a/pgadmin/schema/pgRole.cpp b/pgadmin/schema/pgRole.cpp
index e8868d9..91a7e85 100644
--- a/pgadmin/schema/pgRole.cpp
+++ b/pgadmin/schema/pgRole.cpp
@@ -301,7 +301,9 @@ void pgRole::ReassignDropOwnedTo(frmMain *form)
GetConnection()->GetUser(),
GetConnection()->GetPassword(),
GetConnection()->GetPort(),
- GetConnection()->GetSslMode());
+ GetConnection()->GetSslMode(),
+ 0,
+ GetConnection()->GetApplicationName());
if (conn->GetStatus() == PGCONN_OK)
{
diff --git a/pgadmin/schema/pgServer.cpp b/pgadmin/schema/pgServer.cpp
index 92d9435..224ea39 100644
--- a/pgadmin/schema/pgServer.cpp
+++ b/pgadmin/schema/pgServer.cpp
@@ -127,7 +127,7 @@ pgServer *pgServer::GetServer() const
}
-pgConn *pgServer::CreateConn(wxString dbName, OID oid)
+pgConn *pgServer::CreateConn(wxString dbName, OID oid, wxString applicationname)
{
if (!connected)
return 0;
@@ -137,7 +137,7 @@ pgConn *pgServer::CreateConn(wxString dbName, OID oid)
dbName = GetDatabaseName();
oid = dbOid;
}
- pgConn *conn=new pgConn(GetName(), dbName, username, password, port, ssl, oid);
+ pgConn *conn=new pgConn(GetName(), dbName, username, password, port, ssl, oid, applicationname);
if (conn && conn->GetStatus() != PGCONN_OK)
{
@@ -614,21 +614,21 @@ int pgServer::Connect(frmMain *form, bool askPassword, const wxString &pwd, bool
if (database.IsEmpty())
{
- conn = new pgConn(GetName(), DEFAULT_PG_DATABASE, username, password, port, ssl);
+ conn = new pgConn(GetName(), DEFAULT_PG_DATABASE, username, password, port, ssl, 0, wxT("pgAdmin - Browser"));
if (conn->GetStatus() == PGCONN_OK)
database=DEFAULT_PG_DATABASE;
else if (conn->GetStatus() == PGCONN_BAD && conn->GetLastError().Find(
wxT("database \"") DEFAULT_PG_DATABASE wxT("\" does not exist")) >= 0)
{
delete conn;
- conn = new pgConn(GetName(), wxT("template1"), username, password, port, ssl);
+ conn = new pgConn(GetName(), wxT("template1"), username, password, port, ssl, 0, wxT("pgAdmin - Browser"));
if (conn && conn->GetStatus() == PGCONN_OK)
database=wxT("template1");
}
}
else
{
- conn = new pgConn(GetName(), database, username, password, port, ssl);
+ conn = new pgConn(GetName(), database, username, password, port, ssl, 0, wxT("pgAdmin - Browser"));
if (!conn)
{
form->EndMsg(false);
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers