Login with LDAP authentication takes 5 seconds

2018-05-29 Thread Andreas Schmid
 Hi,

I configured my PostgreSQL 10 DB on Debian 9.2 with LDAP authentication
(simple bind mode). While this basically works, it has the strange effect
that the first login with psql takes around 5 seconds. When I reconnect
within 60 seconds, the login completes immediately.

The LDAP server is behind a firewall. So for a test, in pg_hba.conf I put
the LDAP servers IP address instead of its DNS name (for parameter
ldapserver). Like that, all logins complete immediately. But in general I
prefer specifying the DNS name rather than the IP.

When I checked on the DB machine with the following commands
host my.ldap.server.org
dig my.ldap.server.org
both always returned the host name and IP address of the LDAP server
immediately.

Does anyone of you have an explanation for this, or a hint, where I could
do some further investigation?

Thanks,
Andy


Re: Login with LDAP authentication takes 5 seconds

2018-06-04 Thread Andreas Schmid
 Thanks a lot to all of you for your valuable hints. So I tried some more
and found that traceroute and ping show the same symptoms, i.e. first call
takes 5 seconds. However, traceroute -4 and ping -4 always respond
immediately.
So, searching for "linux dns lookup takes long ipv4" brought me to
https://askubuntu.com/a/32312 on AskUbuntu that suggested adding

options single-request

to /etc/resolv.conf. And wow, this did the trick.
So, according to the page linked there, I'm maybe having to do with a DNS
Server or Firewall that doesn't handle the parallel IPv4 and IPv6 requests
properly... I'll check with my IT.

Thank you again, folks.

Andy

On 31 May 2018 at 16:54, Achilleas Mantzios 
wrote:

> On 28/05/2018 17:26, Andreas Schmid wrote:
>
> Hi,
>
> I configured my PostgreSQL 10 DB on Debian 9.2 with LDAP authentication
> (simple bind mode). While this basically works, it has the strange effect
> that the first login with psql takes around 5 seconds. When I reconnect
> within 60 seconds, the login completes immediately.
>
> The LDAP server is behind a firewall. So for a test, in pg_hba.conf I put
> the LDAP servers IP address instead of its DNS name (for parameter
> ldapserver). Like that, all logins complete immediately. But in general I
> prefer specifying the DNS name rather than the IP.
>
> When I checked on the DB machine with the following commands
> host my.ldap.server.org
> dig my.ldap.server.org
> both always returned the host name and IP address of the LDAP server
> immediately.
>
> Does anyone of you have an explanation for this, or a hint, where I could
> do some further investigation?
>
> IPv4 vs IPv6 ? any strange timeouts? look in the postgresql logs for any
> messages.
> Also definitely ran wireshark, it'll tell you a lot on what's happening
> between postgresql and your LDAP .
>
>
> Thanks,
> Andy
>
>
> --
> Achilleas Mantzios
> IT DEV Lead
> IT DEPT
> Dynacom Tankers Mgmt
>
>


UNION ALL: Apparently based on column order rather than on column name or alias

2018-12-06 Thread Andreas Schmid
Hi list

I realized the following behaviour of UNION ALL:

SELECT 'a' AS col1, 'b' AS col2
UNION ALL
SELECT 'c' AS col1, 'd' AS col2;

returns:

 col1 | col2
--+--
 a| b
 c| d

Now I switch the column aliases in the second SELECT-Statement:

SELECT 'a' AS col1, 'b' AS col2
UNION ALL
SELECT 'c' AS col2, 'd' AS col1;

This returns the same result:

 col1 | col2
--+--
 a| b
 c| d

Same behaviour when working just with column names, no aliases.

So my conclusion is that the result of UNION ALL depends on the column
order, not on the column names or aliases. Is this the intended
behaviour? And is it documented somewhere? What I found is the last
sentence on https://www.postgresql.org/docs/current/queries-union.html
which says
"[...] they return the same number of columns and the corresponding
columns have compatible data types [...]"
It says nothing about column order, column names or aliases. Does this
obviously imply it's the column order?

Thank you for some clarification.
Andy