PostgreSQL er et open source, kraftfuldt, pålideligt, stabilt, virksomhedsfrit og gratis objektrelationelt databasesystem i stil med MariaDB, MySQL eller SQLite-projekter. Det er en ACID (Atomicity, Consistency, Isolation, Durability) kompatibel databaseserver / motor, der kan meget tilpasses og indeholder mange attraktive funktioner, hvilket gør en stor erstatning for ovennævnte databasmotorer.
Funktioner et overblik
Nøglefunktioner omfatter support til fremmede nøgler, visninger, tilslutninger, udløsere og lagrede procedurer, understøttelse af flere sprog, understøttelse af en bred vifte af SQL-datatyper, herunder BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP og DATE.
Derudover leveres softwaren med understøttelse til lagring af binære store objekter, herunder alle slags multimediefiler (video, lyd og foto) og giver udviklere indbyggede programmeringsinterfaces til C, C ++, Python, Perl, Ruby, Java, .Net, Tcl og ODBC programmeringssprog.
Blandt andre interessante funktioner kan nævnes MVCC (Multi-Version Concurrency Control), tablespaces, multibyte tegnkodninger, punkt i tidsgendannelse, en moden forespørgselsoptimering og planlægger, asynkron replikation, online backup, indlejrede transaktioner (populært kendt som savepoints), hot backups, skrive frem til logging af fejltolerance, support til internationale tegnsæt samt Unicode-support.
PostgreSQL i tal
For øjeblikket understøtter PostgreSQL-databaseserveren ubegrænset størrelse for databaser. 32 TB skal være den maksimale størrelse for tabeller, 1,6 TB pr. række, 1 GB pr. felt, ubegrænsede rækker per tabel, understøtter mellem 250 og 1600 kolonner pr. tabel , afhængigt af kolonne typer, og understøtter ubegrænsede indekser pr. tabel.
Understøttede operativsystemer
PostgreSQL er blevet testet på alle almindelige operativsystemer, herunder GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X og Microsoft Windows. PostgreSQL kan downloades som et universalt kildearkiv samt præ-kompilerede binære pakker til mange Linux-distributioner, der understøtter både 32-bit og 64-bit arkitekturer.
Hvad er nyt
strong> i denne udgivelse:
- Denne udgivelse løser to sikkerhedsproblemer. Denne udgivelse løser også problemer, der er fundet med VACUUM, GIN & hash indekser, parallel forespørgsel, logisk replikation og andre fejl rapporteret i løbet af de seneste tre måneder. Alle brugere, der bruger de berørte versioner af PostgreSQL, skal opdatere så hurtigt som muligt.
Hvad er nyt i version 10.4 / 11 Beta 1:
- Denne udgave løser to sikkerhedsproblemer. Denne udgivelse løser også problemer, der er fundet med VACUUM, GIN & hash indekser, parallel forespørgsel, logisk replikation og andre fejl rapporteret i løbet af de seneste tre måneder. Alle brugere, der bruger de berørte versioner af PostgreSQL, skal opdatere så hurtigt som muligt.
Hvad er nyt i version:
- Yderligere begrænser synligheden af pg_user_mappings.umoptions for at beskytte adgangskoder gemt som brugerkortoptioner (Noah Misch)
- Opløsningen for CVE-2017-7486 var forkert: det tillod en bruger at se mulighederne i sin egen brugerkortlægning, selvom hun ikke havde tilladelse til brug på den tilknyttede udenlandske server. Sådanne muligheder kan omfatte et kodeord, der var blevet leveret af serverejerne i stedet for brugeren selv. Da information_schema.user_mapping_options ikke viser indstillingerne i sådanne tilfælde, bør pg_user_mappings heller ikke. (CVE-2017-7547)
- Denne patch løser kun adfærd i nyligt initdb'd databaser. Hvis du ønsker at anvende denne ændring i en eksisterende database, skal du gøre følgende:
- Genstart postmesteren efter at have tilføjet allow_system_table_mods = true til postgresql.conf. (I versioner, der understøtter ALTER SYSTEM, kan du bruge det til at gøre konfigurationen ændret, men du skal stadig genstarte.)
- Kør i hver database af klyngen følgende kommandoer som superbruger:
- SET search_path = pg_catalog;
- CREATE ELLER REPLACE VIEW pg_user_mappings AS
- Vælg
- U.oid AS omid,
- S.oid AS srvid,
- S.srvname AS srvname,
- U.umuser AS omuser,
- CASE WHEN U.umuser = 0 THEN
- 'offentlige'
- ELSE
- A.rolname
- END som brugernavn,
- CASE WHEN (U.umuser 0 OG A.rolname = current_user
- OG (pg_has_role (S.srvowner, 'USAGE')
- ELLER har_server_privilege (S.oid, 'USAGE'))))
- ELLER (U.umuser = 0 OG pg_has_role (S.srvowner, 'USAGE'))
- ELLER (VÆLG rolsuper FRA pg_authid WHERE rolname = current_user)
- THEN U.umoptions
- ELSE NULL END AS omoptions
- FRA pg_user_mapping U
- VENSTRE JOIN pg_authid A ON (A.oid = U.umuser) MØDE
- pg_foreign_server S ON (U.umserver = S.oid);
- Glem ikke at inkludere template0 og template1 databaserne, eller sårbarheden vil stadig eksistere i databaser, du opretter senere. For at rette template0 skal du midlertidigt acceptere forbindelser. I PostgreSQL 9.5 og senere kan du bruge
- ALTER DATABASE template0 med ALLOW_CONNECTIONS true;
- og derefter efter fastsættelse af skabelon0, skal du fortryde det med
- ALTER DATABASE template0 med ALLOW_CONNECTIONS false;
- I tidligere versioner skal du bruge
- OPDATERING pg_database SET datallowconn = true WHERE datnavn = 'template0';
- OPDATERING pg_database SET datallowconn = false WHERE datnavn = 'template0';
- Endelig fjern config_system_table_mods konfigurationsindstilling, og genstart postmasteren igen.
- Tillad tomme adgangskoder i alle adgangskodebaserede godkendelsesmetoder (Heikki Linnakangas)
- libpq ignorerer tomme adgangskode specifikationer og overfører dem ikke til serveren. Så hvis en brugers adgangskode er sat til den tomme streng, er det umuligt at logge ind med den adgangskode via psql eller andre libpq-baserede klienter. En administrator kan derfor tro, at indstilling af adgangskoden til tomt svarer til at deaktivere adgangskode login. Men med en modificeret eller ikke-libpq-baseret klient kunne det være muligt at logge ind, afhængigt af hvilken autentificeringsmetode der er konfigureret. Navnlig den mest almindelige metode, md5, accepterede tomme adgangskoder. Skift serveren for at afvise tomme adgangskoder i alle tilfælde. (CVE-2017-7546)
- Gør lo_put () tjek for UPDATE-privilegiet på den store målobjekt (Tom Lane, Michael Paquier)
- lo_put () skal helt sikkert kræve de samme tilladelser som lowrite (), men tjekket manglede, hvilket tillader enhver bruger at ændre dataene i en stor genstand. (CVE-2017-7548)
- Ret dokumentationen om processen til opgradering af standby-servere med pg_upgrade (Bruce Momjian)
- Den tidligere dokumentation instruerede brugerne til at starte / stoppe den primære server efter at have kørt pg_upgrade, men inden synkronisering af standby-serverne. Denne sekvens er usikker.
- Fix samtidig låsning af tuple opdateringskæder (Alvaro Herrera)
- Hvis flere sessioner samtidig lås en tuple-opdateringskæde med ikke-konflikterende låsemetoder ved hjælp af et gammelt øjebliksbillede, og de alle lykkedes, var det muligt for nogle af dem ikke desto mindre at svigte (og konkludere, at der ikke er nogen live tuple version) på grund af et løb tilstand. Dette havde konsekvenser som udenlandske nøglekontroller, der ikke kunne se en tuple, der helt sikkert eksisterer, men bliver opdateret samtidigt.
- Fix potentiel datakorruption ved frysning af en tuple, hvis XMAX er en multixact med netop et stadig interessant medlem (Teodor Sigaev)
- Undgå heltal overløb og efterfølgende crash, når du sorterer mere end en milliard tupler i hukommelsen (Sergey Koposov)
- Prøv igen på Windows, hvis vi undlader at reservere adressefeltet for vores delte hukommelse i den nye proces (Tom Lane, Amit Kapila)
- Dette forventes at løse sjældne fejl i børnesprocessen, der sandsynligvis skyldes interferens fra antivirusprodukter.
- Korrigere lav sandsynlighed for korruption af delt predikatlås hashbord i Windows-bygger (Thomas Munro, Tom Lane)
- Undgå at logge ren lukning af en SSL-forbindelse, som om det var en forbindelsestilstand (Michael Paquier)
- Undgå at sende SSL-sessionskort til kunder (Tom Lane)
- Denne rettelse forhindrer genopkoblingsfejl med billetbevidste SSL-kode på kundesiden.
- Løs kode for at indstille tcp_keepalives_idle på Solaris (Tom Lane)
- Fix statistikopsamleren for at respektere forespørgselsmeddelelser udstedt lige efter en postmaster-afslutning og øjeblikkelig genstart (Tom Lane)
- Statistiske henvendelser udstedt inden for et halvt sekund af den tidligere postmasterkontrol blev effektivt ignoreret.
- Sørg for, at statistikopsamlerens bufferstørrelse er mindst 100KB (Tom Lane)
- Dette reducerer risikoen for tabt statistikdata på ældre platforme, hvis standard modtager bufferstørrelse er mindre end det.
- Fix mulig oprettelse af et ugyldigt WAL-segment, når en standby fremmes, lige efter at den behandler en XLOG_SWITCH WAL-post (Andres Freund)
- Fix walsender for at afslutte hurtigt, når klientens anmodninger lukkes (Tom Lane)
- Fix SIGHUP og SIGUSR1 håndtering i walsender processer (Petr Jelinek, Andres Freund)
- Forhindre walsender-udløst panik under nedlukningskontrolpunkter (Andres Freund, Michael Paquier)
- Fix unødigt langsom genstart af walreceiver-processer på grund af løbstilstand i postmaster (Tom Lane)
- Fix lækage af små undertransaktioner spildt til disk under logisk dekodning (Andres Freund)
- Dette resulterede i midlertidige filer, der indtog for stort diskplads.
- Reducer det arbejde, der er nødvendigt for at oprette snapshots under oprettelsen af logiske dekodningsspor (Andres Freund, Petr Jelinek)
- Den tidligere algoritme var umuligt dyr på en server med mange åbne transaktioner.
- Fastgør løbskondition, der ubestemt forsinker oprettelsen af logiske dekodningspladser (Andres Freund, Petr Jelinek)
- Reducer overhead i behandling af ugyldighedshændelser (Tom Lane) for behandling af syscache
- Dette er især nyttigt for logisk dekodning, som udløser hyppig cache-ugyldighed.
- Fjern ukorrekt heuristisk, der i nogle tilfælde anvendes til at estimere tilslutnings selektivitet baseret på tilstedeværelsen af udenlandske nøglebegrænsninger (David Rowley)
- I nogle tilfælde, hvor der var en udenlandsk nøglebegrænsning med flere kolonner, men ikke nøjagtigt matchede en forespørgsels tilknytningsstruktur, brugte planlæggeren en estimeringsheuristisk, der viser sig ikke at fungere godt. Tilbagestill sådanne tilfælde til den måde, de blev estimeret før 9.6.
- Afgør tilfælde, hvor en INSERT eller UPDATE tildeler mere end et element i en kolonne, der er af domænetype (Tom Lane)
- Tillad, at vinduesfunktioner anvendes i undervælger, der er inden for argumenterne for en aggregatfunktion (Tom Lane)
- Sørg for, at en visnings CHECK OPTIONS-klausul håndhæves korrekt, når den underliggende tabel er et fremmed bord (Etsuro Fujita)
- Tidligere kunne opdateringen blive skubbet helt til den udenlandske server, men behovet for at verificere visningsbetingelserne blev savnet i så fald.
- Flyt autogenererede array typer ud af vejen under ALTER ... RENAME (Vik Fearing)
- Tidligere ville vi omdøbe en modstridende autogenereret array type ud af vejen under CREATE; denne løsning udvider denne adfærd til at omdøbe operationer.
- Fix dangling pointer i ALTER TABLE når der er en kommentar til en begrænsning, der tilhører bordet (David Rowley)
- Genbrug af kommentaren til den rekonstruerede begrænsning kan mislykkes med en underlig fejlmeddelelse eller endda nedbrud.
- Sørg for, at ALTER USER ... SET accepterer alle de syntaksvarianter, som ALTER ROLE ... SET gør (Peter Eisentraut)
- Tillad, at en fremmed bordets CHECK-begrænsninger i første omgang ikke er gyldige (Amit Langote)
- CREATE TABLE lydløs slipper ikke GÆLDIGE specifikationer for CHECK-begrænsninger, idet man redegør for, at tabellen skal være tom, så begrænsningen kan valideres med det samme. Men dette er forkert for CREATE FOREIGN TABLE, hvor der ikke er grund til at antage, at det underliggende bord er tomt, og selv om det ikke er noget for os at beslutte, at begrænsningen kan behandles som gyldig fremad. Spring denne "optimering" over for udenlandske tabeller.
- Korrekt opdatering af afhængighedsoplysninger, når du ændrer en datatype-I / O-funktionens argument eller returtype fra uigennemsigtig til den korrekte type (Heikki Linnakangas)
- CREATE TYPE opdateringer I / O-funktioner erklæret i denne langt forældede stil, men det glemte at registrere en afhængighed af typen, så en efterfølgende DROPTYPE kan efterlade brudte funktionsdefinitioner bagved.
- Tillad parallelisme i forespørgselsplanen, når COPY kopierer fra et forespørgsels resultat (Andres Freund)
- Reducer hukommelsesforbruget, når ANALYZE behandler en tsvektor-kolonne (Heikki Linnakangas)
- Fastgør unødvendigt præcisionstab og sjusket afrunding, når du multiplicerer eller deler pengeværdier med heltal eller flyver (Tom Lane)
- Stram kontrol af hvide rum i funktioner, der analyserer identifikatorer, såsom regprocedurein () (Tom Lane)
- Afhængig af den gældende landestok kan disse funktioner fejlfortolke fragmenter af multibytte tegn som whitespace.
- Brug relevante #define symboler fra Perl, mens du kompilerer PL / Perl (Ashutosh Sharma, Tom Lane)
- Dette undgår portabilitetsproblemer, der typisk manifesterer som et "håndtryk" mismatch under bibliotekets belastning, når du arbejder med nyere Perl-versioner.
- I libpq skal du nulstille GSS / SASL og SSPI-godkendelsesstatus korrekt efter et mislykket forbindelsesforsøg (Michael Paquier)
- Undladelse af at gøre dette betød, at hvis der falder tilbage fra SSL til ikke-SSL-forbindelser, vil et GSS / SASL-fejl i SSL-forsøg altid medføre, at ikke-SSL-forsøg forsvinder. SSPI mislykkedes ikke, men det lækkede hukommelsen.
- I psql skal du rette fejl, når KOPI FRA STDIN er afsluttet med et tastatur EOF-signal, og derefter forsøges en anden COPY FROM STDIN (Thomas Munro)
- Denne mishandling blev observeret på BSD-afledte platforme (herunder macOS), men ikke på de fleste andre.
- Fix pg_dump og pg_restore for at udsende REFRESH MATERIALIZED VIEW kommandoer sidst (Tom Lane)
- Dette forhindrer fejl under dump / gendannelse, når en materialiseret visning refererer til tabeller ejet af en anden bruger.
- Forbedre pg_dump / pg_restore's rapportering af fejlbetingelser med oprindelse i zlib (Vladimir Kunschikov, Alvaro Herrera)
- Fix pg_dump med --clean mulighed for at droppe begivenhedsudløser som forventet (Tom Lane)
- Det tildeler nu også korrekt ejerskab af begivenhedsudløsere; før blev de restaureret som ejet af superbrugeren, der kører genoprettelsesskriptet.
- Fix pg_dump med --clean mulighed for ikke at mislykkes, når det offentlige skema ikke eksisterer (Stephen Frost)
- Løs pg_dump for ikke at udsende ugyldig SQL for en tom operatørklasse (Daniel Gustafsson)
- Fix pg_dump output til stdout på Windows (Kuntal Ghosh)
- En komprimeret slettekst, der er skrevet til stdout, ville indeholde korrupte data på grund af manglende sætning af filbeskrivelsen i binær tilstand.
- Løs pg_get_ruledef () for at udskrive korrekt output for ON SELECT-reglen for en visning, hvis kolonner er omdøbt (Tom Lane)
- I nogle hjørnesager afhænger pg_dump pg_get_ruledef () for at dumpe visninger, så denne fejl kan resultere i dump / genindlæsningsfejl.
- Fix dumpning af ydre sammenføjninger med tomme begrænsninger, som f.eks. resultatet af et NATURLIG VENSTRE JOIN uden almindelige kolonner (Tom Lane)
- Fix dumping af funktionsudtryk i FROM-klausulen i tilfælde, hvor udtrykket ikke afviger i noget, der ligner et funktionsopkald (Tom Lane)
- Fix pg_basebackup output til stdout på Windows (Haribabu Kommi)
- En backup skrevet til stdout ville indeholde korrupte data på grund af manglende sætning af filbeskrivelsen i binær tilstand.
- Løs pg_rewind for korrekt at håndtere filer på mere end 2 GB (Kuntal Ghosh, Michael Paquier)
- Normalt vil sådanne filer ikke blive vist i PostgreSQL datakataloger, men de kan være til stede i nogle tilfælde.
- Fix pg_upgrade for at sikre, at den endelige WAL-post ikke har wal_level = minimum (Bruce Momjian)
- Denne betingelse kan forhindre opgraderede standby-servere i at genoprette forbindelse.
- Løs pg_xlogdumps beregning af WAL-rekordlængde (Andres Freund)
- I postgres_fdw genstarter du forbindelser til eksterne servere efter ALTER SERVER eller ALTER USER MAPPING kommandoer (Kyotaro Horiguchi)
- Dette sikrer, at valgmuligheder, der påvirker forbindelsesparametre, vil blive anvendt straks.
- I postgres_fdw skal du tillade annullering af fjernbetjeningskontrolkommandoer (Robert Haas, Rafia Sabih)
- Denne ændring giver os mulighed for hurtigt at undslippe en ventetid for en ikke-reagerende fjernserver i mange flere tilfælde end tidligere.
- Forøg MAX_SYSCACHE_CALLBACKS for at give mere plads til udvidelser (Tom Lane)
- Brug altid -fPIC, ikke -fpic, når du opbygger delte biblioteker med gcc (Tom Lane)
- Dette understøtter større udvidelsesbiblioteker på platforme, hvor det gør forskel.
- I MSVC bygger, håndter det tilfælde, hvor openssl biblioteket ikke findes i en VC underkatalog (Andrew Dunstan)
- I MSVC bygger, tilføj korrekt inkluderet sti til libxml2 headerfiler (Andrew Dunstan)
- Dette løser et tidligere behov for at flytte tingene rundt i standard Windows-installationer af libxml2.
- I MSVC bygger, genkendes et Tcl bibliotek, der hedder tcl86.lib (Noah Misch)
- I MSVC bygger, ære ære PROVE_FLAGS indstillinger på vcregress.pls kommandolinje (Andrew Dunstan)
Hvad er nyt i version 9.6.4:
- Yderligere begrænser synligheden af pg_user_mappings.umoptions for at beskytte adgangskoder gemt som brugerkortoptioner (Noah Misch)
- Opløsningen for CVE-2017-7486 var forkert: det tillod en bruger at se mulighederne i sin egen brugerkortlægning, selvom hun ikke havde tilladelse til brug på den tilknyttede udenlandske server. Sådanne muligheder kan omfatte et kodeord, der var blevet leveret af serverejerne i stedet for brugeren selv. Da information_schema.user_mapping_options ikke viser indstillingerne i sådanne tilfælde, bør pg_user_mappings heller ikke. (CVE-2017-7547)
- Denne patch løser kun adfærd i nyligt initdb'd databaser. Hvis du ønsker at anvende denne ændring i en eksisterende database, skal du gøre følgende:
- Genstart postmesteren efter at have tilføjet allow_system_table_mods = true til postgresql.conf. (I versioner, der understøtter ALTER SYSTEM, kan du bruge det til at gøre konfigurationen ændret, men du skal stadig genstarte.)
- Kør i hver database af klyngen følgende kommandoer som superbruger:
- SET search_path = pg_catalog;
- CREATE ELLER REPLACE VIEW pg_user_mappings AS
- Vælg
- U.oid AS omid,
- S.oid AS srvid,
- S.srvname AS srvname,
- U.umuser AS omuser,
- CASE WHEN U.umuser = 0 THEN
- 'offentlige'
- ELSE
- A.rolname
- END som brugernavn,
- CASE WHEN (U.umuser 0 OG A.rolname = current_user
- OG (pg_has_role (S.srvowner, 'USAGE')
- ELLER har_server_privilege (S.oid, 'USAGE'))))
- ELLER (U.umuser = 0 OG pg_has_role (S.srvowner, 'USAGE'))
- ELLER (VÆLG rolsuper FRA pg_authid WHERE rolname = current_user)
- THEN U.umoptions
- ELSE NULL END AS omoptions
- FRA pg_user_mapping U
- VENSTRE JOIN pg_authid A ON (A.oid = U.umuser) MØDE
- pg_foreign_server S ON (U.umserver = S.oid);
- Glem ikke at inkludere template0 og template1 databaserne, eller sårbarheden vil stadig eksistere i databaser, du opretter senere. For at rette template0 skal du midlertidigt acceptere forbindelser. I PostgreSQL 9.5 og senere kan du bruge
- ALTER DATABASE template0 med ALLOW_CONNECTIONS true;
- og derefter efter fastsættelse af skabelon0, skal du fortryde det med
- ALTER DATABASE template0 med ALLOW_CONNECTIONS false;
- I tidligere versioner skal du bruge
- OPDATERING pg_database SET datallowconn = true WHERE datnavn = 'template0';
- OPDATERING pg_database SET datallowconn = false WHERE datnavn = 'template0';
- Endelig fjern config_system_table_mods konfigurationsindstilling, og genstart postmasteren igen.
- Tillad tomme adgangskoder i alle adgangskodebaserede godkendelsesmetoder (Heikki Linnakangas)
- libpq ignorerer tomme adgangskode specifikationer og overfører dem ikke til serveren. Så hvis en brugers adgangskode er sat til den tomme streng, er det umuligt at logge ind med den adgangskode via psql eller andre libpq-baserede klienter. En administrator kan derfor tro, at indstilling af adgangskoden til tomt svarer til at deaktivere adgangskode login. Men med en modificeret eller ikke-libpq-baseret klient kunne det være muligt at logge ind, afhængigt af hvilken autentificeringsmetode der er konfigureret. Navnlig den mest almindelige metode, md5, accepterede tomme adgangskoder. Skift serveren for at afvise tomme adgangskoder i alle tilfælde. (CVE-2017-7546)
- Gør lo_put () tjek for UPDATE-privilegiet på den store målobjekt (Tom Lane, Michael Paquier)
- lo_put () skal helt sikkert kræve de samme tilladelser som lowrite (), men tjekket manglede, hvilket tillader enhver bruger at ændre dataene i en stor genstand. (CVE-2017-7548)
- Ret dokumentationen om processen til opgradering af standby-servere med pg_upgrade (Bruce Momjian)
- Den tidligere dokumentation instruerede brugerne til at starte / stoppe den primære server efter at have kørt pg_upgrade, men inden synkronisering af standby-serverne. Denne sekvens er usikker.
- Fix samtidig låsning af tuple opdateringskæder (Alvaro Herrera)
- Hvis flere sessioner samtidig lås en tuple-opdateringskæde med ikke-konflikterende låsemetoder ved hjælp af et gammelt øjebliksbillede, og de alle lykkedes, var det muligt for nogle af dem ikke desto mindre at svigte (og konkludere, at der ikke er nogen live tuple version) på grund af et løb tilstand. Dette havde konsekvenser som udenlandske nøglekontroller, der ikke kunne se en tuple, der helt sikkert eksisterer, men bliver opdateret samtidigt.
- Fix potentiel datakorruption ved frysning af en tuple, hvis XMAX er en multixact med netop et stadig interessant medlem (Teodor Sigaev)
- Undgå heltal overløb og efterfølgende crash, når du sorterer mere end en milliard tupler i hukommelsen (Sergey Koposov)
- Prøv igen på Windows, hvis vi undlader at reservere adressefeltet for vores delte hukommelse i den nye proces (Tom Lane, Amit Kapila)
- Dette forventes at løse sjældne fejl i børnesprocessen, der sandsynligvis skyldes interferens fra antivirusprodukter.
- Korrigere lav sandsynlighed for korruption af delt predikatlås hashbord i Windows-bygger (Thomas Munro, Tom Lane)
- Undgå at logge ren lukning af en SSL-forbindelse, som om det var en forbindelsestilstand (Michael Paquier)
- Undgå at sende SSL-sessionskort til kunder (Tom Lane)
- Denne rettelse forhindrer genopkoblingsfejl med billetbevidste SSL-kode på kundesiden.
- Løs kode for at indstille tcp_keepalives_idle på Solaris (Tom Lane)
- Fix statistikopsamleren for at respektere forespørgselsmeddelelser udstedt lige efter en postmaster-afslutning og øjeblikkelig genstart (Tom Lane)
- Statistiske henvendelser udstedt inden for et halvt sekund af den tidligere postmasterkontrol blev effektivt ignoreret.
- Sørg for, at statistikopsamlerens bufferstørrelse er mindst 100KB (Tom Lane)
- Dette reducerer risikoen for tabt statistikdata på ældre platforme, hvis standard modtager bufferstørrelse er mindre end det.
- Fix mulig oprettelse af et ugyldigt WAL-segment, når en standby fremmes, lige efter at den behandler en XLOG_SWITCH WAL-post (Andres Freund)
- Fix walsender for at afslutte hurtigt, når klientens anmodninger lukkes (Tom Lane)
- Fix SIGHUP og SIGUSR1 håndtering i walsender processer (Petr Jelinek, Andres Freund)
- Forhindre walsender-udløst panik under nedlukningskontrolpunkter (Andres Freund, Michael Paquier)
- Fix unødigt langsom genstart af walreceiver-processer på grund af løbstilstand i postmaster (Tom Lane)
- Fix lækage af små undertransaktioner spildt til disk under logisk dekodning (Andres Freund)
- Dette resulterede i midlertidige filer, der indtog for stort diskplads.
- Reducer det arbejde, der er nødvendigt for at oprette snapshots under oprettelsen af logiske dekodningsspor (Andres Freund, Petr Jelinek)
- Den tidligere algoritme var umuligt dyr på en server med mange åbne transaktioner.
- Fastgør løbskondition, der ubestemt forsinker oprettelsen af logiske dekodningspladser (Andres Freund, Petr Jelinek)
- Reducer overhead i behandling af ugyldighedshændelser (Tom Lane) for behandling af syscache
- Dette er især nyttigt for logisk dekodning, som udløser hyppig cache-ugyldighed.
- Fjern ukorrekt heuristisk, der i nogle tilfælde anvendes til at estimere tilslutnings selektivitet baseret på tilstedeværelsen af udenlandske nøglebegrænsninger (David Rowley)
- I nogle tilfælde, hvor der var en udenlandsk nøglebegrænsning med flere kolonner, men ikke nøjagtigt matchede en forespørgsels tilknytningsstruktur, brugte planlæggeren en estimeringsheuristisk, der viser sig ikke at fungere godt. Tilbagestill sådanne tilfælde til den måde, de blev estimeret før 9.6.
- Afgør tilfælde, hvor en INSERT eller UPDATE tildeler mere end et element i en kolonne, der er af domænetype (Tom Lane)
- Tillad, at vinduesfunktioner anvendes i undervælger, der er inden for argumenterne for en aggregatfunktion (Tom Lane)
- Sørg for, at en visnings CHECK OPTIONS-klausul håndhæves korrekt, når den underliggende tabel er et fremmed bord (Etsuro Fujita)
- Tidligere kunne opdateringen blive skubbet helt til den udenlandske server, men behovet for at verificere visningsbetingelserne blev savnet i så fald.
- Flyt autogenererede array typer ud af vejen under ALTER ... RENAME (Vik Fearing)
- Tidligere ville vi omdøbe en modstridende autogenereret array type ud af vejen under CREATE; denne løsning udvider denne adfærd til at omdøbe operationer.
- Fix dangling pointer i ALTER TABLE når der er en kommentar til en begrænsning, der tilhører bordet (David Rowley)
- Genbrug af kommentaren til den rekonstruerede begrænsning kan mislykkes med en underlig fejlmeddelelse eller endda nedbrud.
- Sørg for, at ALTER USER ... SET accepterer alle de syntaksvarianter, som ALTER ROLE ... SET gør (Peter Eisentraut)
- Tillad, at en fremmed bordets CHECK-begrænsninger i første omgang ikke er gyldige (Amit Langote)
- CREATE TABLE lydløs slipper ikke GÆLDIGE specifikationer for CHECK-begrænsninger, idet man redegør for, at tabellen skal være tom, så begrænsningen kan valideres med det samme. Men dette er forkert for CREATE FOREIGN TABLE, hvor der ikke er grund til at antage, at det underliggende bord er tomt, og selv om det ikke er noget for os at beslutte, at begrænsningen kan behandles som gyldig fremad. Spring denne "optimering" til udenlandske tabeller.
- Korrekt opdatering af afhængighedsoplysninger, når du ændrer en datatype-I / O-funktionens argument eller returtype fra uigennemsigtig til den korrekte type (Heikki Linnakangas)
- CREATE TYPE opdateringer I / O-funktioner erklæret i denne langt forældede stil, men det glemte at registrere en afhængighed af typen, så en efterfølgende DROPTYPE kan efterlade brudte funktionsdefinitioner bagved.
- Tillad parallelisme i forespørgselsplanen, når COPY kopierer fra et forespørgsels resultat (Andres Freund)
- Reducer hukommelsesforbruget, når ANALYZE behandler en tsvektor-kolonne (Heikki Linnakangas)
- Fastgør unødvendigt præcisionstab og sjusket afrunding, når du multiplicerer eller deler pengeværdier med heltal eller flyver (Tom Lane)
- Stram kontrol af hvide rum i funktioner, der analyserer identifikatorer, såsom regprocedurein () (Tom Lane)
- Afhængig af den gældende landestok kan disse funktioner fejlfortolke fragmenter af multibytte tegn som whitespace.
- Brug relevante #define symboler fra Perl, mens du kompilerer PL / Perl (Ashutosh Sharma, Tom Lane)
- Dette forhindrer portabilitetsproblemer, der typisk manifesterer som en "håndtryk" -matchning under bibliotekets belastning, når de arbejder med nyere Perl-versioner.
- I libpq skal du nulstille GSS / SASL og SSPI-godkendelsesstatus korrekt efter et mislykket forbindelsesforsøg (Michael Paquier)
- Undladelse af at gøre dette betød, at hvis der falder tilbage fra SSL til ikke-SSL-forbindelser, vil et GSS / SASL-fejl i SSL-forsøg altid medføre, at ikke-SSL-forsøg forsvinder. SSPI mislykkedes ikke, men det lækkede hukommelsen.
- I psql skal du rette fejl, når KOPI FRA STDIN er afsluttet med et tastatur EOF-signal, og derefter forsøges en anden COPY FROM STDIN (Thomas Munro)
- Denne mishandling blev observeret på BSD-afledte platforme (herunder macOS), men ikke på de fleste andre.
- Fix pg_dump og pg_restore for at udsende REFRESH MATERIALIZED VIEW kommandoer sidst (Tom Lane)
- Dette forhindrer fejl under dump / gendannelse, når en materialiseret visning refererer til tabeller ejet af en anden bruger.
- Forbedre pg_dump / pg_restore's rapportering af fejlbetingelser med oprindelse i zlib (Vladimir Kunschikov, Alvaro Herrera)
- Fix pg_dump med --clean mulighed for at droppe begivenhedsudløser som forventet (Tom Lane)
- Det tildeler nu også korrekt ejerskab af begivenhedsudløsere; før blev de restaureret som ejet af superbrugeren, der kører genoprettelsesskriptet.
- Fix pg_dump med --clean mulighed for ikke at mislykkes, når det offentlige skema ikke eksisterer (Stephen Frost)
- Løs pg_dump for ikke at udsende ugyldig SQL for en tom operatørklasse (Daniel Gustafsson)
- Fix pg_dump output til stdout på Windows (Kuntal Ghosh)
- En komprimeret slettekst, der er skrevet til stdout, ville indeholde korrupte data på grund af manglende sætning af filbeskrivelsen i binær tilstand.
- Løs pg_get_ruledef () for at udskrive korrekt output for ON SELECT-reglen for en visning, hvis kolonner er omdøbt (Tom Lane)
- I nogle hjørnesager afhænger pg_dump pg_get_ruledef () for at dumpe visninger, så denne fejl kan resultere i dump / genindlæsningsfejl.
- Fix dumpning af ydre sammenføjninger med tomme begrænsninger, som f.eks. resultatet af et NATURLIG VENSTRE JOIN uden almindelige kolonner (Tom Lane)
- Fix dumping af funktionsudtryk i FROM-klausulen i tilfælde, hvor udtrykket ikke afviger i noget, der ligner et funktionsopkald (Tom Lane)
- Fix pg_basebackup output til stdout på Windows (Haribabu Kommi)
- En backup skrevet til stdout ville indeholde korrupte data på grund af manglende sætning af filbeskrivelsen i binær tilstand.
- Løs pg_rewind for korrekt at håndtere filer på mere end 2 GB (Kuntal Ghosh, Michael Paquier)
- Normalt vil sådanne filer ikke blive vist i PostgreSQL datakataloger, men de kan være til stede i nogle tilfælde.
- Fix pg_upgrade for at sikre, at den endelige WAL-post ikke har wal_level = minimum (Bruce Momjian)
- Denne betingelse kan forhindre opgraderede standby-servere i at genoprette forbindelse.
- Løs pg_xlogdumps beregning af WAL-rekordlængde (Andres Freund)
- I postgres_fdw genstarter du forbindelser til eksterne servere efter ALTER SERVER eller ALTER USER MAPPING kommandoer (Kyotaro Horiguchi)
- Dette sikrer, at valgændringer, der påvirker forbindelsesparametre, vil blive anvendt straks.
- I postgres_fdw skal du tillade annullering af fjernbetjeningskontrolkommandoer (Robert Haas, Rafia Sabih)
- Denne ændring giver os mulighed for hurtigt at undslippe en ventetid for en ikke-reagerende fjernserver i mange flere tilfælde end tidligere.
- Forøg MAX_SYSCACHE_CALLBACKS for at give mere plads til udvidelser (Tom Lane)
- Brug altid -fPIC, ikke -fpic, når du opbygger delte biblioteker med gcc (Tom Lane)
- Dette understøtter større udvidelsesbiblioteker på platforme, hvor det gør forskel.
- I MSVC bygger, håndter det tilfælde, hvor openssl biblioteket ikke findes i en VC underkatalog (Andrew Dunstan)
- I MSVC bygger, tilføj korrekt inkluderet sti til libxml2 headerfiler (Andrew Dunstan)
- Dette løser et tidligere behov for at flytte tingene rundt i standard Windows-installationer af libxml2.
- I MSVC bygger, genkendes et Tcl bibliotek, der hedder tcl86.lib (Noah Misch)
- I MSVC bygger, ære ære PROVE_FLAGS indstillinger på vcregress.pls kommandolinje (Andrew Dunstan)
Kommentarer ikke fundet