在PostgreSQL回归套件中添加特定于语言环境的测试是一个好主意吗?
我正在开发一个与区域设置相关的功能,为了测试它,我需要使用不同的区域设置运行一些SQL查询。比如说在PostgreSQL回归套件中添加特定于语言环境的测试是一个好主意吗?,sql,database,postgresql,internationalization,locale,Sql,Database,Postgresql,Internationalization,Locale,我正在开发一个与区域设置相关的功能,为了测试它,我需要使用不同的区域设置运行一些SQL查询。比如说 SET lc_messages to 'en_US.UTF-8'; -- some sql queries; SET lc_messages to 'fr_FR.UTF-8'; -- some sql queries; 在我的Linux机器上,它正在工作,但我们不能总是期望这个集合或任何(C或POSIX除外)区域设置在其他平台上可用。有办法解决这个问题吗?您有两个选择: 如果区域设置不存在,则跳
SET lc_messages to 'en_US.UTF-8';
-- some sql queries;
SET lc_messages to 'fr_FR.UTF-8';
-- some sql queries;
在我的Linux机器上,它正在工作,但我们不能总是期望这个集合或任何(C或POSIX除外)区域设置在其他平台上可用。有办法解决这个问题吗?您有两个选择:
SELECT (SELECT count(*) FROM pg_collation
WHERE collname = 'fr_FR.UTF-8') = 0
AS skip_test \gset
\if :skip_test
\quit
然后为这种情况提供一个替代的“预期结果文件”如果您也以Windows为目标,则在失败之前也应尝试使用其区域设置名称。此功能是否打算包含在核心PostgreSQL中?你研究过核心回归测试是如何做到的吗?不,这不是为了包含在核心PostgreSQL中。我在核心回归测试中搜索,发现了一个测试src/test/regresse/sql/collate.sql,在这个测试中,由于同样的原因,只使用了“C”或“POSIX”语言环境。