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@gmail.com> 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