30.2. ÐÑенка ÑезÑлÑÑаÑов ÑеÑÑиÑованиÑ
- 30.2.1. РазлиÑÐ¸Ñ Ð² ÑообÑениÑÑ
об оÑибке
- 30.2.2. РазниÑа локалей
- 30.2.3. РазниÑа в даÑе и вÑемени
- 30.2.4. РазниÑа в ÑиÑÐ»Ð°Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой
- 30.2.5. РазниÑа в ÑоÑÑиÑовке ÑÑÑок
- 30.2.6. ÐедоÑÑаÑоÑÐ½Ð°Ñ Ð³Ð»Ñбина ÑÑека
- 30.2.7. ТеÑÑ Â«ÑлÑÑайнÑÑ Ð·Ð½Ð°Ñений»
- 30.2.8. ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии
- 30.2.2. РазниÑа локалей
ÐекоÑоÑÑе пÑавилÑно ÑÑÑановленнÑе и полноÑÑÑÑ ÑÑнкÑионалÑнÑе Postgres Pro инÑÑаллÑÑии могÑÑ Â«Ð´Ð°Ð²Ð°ÑÑ Ñбой» пÑи пÑоÑ
ождении некоÑоÑÑÑ
ÑегÑеÑÑионнÑÑ
ÑеÑÑов из-за оÑобенноÑÑей, пÑиÑÑÑиÑ
Ñой или иной плаÑÑоÑме, ÑакиÑ
как ÑазлиÑное пÑедÑÑавление ÑиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой и ÑоÑмÑлиÑовкой ÑообÑений. РнаÑÑоÑÑее вÑÐµÐ¼Ñ ÑезÑлÑÑаÑÑ ÑеÑÑов оÑениваÑÑÑÑ Ð¿ÑоÑÑÑм diff ÑÑавнением Ñ Ð²Ñводом, ÑделаннÑм в ÑÑалонной ÑиÑÑеме, поÑÑÐ¾Ð¼Ñ ÑезÑлÑÑаÑÑ ÑÑвÑÑвиÑелÑÐ½Ñ Ðº неболÑÑим оÑлиÑиÑм Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑемами. Ðогда ÑеÑÑ Ð·Ð°Ð²ÐµÑÑаеÑÑÑ Ñо «Ñбоем», вÑегда иÑÑледÑйÑе ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñм и полÑÑеннÑм ÑезÑлÑÑаÑом; возможно, Ð²Ñ Ð¾Ð±Ð½Ð°ÑÑжиÑе, ÑÑо ÑазниÑа не ÑÑÐ¾Ð»Ñ Ñж ÑÑÑеÑÑвенна. Тем не менее, Ð¼Ñ ÑÑÑемимÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÑÑалоннÑе ÑÐ°Ð¹Ð»Ñ Ð½Ð° вÑеÑ
поддеÑживаемÑÑ
плаÑÑоÑмаÑ
, ÑÑÐ¾Ð±Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло ожидаÑÑ Ð¿ÑоÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð²ÑеÑ
ÑеÑÑов.
ÐкÑÑалÑнÑе иÑоговÑе ÑезÑлÑÑаÑÑ ÑегÑеÑÑионного ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ
ÑанÑÑÑÑ Ð² каÑалоге src/test/regress/results. ТеÑÑовÑй ÑкÑÐ¸Ð¿Ñ Ð¸ÑполÑзÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ diff, ÑÑÐ¾Ð±Ñ ÑÑавниÑÑ ÐºÐ°Ð¶Ð´Ñй иÑоговÑй Ñайл Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ñми ÑезÑлÑÑаÑами, коÑоÑÑе Ñ
ÑанÑÑÑÑ Ð² каÑалоге src/test/regress/expected. ÐÑе ÑазлиÑÐ¸Ñ ÑоÑ
ÑанÑÑÑÑÑ Ð² src/test/regress/regression.diffs Ð´Ð»Ñ Ð¿Ð¾ÑледÑÑÑей пÑовеÑки. (ÐÑли пÑоводилÑÑ ÑеÑÑ Ð½Ðµ из оÑновного пакеÑа, Ñо его ÑезÑлÑÑаÑÑ Ð¿Ð¾ÑвÑÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑем подкаÑалоге, а не в src/test/regress.)
ÐÑли вам не нÑавиÑÑÑ Ð¸ÑполÑзÑÐµÐ¼Ð°Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° diff, ÑÑÑановиÑе пеÑеменнÑÑ ÑÑÐµÐ´Ñ PG_REGRESS_DIFF_OPTS, напÑÐ¸Ð¼ÐµÑ PG_REGRESS_DIFF_OPTS='-u'. (Ðли, еÑли Ñ
оÑиÑе, запÑÑÑиÑе diff ÑамоÑÑоÑÑелÑно.)
ÐÑли по какой-Ñо пÑиÑине какаÑ-Ñо конкÑеÑÐ½Ð°Ñ Ð¿Ð»Ð°ÑÑоÑма генеÑиÑÑÐµÑ Â«Ñбой» Ð´Ð»Ñ Ð¾ÑделÑного ÑеÑÑа, но изÑÑение его ÑезÑлÑÑаÑа ÑÐ±ÐµÐ¶Ð´Ð°ÐµÑ Ð²Ð°Ñ, ÑÑо ÑезÑлÑÑÐ°Ñ Ð¿ÑавилÑнÑй, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ Ð½Ð¾Ð²Ñй Ñайл ÑÑавнениÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¼Ð°ÑкиÑоваÑÑ Ð¾ÑÑÑÑ Ð¾Ð± оÑибке Ð´Ð»Ñ Ð¿Ð¾ÑледÑÑÑего пÑÐ¾Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÑеÑÑа. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 30.3.
30.2.1. РазлиÑÐ¸Ñ Ð² ÑообÑениÑÑ Ð¾Ð± оÑибке
ÐекоÑоÑÑе ÑегÑеÑÑионнÑе ÑеÑÑÑ Ð¿Ð¾Ð´ÑÑавлÑÑÑ Ð·Ð°Ð²ÐµÐ´Ð¾Ð¼Ð¾ невеÑнÑе Ð²Ñ Ð¾Ð´Ð½Ñе знаÑениÑ. СообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑибке могÑÑ Ð²ÑдаваÑÑÑÑ ÐºÐ°Ðº Postgres Pro, Ñак и Ñамой опеÑаÑионной ÑиÑÑемой. РпоÑледнем ÑлÑÑае ÑоÑма ÑообÑений Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑлиÑаÑÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ð¿Ð»Ð°ÑÑоÑмÑ, но оÑÑажаÑÑ Ð¾Ð½Ð¸ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ инÑоÑмаÑиÑ. ÐÐ¾Ñ ÑÑа ÑазниÑа в ÑообÑениÑÑ Ð¸ пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº «ÑбоÑм» ÑегÑеÑÑионного ÑеÑÑа, коÑоÑÑе можно ÑÑÑÑаниÑÑ Ð¿Ñи пÑовеÑке.
30.2.2. РазниÑа локалей
ÐÑли Ð²Ñ Ð¿ÑоводиÑе ÑеÑÑиÑование на ÑеÑвеÑе, коÑоÑÑй бÑл ÑÑÑановлен Ñ Ð»Ð¾ÐºÐ°Ð»ÑÑ, имеÑÑей поÑÑдок ÑопоÑÑавлениÑ, оÑлиÑнÑй Ð¾Ñ Ð¡, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ ÑазлиÑиÑми в поÑÑдке ÑоÑÑиÑовки и, как ÑледÑÑвие, Ñ Ð¿Ð¾ÑледÑÑÑими ÑбоÑми. ÐÐ°ÐºÐµÑ ÑегÑеÑÑионнÑÑ ÑеÑÑов ÑеÑÐ°ÐµÑ ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¿ÑÑÑм налиÑÐ¸Ñ Ð°Ð»ÑÑеÑнаÑивнÑÑ Ñайлов ÑезÑлÑÑаÑа, коÑоÑÑе ÑпоÑÐ¾Ð±Ð½Ñ ÑпÑавиÑÑÑÑ Ñ Ð±Ð¾Ð»ÑÑим колиÑеÑÑвом локалей.
ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе меÑод ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° вÑеменной инÑÑаллÑÑии, Ñо ÑÑÐ¾Ð±Ñ Ð·Ð°Ð¿ÑÑÑиÑÑ ÑеÑÑиÑование на дÑÑгой локали, иÑполÑзÑйÑе подÑ
одÑÑÑÑ Ð¿ÐµÑеменнÑÑ ÑÑедÑ, оÑноÑÑÑÑÑÑÑ Ðº локали, в командной ÑÑÑоке make, напÑимеÑ:
make check LANG=de_DE.utf8
(ÐÑÐ°Ð¹Ð²ÐµÑ ÑегÑеÑÑионного ÑеÑÑа обнÑлÑÐµÑ LC_ALL, поÑÑÐ¾Ð¼Ñ Ð²ÑÐ±Ð¾Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ поÑÑедÑÑвом данной пеÑеменной не ÑабоÑаеÑ.) ЧÑÐ¾Ð±Ñ Ð½Ðµ иÑполÑзоваÑÑ Ð»Ð¾ÐºÐ°Ð»Ñ, либо обнÑлиÑе вÑе пеÑеменнÑе ÑÑедÑ, оÑноÑÑÑиеÑÑ Ðº локали, либо ÑÑÑановиÑе иÑ
в C) или иÑполÑзÑйÑе ÑледÑÑÑÑÑ ÑпеÑиалÑнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
make check NO_LOCALE=1
Ðогда ÑеÑÑ Ð¿ÑоÑ
Ð¾Ð´Ð¸Ñ Ð½Ð° ÑÑÑеÑÑвÑÑÑей инÑÑаллÑÑии, ÑÑÑановки локали опÑеделÑÑÑÑÑ ÑÑой инÑÑаллÑÑией. ЧÑÐ¾Ð±Ñ ÑÑо измениÑÑ, иниÑиализиÑÑйÑе клаÑÑÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
Ñ Ð¸Ð½Ð¾Ð¹ локалÑÑ, пеÑедав ÑооÑвеÑÑÑвÑÑÑие паÑамеÑÑÑ initdb.
Ð Ñелом, ÑекомендÑеÑÑÑ Ð¿Ð¾ возможноÑÑи пÑоводиÑÑ ÑегÑеÑÑионнÑе ÑеÑÑÑ Ð¿Ñи ÑÐ°ÐºÐ¸Ñ ÑÑÑÐ°Ð½Ð¾Ð²ÐºÐ°Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸, коÑоÑÑе бÑдÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð² ÑабоÑе, Ñогда в ÑезÑлÑÑаÑе ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑовеÑÐµÐ½Ñ Ð°ÐºÑÑалÑнÑе ÑÑаÑÑки кода, оÑноÑÑÑиеÑÑ Ðº локали и кодиÑовке. РзавиÑимоÑÑи Ð¾Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑемÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñо ÑбоÑми, но Ð²Ñ Ñ Ð¾ÑÑ Ð±Ñ Ð±ÑдеÑе знаÑÑ, какого Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ можно ожидаÑÑ Ð¿Ñи ÑабоÑе Ñ ÑеалÑнÑми пÑиложениÑми.
30.2.3. РазниÑа в даÑе и вÑемени
ÐолÑÑÐ°Ñ ÑаÑÑÑ ÑезÑлÑÑаÑов пÑовеÑки даÑÑ Ð¸ вÑемени завиÑÐ¸Ñ Ð¾Ñ ÑаÑового поÑÑа окÑÑжениÑ. ÐÑалоннÑе ÑÐ°Ð¹Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾ÑÑа PST8PDT (ÐеÑкли, ÐалиÑоÑниÑ), поÑÑÐ¾Ð¼Ñ ÐµÑли пÑоводиÑÑ ÑеÑÑÑ Ð½Ðµ Ñ ÑÑим ÑаÑовÑм поÑÑом, пÑоÑвÑÑÑÑ Ð¼Ð½Ð¸Ð¼Ñе оÑибки. ÐÑÐ°Ð¹Ð²ÐµÑ ÑегÑеÑÑионного ÑеÑÑа задаÑÑ Ð¿ÐµÑеменнÑÑ ÑÑÐµÐ´Ñ PGTZ как PST8PDT, ÑÑо позволÑÐµÑ Ð¿Ð¾Ð»ÑÑиÑÑ ÐºÐ¾ÑÑекÑнÑй ÑезÑлÑÑаÑ.
30.2.4. РазниÑа в ÑиÑÐ»Ð°Ñ Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой
ÐекоÑоÑÑе ÑеÑÑÑ Ð¿ÑименÑÑÑ 64-биÑное вÑÑиÑление ÑиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей запÑÑой (double precision) из ÑÑолбÑов ÑаблиÑÑ. ÐаблÑдаÑÑÑÑ ÑазлиÑÐ¸Ñ Ð² ÑезÑлÑÑаÑаÑ
пÑи иÑполÑзовании маÑемаÑиÑеÑкиÑ
ÑÑнкÑий Ð´Ð»Ñ ÑÑолбÑов double precision. ТеÑÑÑ float8 и geometry оÑобенно ÑÑвÑÑвиÑелÑÐ½Ñ Ðº неболÑÑим ÑазлиÑиÑм Ð¼ÐµÐ¶Ð´Ñ Ð¿Ð»Ð°ÑÑоÑмами и даже Ñежимами опÑимизаÑии компилÑÑоÑа. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ ÑеалÑнÑÑ Ð·Ð½Ð°ÑимоÑÑÑ ÑÑиÑ
ÑазлиÑий, нÑжно ÑÑавниÑÑ Ð¸Ñ
глазами, поÑколÑÐºÑ Ð¾Ð±ÑÑно они ÑаÑполагаÑÑÑÑ Ñ Ð´ÐµÑÑÑого ÑазÑÑда ÑпÑава Ð¾Ñ Ð´ÐµÑÑÑиÑной ÑоÑки.
ÐекоÑоÑÑе ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑ Ð¼Ð¸Ð½ÑÑ Ð½Ð¾Ð»Ñ ÐºÐ°Ðº -0, Ñогда как дÑÑгие показÑваÑÑ Ð¿ÑоÑÑо 0.
ÐекоÑоÑÑе ÑиÑÑÐµÐ¼Ñ ÑигнализиÑÑÑÑ Ð¾Ð± оÑибкаÑ
в pow() и exp() не Ñак, как Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ ÑекÑÑий код Postgres Pro.
30.2.5. РазниÑа в ÑоÑÑиÑовке ÑÑÑок
Ðногда наблÑдаÑÑÑÑ ÑазлиÑÐ¸Ñ Ð² Ñом, ÑÑо одни и Ñе же ÑÑÑоки вÑводÑÑÑÑ Ð² ином поÑÑдке, нежели в конÑÑолÑном Ñайле. РболÑÑинÑÑве ÑлÑÑаев ÑÑо не ÑвлÑеÑÑÑ, ÑÑÑого говоÑÑ, оÑибкой. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ ÑаÑÑÑ ÑкÑипÑов ÑегÑеÑÑионнÑÑ
ÑеÑÑов не ÑÑÐ¾Ð»Ñ Ð¿ÐµÐ´Ð°Ð½ÑиÑна, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ ORDER BY Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ SELECT, и поÑÑÐ¾Ð¼Ñ Ð² ÑезÑлÑÑаÑе поÑÑдок ÑÑÑок не гаÑанÑиÑован ÑоглаÑно ÑпеÑиÑикаÑии SQL. Ðа пÑакÑике Ð¼Ñ Ð²Ð¸Ð´Ð¸Ð¼, как одинаковÑе запÑоÑÑ, вÑполнÑемÑе Ð´Ð»Ñ Ð¾Ð´Ð½Ð¸Ñ
и ÑеÑ
же даннÑÑ
на одном и Ñом же пÑогÑаммном обеÑпеÑении, вÑдаÑÑ ÑезÑлÑÑаÑÑ Ð² одинаковом поÑÑдке Ð´Ð»Ñ Ð²ÑеÑ
плаÑÑоÑм, в ÑвÑзи Ñ Ñем оÑÑÑÑÑÑвие ORDER BY не ÑвлÑеÑÑÑ Ð¿Ñоблемой. Ðднако некоÑоÑÑе запÑоÑÑ Ð²ÑÑвлÑÑÑ Ð¼ÐµÐ¶Ð¿Ð»Ð°ÑÑоÑменнÑе ÑазлиÑÐ¸Ñ Ð² ÑоÑÑиÑовке. Ðогда ÑеÑÑиÑование Ð¸Ð´ÐµÑ Ð½Ð° Ñже ÑÑÑановленном ÑеÑвеÑе, ÑазлиÑÐ¸Ñ Ð² ÑоÑÑиÑовке могÑÑ Ð±ÑÑÑ ÑледÑÑвием Ñого, ÑÑо Ð»Ð¾ÐºÐ°Ð»Ñ ÑÑÑановлена в оÑлиÑное Ð¾Ñ Ð¡ знаÑение, или некоÑоÑÑе паÑамеÑÑÑ Ð·Ð°Ð´Ð°Ð½Ñ Ð½Ðµ по ÑмолÑаниÑ, Ñакие как work_mem или ÑÑоимоÑÑнÑе паÑамеÑÑÑ Ð¿Ð»Ð°Ð½Ð¸ÑовÑика.
ÐоÑÑомÑ, еÑли Ð²Ñ Ð²Ð¸Ð´Ð¸Ñе ÑазлиÑÐ¸Ñ Ð² ÑоÑÑиÑовке ÑÑÑок, не ÑÑÐ¾Ð¸Ñ Ð²Ð¾Ð»Ð½Ð¾Ð²Ð°ÑÑÑÑ, еÑли ÑолÑко запÑÐ¾Ñ Ð½Ðµ иÑполÑзÑÐµÑ ORDER BY. Тем не менее, ÑообÑайÑе нам о ÑакиÑ
ÑлÑÑаÑÑ
, ÑÑÐ¾Ð±Ñ Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¸ добавиÑÑ ORDER BY в конкÑеÑнÑй запÑоÑ, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾Ñибки в бÑдÑÑиÑ
ÑелизаÑ
.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ Ð²Ð¾Ð¿ÑоÑ, поÑÐµÐ¼Ñ Ð¼Ñ Ñвно не добавили ORDER BY во вÑе запÑоÑÑ ÑегÑеÑÑионнÑÑ
ÑеÑÑов, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±Ð°Ð²Ð¸ÑÑÑÑ Ð¾Ñ ÑакиÑ
оÑибок Ñаз и навÑегда. ÐÑиÑина в Ñом, ÑÑо ÑÑо ÑÐ½Ð¸Ð·Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ÑÑÑ ÑегÑеÑÑионнÑÑ
ÑеÑÑов, поÑколÑÐºÑ Ð¾Ð½Ð¸ бÑдÑÑ Ð¸Ð¼ÐµÑÑ ÑенденÑÐ¸Ñ Ðº пÑовеÑке планов запÑоÑов иÑполÑзÑÑÑиÑ
ÑоÑÑиÑовкÑ, за ÑÑÑÑ Ð¸ÑклÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов без ÑоÑÑиÑовки.
30.2.6. ÐедоÑÑаÑоÑÐ½Ð°Ñ Ð³Ð»Ñбина ÑÑека
ÐÑли оÑибки ÑеÑÑа пÑиводÑÑ Ðº поломке ÑеÑвеÑа пÑи вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ select infinite_recurse(), ÑÑо ознаÑаеÑ, ÑÑо пÑедел плаÑÑоÑÐ¼Ñ Ð´Ð»Ñ ÑазмеÑа ÑÑека менÑÑе, Ñем показÑÐ²Ð°ÐµÑ Ð¿Ð°ÑамеÑÑ max_stack_depth. ÐÑоблема Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑеÑена запÑÑком ÑеÑвеÑа Ñ Ð±Ð¾Ð»ÑÑим ÑазмеÑом ÑÑека (Ñекомендованное знаÑение max_stack_depth по ÑмолÑÐ°Ð½Ð¸Ñ - 4 Ðб). ÐÑли Ð²Ñ Ð½Ðµ можеÑе ÑÑого ÑделаÑÑ, в каÑеÑÑве алÑÑеÑнаÑÐ¸Ð²Ñ ÑменÑÑиÑе знаÑение max_stack_depth.
Ðа плаÑÑоÑмаÑ
, поддеÑживаÑÑиÑ
ÑÑнкÑÐ¸Ñ getrlimit(), ÑеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ авÑомаÑиÑеÑки вÑбиÑаÑÑ Ð·Ð½Ð°Ñение пеÑеменной max_stack_depth; поÑÑомÑ, еÑли Ð²Ñ Ð½Ðµ пеÑепиÑÑвали ÑÑо знаÑение вÑÑÑнÑÑ, Ñбой Ñакого Ñипа â пÑоÑÑо деÑекÑ, коÑоÑÑй нÑжно заÑегиÑÑÑиÑоваÑÑ.
30.2.7. ТеÑÑ Â«ÑлÑÑайнÑÑ Ð·Ð½Ð°Ñений»
ТеÑÑовÑй ÑкÑÐ¸Ð¿Ñ random подÑазÑÐ¼ÐµÐ²Ð°ÐµÑ Ð¿Ð¾Ð»ÑÑение ÑлÑÑайнÑÑ
знаÑений. РоÑÐµÐ½Ñ ÑедкиÑ
ÑлÑÑаÑÑ
ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑбоÑм в ÑегÑеÑÑионном ÑеÑÑиÑовании. ÐÑполнение
diff results/random.out expected/random.out
должно вÑводиÑÑ Ð¾Ð´Ð½Ñ Ð¸Ð»Ð¸ неÑколÑко ÑÑÑок ÑазлиÑий. ÐÐµÑ Ð¿ÑиÑин Ð´Ð»Ñ Ð±ÐµÑпокойÑÑва, до ÑÐµÑ Ð¿Ð¾Ñ Ð¿Ð¾ÐºÐ° Ñбои в ÑÑом ÑеÑÑе не повÑоÑÑÑÑÑÑ Ð¿Ð¾ÑÑоÑнно.
30.2.8. ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии
Ðогда ÑеÑÑиÑование пÑоÑ
Ð¾Ð´Ð¸Ñ Ð½Ð° ÑÑÑеÑÑвÑÑÑей инÑÑаллÑÑии, некоÑоÑÑе неÑÑандаÑÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов могÑÑ Ð¿ÑивеÑÑи к ÑбоÑм в ÑеÑÑе. ÐапÑимеÑ, изменение ÑакиÑ
паÑамеÑÑов конÑигÑÑаÑии, как enable_seqscan или enable_indexscan могÑÑ Ð¿ÑивеÑÑи к ÑÐ°ÐºÐ¾Ð¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑиÑÑемÑ, коÑоÑое ÑÐ¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð´ÐµÐ¹ÑÑвоваÑÑ Ð½Ð° ÑезÑлÑÑаÑÑ ÑеÑÑов, иÑполÑзÑÑÑиÑ
EXPLAIN.