E.1. מהדורה 9.6.2

שוחרר ב 9 לפברואר 2017

גרסה זו מכילה מגוון תיקונים מ 9.6.1. לקבלת מידע על תכונות חדשות במהדורה  9.6, ראה סעיף E.3.

E.1.1. הגירה ל גרסה 9.6.2

dump/restore אינו נדרש עבור אלה שמשתמשים ב 9.6.X

עם זאת, במקרה שההתקנה שלך כבר הושפעה מבאג המתואר בערך הראשון של יומן השינויים להלן, אז לאחר העדכון ייתכן שיהיה עליך לנקוט בצעדים כדי לתקן אינדקסים פגומים.

כמו כן, אם אתה משדרג מגירסה מוקדמת יותר מ 9.6.1, ראה סעיף E.2.

E.1.2. שינויים

  • תוקן מרוץ תהליכים שעלול לגרום לאינדקסים בנויים עם CREATE INDEX CONCURRENTLY להיפגע (Pavan Deolasee, Tom Lane)
    אם CREATE INDEX CONCURRENTLY היה בשימוש לבניית אינדקס שתלוי בעמודה אשר ללא אינדקס בעבר, אז רשומות המעודכנות על ידי טרנזאקציות שפועלות במקביל עם פקודת CREATE INDEX יכולות לקבל רשומות אינדקס שגויות. אם אתם חושדים שזה זה קרה, הפתרון הכי אמין הוא לבנות מחדש אינדקסים פגועים לאחר התקנת עדכון זה.

  • לדווא כי תמונת המצב המיוחדת המשמשת לסריקת קטלוג אינו נפסלה ע"י הדילול נתונים מוקדם (Tom Lane)
    Backends נכשלו להסביר את תמונת מצב זו כשיפרסמו xmin הבכור, כך שפוטנציאלי מאפשר פעולות vacuuming במקביל להסרת הנתונים שעדיין היה בהם צורך. זה הוביל כשלים ארעים בנוסח "cache lookup failed for relation 1255".

  • לתקן רישום WAL שגוי עבור BRIN  אינדקסים (Kuntal Ghosh)
    רשומת WAL הנפלטת עבור דף של "revmap" של BRIN בזמן העברת tuple של אינדקס לדף אחר הייתה שגויה. הפעולה מחודשת הייתה גורמת לחלק הקשור לאינדקס להיות חסר תועלת, מה שאילץ אותו להיות מחושב מחדש.

  • יצריה ללא כל תנאי של רשומת WAL עבור "מזלג init" לטבלה שלא צריכה להיכנס לרישום (Michael Paquier)
    בעבר, היו מדלגים על זה כאשר wal_level = minimal, אבל למעשה זה הכרחי גם במקרה זה, כדי להבטיח כי טבלה מתאפסת כראוי למרוקנת לאחר קריסה.

  • אם stats collector קרס במהלך hot standby, הפעל אותו מחדש (Takayuki Tsunakawa)

  • לוודא ש hot standby feedback פועל כראוי כאשר מופעלב שרת שבהמתנה (Ants Aasma, Craig Ringer)

  • לבדוק קיום פסקות בזמן ש hot standby ממתין שאילתא סותרת (Simon Riggs)

  • להימנע מהחייאה של מפעיל autovacuum ב corner case באופן תמידי (Amit Khandekar)
    תיקון זה ימנע בעיות כאשר autovacuum כבוי כהלכה ויש כמה טבלאות הדורשים הקפאה, אבל כל טבלאות האלה כבר מטופלות על ידי autovacuum workers.

  • לא לאפשר ב synchronous_standby_names הגדרת שדה num_sync ל 0(Fujii Masao)
    הדרך הנכונה להשבית מצב המתנה סינכרוני היא להגדיר את הערך כולו כמחרוזת ריקה.

  • לא לספור  את תהליכי עובדה ברקע כי נגד מגבלת החיבור של משתמש (David Rowley)

  • לתקן בדיקה מתי ניתן לשחרר את האובייקט של הרחבת המוצר (Tom Lane)
    סקריפטים של השדרוג של הרחבות אמורים להיות מסוגלים לשחרר אובייקטים, אבל זה היה אסור עבור רצפים של עמודות סדריות, ואולי במקרים אחרים.

  • לתקן מעקב לאחר ההרשאות ראשוניות עבור אובייקטים של הרחבות כך שיעובד כראוי עם
    ALTER EXTENSION ... ADD/DROP ו (Stephen Frost)
    ההרשאות של אובייקט בזמן בו התווסף להרחבה תילקחנה עכשיו בחשבון כי הרשאות ברירת המחדל שלו; רק שינויים מאוחרים יותר יהיו ניתנים להורדה ע"י הרצות של pg_dump שלאחר מכן.

  • לודא ALTER TABLE משמר הקצאות tablespace לאינדקסים, בזמן בניה מחדש שלהם (Tom Lane, Michael Paquier)
    קודם לכן, הגדרות שלא של ברירת מחדל של default_tablespace עלולות היו לגרום לאינדקסים פגומים.

  • לתקן עדכון לא נכונה של השל מאפיינים פונקציית הטריגר בעת שינוי מאפייני deferrability של אילוץ של מפתח זר עם ALTER TABLE ... ALTER CONSTRAINT  ו (Tom Lane)
    זה הוביל לכשלים מוזרים במהלך המימוש הבא של המפתח הזר, כאשר טריגרים שוגרו במועדים הלא נכונים.

  • למנוע שחרור של האילוץ של מפתח זר אם יש אירועים בטריגר אשר הממתינים בטבלה המיוחסת (Tom Lane)
    זה ימנע "could not find trigger NNN" או "relation NNN has no triggers" שגיאות.

  • לתקן ALTER TABLE ... SET DATA TYPE ... USING כאשר לטבלת הבת יש סדר עמודות אחר מאשר בטבלת אב (Álvaro Herrera)
    הכישלון להתאים את המספור העמודות בביטוי USING היוביל לטעויות, בדרך כלל "attribute N has wrong type".

  • לתקן עיבוד של העמודה OID כאשר טבלה עם OIDs קשורה לטבלת אב עם OIDs באמצעות ALTER TABLE ... INHERIT ו (Amit Langote)
    עמודת OID חייבת זהה לשאר עמודות המשתמש הרגילות במקרה זה, אבל זה לא היה, מה שמוביל להתנהגות מוזרה ושינויי הורשה מאוחר יותר.

  • לודא כי CREATE TABLE ... LIKE ... WITH OIDS יוצרת טבלה עם OIDs, ללא קשר האם יש OIDs בטבלה/ות בLIKE ו (Tom Lane)

  • תקן CREATE OR REPLACE VIEW על מנת לעדכן את שאילתא של view לפני שתנסה ליישם את פרמטרים החדשים של view ו (Dean Rasheed)
    בעבר הפקודה כשלה אם פרמטרים החדשים של view  לא עיקביים  עם פרמטרים ישנים.

  • למסור זהות נכונה של האובייקט בתהליך  ALTER TEXT SEARCH CONFIGURATION ו  (Artur Zakirov)
    קטלוג OID הלא נכון דווח להרחבות כגון logical decoding.

  • לתקן מנגנון commit timestamp כל שלא ייכשל בשאילתות על XIDs FrozenTransactionId ו BootstrapTransactionId ו (Craig Ringer)

  • לתקן שימוש לא נכון ב view reloptions כטבלה reloptions רגילה (Tom Lane)
    הסימפטום היה שגיאה כוזבת "ON CONFLICT is not supported on table ... used as a catalog table" כאשר היעד של INSERT ... ON CONFLICT היא view עם אפשרות cascade.

  • לתקן תלונה שגויה "target lists can have at most N entries" בעת השימוש ON CONFLICT עם בטבלאות רחבות (Tom Lane)

  • לתקן שגיאה כוזבת "query provides a value for a dropped column" במהלך INSERT או UPDATE על הטבלה עם העמודה שהוסרה (Tom Lane)

  • למנוע התפשטות לעמודות מרובות של foo.* בביויי מקור UPDATE ו (Tom Lane)
    זה הוביל "UPDATE target count mismatch --- internal error". עכשיו התחביר מובן כמו משתנה על כל שורה, כפי שזה יהיה בהקשרים אחרים.

  • להבטיח כי typmods של עמודות נקבע בצורה מדויקת עבור המבני VALUES  רבי שורות (Tom Lane)
    זה פותר בעיות המתרחשות כאשר הערך הראשון בעמודה יש typmod הניתן לקביעה (למשל, אורך עבור ערך varchar) אך ערכים מאוחר יותר לא חולקים את אותה הגבלה.

  • לזרוק שגיאה על Unicode surrogate pair שלא גמור בסוף מחרוזת Unicode ו (Tom Lane)
    בדרך כלל, Unicode surrogate leading character חייב להיות מלווה ע"י  Unicode surrogate trailing character, אבל הבדיקה הזו הוחמצה אם התו המוביל היה התו האחרון במחרוזת Unicode string literal (U&'...') או Unicode identifier (U&"...").

  • לתקן ביצוע DISTINCT בסדר של אגרגטים כאשר אגרגטים מרובים יכולים לחלוק את אותו מצב המעבר (Heikki Linnakangas)

  • לתקן יישום אופרטורים של חיפוש עבור הביטויים ב tsquery ו (Tom Lane)
    הסרת שגויים, ו-מיושמים בצורה לא עקבי, לשכתב כללים שניסו לשנות  AND/OR/NOT  אופרטורים המופיעים מתחת לאופרטור PHRASE; במקום לשדרג את מנוע כך שיטפל במקרים כאלה באופן תקין. זה מתקן התנהגות שונה ומשונית וקריסות אפשריות עבור שאילתות חיפוש טקסט המכילות שילובים כאלה. גם לתקן אופרטורים PHRASE מקוננים לעבוד באופן שפוי בצירופים אחרים מאשר עצים פשוטים left-deep, לתקן את ההתנהגות בעת הסרת stopwords מתוך ביטוי החיפוש, ולוודא כי חיפושים באינדקס מתנהגים באופן עקבי עם יישום סריקה רציפה פשוטה של שאילתות מסוג זה.

  • לוודא ששאילתה שלילה של חיפוש טקסט, כגון !foo, מתאימה ל tsvectors ריק (Tom Dunstan)
    התאמות כאלה נמצאו על ידי חיפושי אינדקס GIN, אבל לא על ידי סריקות רציפות או חיפושי אינדקס GIST.

  • למנוע התרסקות כאשר ts_rewrite() מחליף את העץ אשר אינו ברמה העליונה עם שאילתה ריקה (Artur Zakirov)

  • לתקן בעיות ביצועים ב ts_rewrite () ו (Tom Lane)

  • לתקן טיפול של  ts_rewrite ()  באופרטורים NOT מקוננים (Tom Lane)

  • לשפר את המהירות של אגרגטים המוגדרים על ידי משתמש המשתמשים ב array_append() כפונקצית מעבר (Tom Lane)

  • לתקן array_fill () כדי להתמודד כראוי עם מערכים ריקים (Tom Lane)

  • לתקן קריסה אפשרית של array_position () או array_positions () בעת עיבוד מערכים של רשומות (Junseok Yang)

  • לתקן המאגר של בייט אחד המוצף ב quote_literal_cstr () ו (Heikki Linnakangas)
    ההצפה התרחשה רק אם הקלט מורכב אך ורק בגרשיים בודדות ו / או לוכסנים.

  • למנוע ביצוע קריאות מרובות ל pg_start_backup () ו pg_stop_backup () מהריצה במקביל (Michael Paquier)
    זה ימנע כישלון טעון, ואולי אף דברים גרועים, אם מישהו מנסה להפעיל פונקציות אלה במקביל.

  • להשבית מעבר שניסה להוציא מרות ללא שום פעולה AT TIME ZONEו  (Tom Lane)
    זה הביא תוצאות שגויות כאשר ביטוי מופשט משמש כי תנאי באינדקס.

  • להימנע מהשלכת המרות interval-to-interval שאינם שהם ללא שום פעולה (Tom Lane)
    במקרים מסוימים, ההמרה שאמורה הייתה לגרום לאיפוס של שדות מרווח עם סדר נמוך נחשבה בטעות להיות ללא שום פעולה והוזנחה. דוגמה לכך היא כאשר מעבר מ INTERVAL MONTH ל INTERVAL YEAR לא הצליח למחוק את שדה החודשים.

  • לתקן קריסה אם מספר תהליכים עובדים העומדים לרשות השאילתה מקבילה פוחת במהלך לסריקה מחדש (Andreas Seltenreich)

  • לתקן באגים במסירה ל ערכי הפרמטרים GUC לתהליכים מקבילים שעובדים (Michael Paquier, Tom Lane)

  • לאפשר להקצות תכניות מקבילות לפקודות אשר הוכנו עם PREPARE ו (Amit Kapila, Tobias Bussmann)

  • לתקן הייצור שגוי של תוכניות מקבילות עבור צירפים למחצה (Tom Lane)

  • לתקן את הערכות של cardinality של מתכנן עבור צירופים מקבילים (Robert Haas)
    לוודא כי הערכות אלו משקפות את מספר השורות בתחזית שיהיו זמינות עבור כל תהליך עובד, ולא בסך הכל לכול התהליכים.

  • לתקן המתכנן כל שיימנע מניסיון למקבל צמתי התכנית המכילות initplans או subplans ו (Tom Lane, Amit Kapila)

  • להבטיח כי תכניות שבמטמון מבטלים על ידי השינויים באופציות שבטבלאות זרות (Amit Langote, Etsuro Fujita, Ashutosh Bapat)

  • לתקן את התכנית שנוצרה עבור צבירה חלקית מסודרת עם משפט GROUP BY קבוע (Tom Lane)

  • לתקן שגיאת המתכנן "could not find plan for CTE" בהתמודדות עם UNION ALL המכילים התייחסות ל CTE ו (Tom Lane)

  • לתקן טיפול הכושל של initplans כאשר מוסיפים בכוח את צומת Material על תת תכנית (Tom Lane)
    התוצאה האופיינית לטעות הזאת היתה שגיאה "plan should not reference subplan's variable".

  • לתקן את הערכת סלקטיביות מבוססת מפתח זר עבור צירופים למחצה ואנטי צירופים, כמו גם במקרי ההורשה (Tom Lane)
    הקוד החדש שהתבסס על קיומו של מפתח זר עשה את הדבר הלא הנכון במקרים אלה, בקביעת האומדנים גרועים יותר מאשר הקוד שבטרום 9.6.

  • לתקן pg_dump להחזיר את הנתונים של הרצף אשר מסומן כטבלת תצורה של הרחבה (Michael Paquier)

  • לתקן טיפול הכושל ב ALTER DEFAULT PRIVILEGES ... REVOKE ב pg_dump ו (Stephen Frost)
    ה pg_dump החמיץ הנפקת הפקודות REVOKE אשר נדרשו במקרים בם ALTER DEFAULT PRIVILEGES שומשו כדי להפחית הרשאות לפחות ממה שהיה יכול להיות כרגיל.

  • לתקן pg_dump להשליך ההמרות המוגדרים על ידי המשתמש ומעברים שמשתמשים בפונקציות מובנות (Stephen Frost)

  • לתקן pg_restore עם --create --if-exists להתנהג יותר שפוי אם הארכיון מכיל פקודות DROP הלא מוכרים (Tom Laneן)
    זה לא פותר שום באג החי, אך עשויה לשפר את ההתנהגות בעתיד אם pg_restore משמש עם ארכיון שנוצר על ידי גרסת pg_dump מאוחרת יותר.

  • לתקן הגבלת השיעור של pg_basebackup בנוכחות I/O עיטי (Antonin Houska)
    אם דיסק I/O היה באופן זמני איטי בהרבה מהגבול השיעור שנקבע, החישוב גלש, ובכך השבית את הגבלת הקצב ביעילות למשך שארית של הריצה.

  • לתקן הטיפול של pg_basebackup ב קישורים סימבוליים של בתתי תיקיות של pg_stat_tmp ו pg_replslot ו (Magnus Hagander, Michael Paquier)

  • לתקן כשל pg_basebackup אפשרי בשרת במצב המתנהבהכללת קבצי WAL ו (Amit Kapila, Robert Haas)

  • לשפר initdb כדי להכניס את ערכי ברירת המחדל הנכונים הספציפיים לפלטפורמה עבור פרמטרים xxx_flush_after לתוך    postgresql.conf ו (Fabien Coelho, Tom Lane)
    זוהי דרך נקייה יותר של התיעוד ערכי ברירת המחדל שהייתה בשימוש בעבר.

  • לתקן טיפול כושל האפשרי במערכים מורחבים בבדיקת אילוצי תחום וביצוע CASE ו (Tom Lane)
    זה היה אפשרי עבור פונקציית PL / pgSQL הנקראת בהקשרים אלה כדי לשנות או אפילו למחוק את ערך המערך שצריכים לשמר עבור פעולות נוספות.

  • לתקן שימושים מקוננים של פונקציות PL / pgSQL בהקשרים כגון בדיקת אילוצי תחום שמעריכים במהלך השמה  למשתנה של PL / pgSQL  ו (Tom Lane)

  • לוודא כי האובייקטים החריגים של Python  אנו יוצרים עבור PL / Python הם כראוי נספרים יחסית (Rafa de la Torre, Tom Lane)
    זה ימנע כשלים אם האובייקטים נמצאים בשימוש לאחר מחזור פינוי הזיכרון של Python התרחש.

  • לתקן PL / Tcl לתמוך בטריגרים על טבלאות בהן קיים .tupno כי שם העמודה (Tom Lane)
    זו מתאים להתנהגות (בעבר מתועדת) של פקודות spi_exec ו spi_execp של PL / Tcl, על פיה בקסם .tupno עמודה מוכנסת רק אם אין העמודה אמיתית עם שם זהה.

  • לאפשר קצות שורות בסגנון DOS בקבתי ~/.pgpass, אפילו על Unix  ו (Vik Fearing)
    שינוי זה מפשט השימוש באותו קובץ הסיסמאות על פני מכונות Unix ו- Windows.

  • לתקן הצפת מאגר עם בייט אחד אם ecpg ניתנת שם קובץ שמסתיים עם נקודה (Takayuki Tsunakawa)

  • לתקן דיווח שגיאות שגוי עבור נתונים כפולים ב crosstabview של psql ו (Tom Lane)
    ה psql לפעמים מראה את הערכים הלא נכונים של השורה  ו / או עמודה כאשר מתלונן על ערכים מרובים עבור אותו תא ב crosstabview.

  • לתקן השלמת באמצעות TAB של psql עבור ALTER DEFAULT PRIVILEGES ו (Gilles Darold, Stephen Frost)

  • לתקן השלמת באמצעות TAB של psql עבור ALTER TABLE t ALTER c DROP ... ו (Kyotaro Horiguchi)

  • ב psql לטפל ערך ריק או מכיל רווחים בלבד של משתנה הסביבה PAGER  כי "no pager" ו (Tom Lane)
    בעבר, כזה ערך גרם לתוכן המיועד ל pager להיעלם לחלוטין.

  • לשפר את הדיווח של contrib / dblink של השגיאות libpq ברמה נמוכה, כגון out-of-memoryו (Joe Conway)

  • ללמד contrib / dblink להתעלם מהגדרות שרת הלא רלוונטיות כאשר הוא משתמש בשרת זר contrib/postgres_fdwכמקור של הגדרות חיבור (Corey Huinker)
    בעבר, אם לאובייקט של שרת זר היו אפשרויות שלא היו גם libpq אפשרויות חיבור, אירעה השגיאה.

  • לתקן בעיות ניידות בפונקציות של contrib/pageinspect עבור אינדקסים GINו (Peter Eisentraut, Tom Lane)

  • לתקן את ההחמצה האפשרית של אירועי קריאה של socket בזמן ההמתנה על Windows ו (Amit Kapila)
    שגיאה זו הייתה מזיקה עבור רוב השימושים, אבל זה ידוע כגורם לתקיעות כאשר מנסים להשתמש בסיומת pldebugger.

  • ב- Windows, להבטיח ששינויים במשתנה הסביבה מופצים לקיבצי DLL אשר מקומפלים עם אפשרויות debugו (Christian Ullrich)

  • לסנכרן עותק שלנו של הספריית אזורי הזמן עם IANA מהדורה tzcode2016j ו (Tom Lane)
    זה פותר בעיות שונות, בעיקר כי התקנת נתוני אזורי הזמן נכשלה אם ספריית היעד לא תמכה קישורים קשים.

  • לעדכון קבצי נתוני אזור זמן ל tzdata מהדורה 2016j לשינויי חוק DST בצפון קפריסין (הוספת אזור חדש אסיה / פמגוסטה), רוסיה (הוספת אזור חדש אירופה / סראטוב), טונגה, ואנטארקטיקה / קייסי. תיקונים היסטוריים עבור איטליה, קזחסטן, מלטה, ופלסטין. לעבור אל העדפה של  קיצורי אזור מספריים עבור טונגה.