python 函数是如何编译和存储在​​ PostgreSQL 中的?

How are python functions compiled and stored in PostgreSQL?

场景:

  1. 我在磁盘某处有一个 python 函数。
  2. 我在 pg 服务器中编译了一个 plpythonu 函数,它引用了磁盘上步骤 1 中的 python 函数。
  3. 我更改了 python 函数中的一些内容(从第 1 步开始)。
  4. 如果我编译 plpythonu 函数(从第 2 步开始),从 pg 服务器调用时,第 3 步中所做的更改不会生效。

此类函数的示例可以在我的另一个问题中看到: Python function hangs when called from within sql function

我的假设(这对我来说是什么):

如果这些假设有误,还请指正并说明。或者甚至指出可以找到它的文档,我还没有成功找到它。

PG server stores both the python function (step 1) code and plpythonu code somewhere at first compilation, where ?

pl/python 函数自身的 Python 代码(但不是任何模块、库等)存储在数据库的 pg_proc table 中。

编译的 Python 字节码在给定后端首次 运行 时存储在内存中的系统缓存中。如果磁盘上的文件发生变化,它不会在之后更新。新连接将看到新代码,旧连接将看到现有代码。