Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7463957

Browse files
kvapkelvich
authored andcommitted
Make 'user=' optional in mmts conninfo strings.
1 parentfb67c0b commit7463957

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

‎multimaster.c

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
#include"funcapi.h"
1414
#include"fmgr.h"
1515
#include"miscadmin.h"
16+
1617
#include"libpq-fe.h"
18+
#include"common/username.h"
19+
1720
#include"postmaster/postmaster.h"
1821
#include"postmaster/bgworker.h"
1922
#include"storage/lwlock.h"
@@ -1931,21 +1934,31 @@ static void MtmSplitConnStrs(void)
19311934
elog(ERROR,"Database is not specified in connection string: '%s'",connStr);
19321935

19331936
if (dbUser==NULL)
1934-
elog(ERROR,"Database user is not specified in connection string: '%s'",connStr);
1937+
{
1938+
char*errstr;
1939+
constchar*username=get_user_name(&errstr);
1940+
if (!username)
1941+
elog(FATAL,"Database user is not specified in connection string '%s', fallback failed: %s",connStr,errstr);
1942+
else
1943+
elog(WARNING,"Database user is not specified in connection string '%s', fallback to '%s'",connStr,username);
1944+
MtmDatabaseUser=pstrdup(username);
1945+
}
1946+
else
1947+
{
1948+
dbUser+=5;
1949+
end=strchr(dbUser,' ');
1950+
if (!end)end=strchr(dbUser,'\0');
1951+
Assert(end!=NULL);
1952+
len=end-dbUser;
1953+
MtmDatabaseUser=pnstrdup(dbUser,len);
1954+
}
19351955

19361956
dbName+=7;
1937-
for (end=dbName;*end!=' '&&*end!='\0';end++);
1957+
end=strchr(dbName,' ');
1958+
if (!end)end=strchr(dbName,'\0');
1959+
Assert(end!=NULL);
19381960
len=end-dbName;
1939-
MtmDatabaseName= (char*)palloc(len+1);
1940-
memcpy(MtmDatabaseName,dbName,len);
1941-
MtmDatabaseName[len]='\0';
1942-
1943-
dbUser+=5;
1944-
for (end=dbUser;*end!=' '&&*end!='\0';end++);
1945-
len=end-dbUser;
1946-
MtmDatabaseUser= (char*)palloc(len+1);
1947-
memcpy(MtmDatabaseUser,dbUser,len);
1948-
MtmDatabaseUser[len]='\0';
1961+
MtmDatabaseName=pnstrdup(dbName,len);
19491962
}
19501963
connStr=p+1;
19511964
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp