I did not re-initdb, just use the old pgdata. I also did not recreate
current database.
Some of the database has value 1 for lanvalidator, some has 2247.
I'll check with the team how the lanvalidator got 1 for the value. I
will report back here.
Thanks,
Soni.
On 23/04/2019 10:51, Tom Lane wrote:
Soni <diptatapa@xxxxxxxxx> writes:
Here it is:
select * from pg_language;
lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid |
laninline | lanvalidator | lanacl
----------+----------+---------+--------------+---------------+-----------+--------------+--------
internal | 10 | f | f | 0 |
0 | 2246 |
sql | 10 | f | t | 0 |
0 | 2248 |
plpgsql | 10 | t | t | 13793 |
13794 | 13795 |
c | 10 | f | f | 0 |
0 | 1 |
(4 rows)
Hm. That doesn't look like data corruption: that looks like
somebody actually did
update pg_language set lanvalidator = 1 where lanname = 'c';
or something equivalent to that. Needless to say, that was
not a good idea.
You said you reinstalled the postgres executables, but did you
re-initdb? Or even just re-create the current database?
I'm wondering if it's like that in every database of your cluster.
It'd be possible to fix this particular database by setting
lanvalidator back to its correct value (2247) but it'd be
wise to first inquire as to how it got like this.
regards, tom lane