PostgreSQL

Skjermbilde programvare:
PostgreSQL
Prog.varedetaljer:
Versjon: 10.5 / 11 Beta 3 Oppdatert
Last opp dato: 16 Aug 18
Lisens: Gratis
Popularitet: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL er en åpen kildekode, kraftig, pålitelig, stabil, bedriftsklar og gratis objektrelasjonell databasesystem som MariaDB, MySQL eller SQLite-prosjekter. Det er en ACID (Atomicity, Consistency, Isolation, Durability) kompatibel databaseserver / motor som kan være svært tilpasset og inkluderer mange attraktive funksjoner, noe som gjør en flott erstatning for de nevnte databasemotorer.


Funksjoner med et blikk

Viktige funksjoner inkluderer støtte for utenlandske nøkler, visninger, tilkoblinger, utløsere og lagrede prosedyrer, støtte for flere språk, støtte for et bredt spekter av SQL-datatyper, inkludert BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP og DATE.

I tillegg kommer programvaren med støtte for lagring av binære store objekter, inkludert alle slags multimediefiler (video, lyd og bilde), og gir utviklere innfødte programmeringsgrensesnitt for C, C + +, Python, Perl, Ruby, Java, .Net, Tcl og ODBC programmeringsspråk.

Blant andre interessante funksjoner kan vi nevne MVCC (Multi-Version Concurrency Control), tabellrom, multibyte tegnkodinger, punkt i tidgjenoppretting, en moden spørringsoptimerer og planlegger, asynkron replikering, online sikkerhetskopiering, nestede transaksjoner (populært kjent som sparepunkter), varme sikkerhetskopier, skrive fremover logging for feiltoleranse, støtte for internasjonale tegnsett, samt Unicode-støtte.


PostgreSQL i tall

For øyeblikket støtter PostgreSQL-databaseserveren ubegrenset størrelse for databaser. 32 TB skal være maksimal størrelse for tabeller, 1,6 TB per rad, 1 GB per felt, ubegrensede rader per tabell, støtter mellom 250 og 1600 kolonner per tabell , avhengig av kolonnetyper, og støtter ubegrensede indekser per tabell.


Støttede operativsystemer
PostgreSQL har blitt testet på alle vanlige operativsystemer, inkludert GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X og Microsoft Windows. PostgreSQL er tilgjengelig for nedlasting som et universelt kildearkiv, samt forhåndsutviklede binære pakker for mange Linux-distribusjoner, som støtter både 32-biters og 64-biters arkitekturer.

Hva er nytt? i denne utgivelsen:

  • Denne utgivelsen løser to sikkerhetsproblemer. Denne utgivelsen løser også problemer som er funnet med VACUUM, GIN & hash-indekser, parallell spørring, logisk replikering og andre feil rapportert de siste tre månedene. Alle brukere som bruker de berørte versjonene av PostgreSQL, bør oppdatere så snart som mulig.

Hva er nytt i versjon 10.4 / 11 Beta 1:

  • Denne utgaven løser to sikkerhetsproblemer. Denne utgivelsen løser også problemer som er funnet med VACUUM, GIN & hash-indekser, parallell spørring, logisk replikering og andre feil rapportert de siste tre månedene. Alle brukere som bruker de berørte versjonene av PostgreSQL, bør oppdatere så snart som mulig.

Hva er nytt i versjon:

  • Videre begrense synligheten til pg_user_mappings.umoptions, for å beskytte passord lagret som muligheter for brukervalg (Noah Misch)
  • Korrigeringen for CVE-2017-7486 var feil: det tillot en bruker å se alternativene i egen brukerkartlegging, selv om hun ikke hadde brukstillatelse på den tilknyttede utenlandske serveren. Slike alternativer kan inkludere et passord som ble gitt av servereieren i stedet for brukeren selv. Siden informasjon_schema.user_mapping_options ikke viser alternativene i slike tilfeller, bør ikke pg_user_mappings heller. (CVE-2017-7547)
  • Denne patchen vil i seg selv bare rette opp oppførselen i nylig innledte databaser. Hvis du ønsker å bruke denne endringen i en eksisterende database, må du gjøre følgende:
  • Start postmaster etter å ha lagt til allow_system_table_mods = true to postgresql.conf. (I versjoner som støtter ALTER SYSTEM, kan du bruke det til å gjøre konfigurasjonen endret, men du trenger fortsatt en omstart.)
  • Kjør følgende kommandoer som superbruker i hver database av klyngen:
  • SET search_path = pg_catalog;
  • CREATE ELLER REPLACE VIEW pg_user_mappings AS
  • SELECT
  • U.oid AS omid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS omuser,
  • CASE når U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolname
  • Slutt som brukernavn,
  • 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 (VELg rullesuper FRA pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • ELSE NULL END AS omoptions
  • FRA pg_user_mapping U
  • VENSTRE MINE pg_authid En PÅ (A.oid = U.umuser) BLI MEDLEM PÅ
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Ikke glem å inkludere template0 og template1-databasene, eller sårbarheten vil fremdeles eksistere i databaser du lager senere. For å fikse mal0, må du midlertidig få den til å godta tilkoblinger. I PostgreSQL 9.5 og senere kan du bruke
  • ALTER DATABASE template0 med ALLOW_CONNECTIONS true;
  • og deretter, etter at du har festet template0, må du angre det med
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
  • I tidligere versjoner, bruk i stedet
  • OPPDATERING pg_database SET datallowconn = true WHERE datnavn = 'template0';
  • OPPDATERING pg_database SET datallowconn = false WHERE datnavn = 'template0';
  • Endre, fjern config_system_table_mods konfigurasjonsinnstilling, og start på nytt postmesteren igjen.
  • Tillat tomme passord i alle passordbaserte godkjenningsmetoder (Heikki Linnakangas)
  • libpq ignorerer tomme passordspesifikasjoner, og overfører dem ikke til serveren. Så, hvis brukerens passord er satt til den tomme strengen, er det umulig å logge inn med det passordet via psql eller andre libpq-baserte klienter. En administrator kan derfor tro at å angi passordet for å tømme, er det samme som å deaktivere passordlogging. Men med en modifisert eller ikke-libpq-basert klient kan det være mulig å logge inn, avhengig av hvilken autentiseringsmetode som er konfigurert. Spesielt den vanligste metoden, md5, aksepterte tomme passord. Endre serveren for å avvise tomme passord i alle tilfeller. (CVE-2017-7546)
  • Gjør lo_put () sjekk for UPDATE-privilegiet på målet storobjekt (Tom Lane, Michael Paquier)
  • lo_put () burde helt sikkert kreve samme tillatelser som lowrite (), men sjekken manglet, slik at alle brukere kunne endre dataene i en stor gjenstand. (CVE-2,017-7548)
  • Rett dokumentasjonen om prosessen for å oppgradere standby-servere med pg_upgrade (Bruce Momjian)
  • Den forrige dokumentasjonen instruerte brukerne om å starte / stoppe primærserveren etter å ha kjørt pg_upgrade, men før synkronisering av ventemodusene. Denne sekvensen er usikker.
  • Løs samtidig låsing av tuple oppdateringskjeder (Alvaro Herrera)
  • Hvis flere økter samtidig blokkerer en tuple-oppdateringskjede med ikke-låsende låsemoduser ved hjelp av et gammelt øyeblikksbilde, og de alle lykkes, var det mulig for noen av dem likevel å mislykkes (og konkluderer at det ikke er noen levende tuple-versjon) på grunn av et løp betingelse. Dette hadde konsekvenser som utenlandske nøkkeltester som ikke ser en tuple som definitivt eksisterer, men blir oppdatert samtidig.
  • Korrigere potensiell data korrupsjon når du fryser en tuple hvis XMAX er en multixact med akkurat ett fortsatt interessant medlem (Teodor Sigaev)
  • Unngå integeroverløp og påfølgende krasj når du sorterer mer enn en milliard tupler i minnet (Sergey Koposov)
  • Prøv på nytt i Windows, hvis vi ikke klarer å reservere adressefeltet for vårt delte minne i den nye prosessen (Tom Lane, Amit Kapila)
  • Dette forventes å fikse sjeldne barnprosesslanseringsfeil som antakelig skyldes forstyrrelser fra antivirusprodukter.
  • Løs sannsynlighet for korrupsjon av delt predikatlås hashbord i Windows-bygg (Thomas Munro, Tom Lane)
  • Unngå å logge på ren lukking av en SSL-tilkobling som om det var en tilbakestilling på nytt (Michael Paquier)
  • Forhindre at du sender SSL-øktbilletter til klienter (Tom Lane)
  • Denne løsningen forhindrer tilbakekoblingsfeil med billettbevisst SSL-kode på kundesiden.
  • Løs kode for å sette tcp_keepalives_idle på Solaris (Tom Lane)
  • Løs statistikksamler for å respektere forespørsler som er utstedt like etter en postmasterkjøring og umiddelbar omstart (Tom Lane)
  • Statistiske henvendelser som ble utstedt innen et halvt sekund av den forrige postmasterkontrollen, ble effektivt ignorert.
  • Kontroller at statistikksamlerens mottakerbufferstørrelse er minst 100KB (Tom Lane)
  • Dette reduserer risikoen for å slippe statistikkdata på eldre plattformer hvis standard mottar bufferstørrelse er mindre enn det.
  • Løs mulig opprettelse av et ugyldig WAL-segment når en standby blir promotert like etter at den behandler en XLOG_SWITCH WAL-plate (Andres Freund)
  • Lagre valsender for å gå ut fort når klientforespørsler avsluttes (Tom Lane)
  • Løs SIGHUP og SIGUSR1 håndtering i valsender prosesser (Petr Jelinek, Andres Freund)
  • Forhindre walsender-utløst panikk under nedleggelse kontrollpunkter (Andres Freund, Michael Paquier)
  • Fix unødvendig sakte omstart av walreceiver prosesser på grunn av løpevilkår i postmaster (Tom Lane)
  • Fix lekkasje av små undertransaksjoner som spilles til disk under logisk dekoding (Andres Freund)
  • Dette resulterte i midlertidige filer som tok for mye diskplass.
  • Reduser arbeidet som trengs for å bygge øyeblikksbilder under opprettelsen av logiske dekodingsspor (Andres Freund, Petr Jelinek)
  • Den forrige algoritmen var umulig dyr på en server med mange åpne transaksjoner.
  • Lag raseforhold som uendelig kan forsinke opprettelsen av logiske dekodingsspor (Andres Freund, Petr Jelinek)
  • Reduser overhead i behandling av ugyldighetshendelser (Tom Lane)
  • Dette er spesielt nyttig for logisk dekoding, noe som utløser hyppig cache ugyldighet.
  • Fjern feilaktig heuristisk som i noen tilfeller brukes til å estimere tilvalgselektivitet basert på tilstedeværelsen av utenlandske nøkkelbegrensninger (David Rowley)
  • I noen tilfeller hvor en utenriksnøkkelbegrensning med flere kolonner eksisterte, men ikke akkurat samsvarer med en forespørselsstruktur, brukte planleggeren en estimeringsheuristisk som viser seg ikke å fungere bra i det hele tatt. Tilbakestill slike saker til måten de ble estimert før 9.6.
  • Fastsette tilfeller der en INSERT eller UPDATE tilordner seg til mer enn ett element i en kolonne som er av typen Tom-over-array (Tom Lane)
  • Tillat at vindufunksjoner skal brukes i under-SELECTs som ligger innenfor argumentene til en aggregatfunksjon (Tom Lane)
  • Kontroller at en visnings CHECK OPTIONS-klausul håndheves riktig når den underliggende tabellen er et utenlandstabell (Etsuro Fujita)
  • Tidligere kan oppdateringen bli presset helt til den utenlandske serveren, men behovet for å bekrefte visningsbetingelsene ble savnet dersom det er tilfelle.
  • Flytt autogenererte array typer ut av veien under ALTER ... RENAME (Vik Fearing)
  • Tidligere ville vi omdøpe en motstridende autogenerert array type ut av veien under CREATE; Denne løsningen utvider atferden for å omdøbe operasjoner.
  • Fest dangling-pekeren i ALTER TABLE når det er en kommentar til en begrensning som tilhører bordet (David Rowley)
  • Gjenta kommentaren til den rekonstruerte begrensningen kan mislykkes med en merkelig feilmelding, eller til og med krasj.
  • Kontroller at ALTER USER ... SET aksepterer alle syntaksvarianter som ALTER ROLE ... SET gjør (Peter Eisentraut)
  • Tillat at et utenlandsbordets CHECK-begrensninger ikke er i utgangspunktet ugyldig (Amit Langote)
  • CREATE TABLE lydløst faller IKKE Gyldige spesifiser for CHECK-begrensninger, og begrunner at bordet må være tomt, slik at begrensningen kan valideres umiddelbart. Men dette er feil for CREATE FOREIGN TABLE, der det ikke er grunn til å anta at det underliggende tabellen er tomt, og selv om det ikke er noe av oss å bestemme at begrensningen kan behandles som gyldig fremover. Hopp over denne "optimaliseringen" for utenlandske bord.
  • Korrekt oppdater avhengighetsinformasjon når du endrer en datatype-I / O-funksjonens argument eller returtype fra ugjennomsiktig til riktig type (Heikki Linnakangas)
  • CREATE TYPE-oppdaterings-I / O-funksjoner som er erklært i denne langt utdaterte stilen, men det glemte å registrere en avhengighet av typen, slik at en etterfølgende DROPTYPE kan legge igjen bruddfunksjonsdefinisjoner bak.
  • Tillat parallellisme i spørringsplanen når COPY kopierer fra et spørres resultat (Andres Freund)
  • Reduser minnebruk når ANALYZE behandler en tsvektor kolonne (Heikki Linnakangas)
  • Løs unødvendig presisjonstap og sløv avrunding når du multipliserer eller deler pengeværdier med heltall eller flyter (Tom Lane)
  • Stram kontrollene for hvitt plass i funksjoner som analyserer identifikatorer, for eksempel regprocedurein () (Tom Lane)
  • Avhengig av den gjeldende lokaliteten, kan disse funksjonene feiltolke fragmenter av multibyte tegn som hvitt plass.
  • Bruk relevante #define symboler fra Perl mens du lager PL / Perl (Ashutosh Sharma, Tom Lane)
  • Dette unngår portabilitetsproblemer, som vanligvis manifesterer seg som et "håndtrykk" feil samsvar under bibliotekets belastning, når du arbeider med nyere Perl-versjoner.
  • I libpq, tilbakestill GSS / SASL og SSPI autentiseringsstatus riktig etter et mislykket tilkoblingsforsøk (Michael Paquier)
  • Manglende å gjøre dette betydde at når det faller tilbake fra SSL til ikke-SSL-tilkoblinger, vil en GSS / SASL-feil i SSL-forsøket alltid føre til at ikke-SSL-forsøket mislykkes. SSPI mislyktes ikke, men det lekket minne.
  • I psql, fikser feil når COPY FROM STDIN er avsluttet med et tastatur EOF-signal, og deretter forsøkes en annen COPY FROM STDIN (Thomas Munro)
  • Denne feilbetjeningen ble observert på BSD-avledede plattformer (inkludert macOS), men ikke på de fleste andre.
  • Løs pg_dump og pg_restore for å avgi REFRESH MATERIALIZED VIEW kommandoer sist (Tom Lane)
  • Dette forhindrer feil under dumping / gjenoppretting når en materialisert visning refererer til tabeller eid av en annen bruker.
  • Forbedre pg_dump / pg_restores rapportering av feilbetingelser med opprinnelse i zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Fest pg_dump med --clean alternativet for å slippe hendelsesutløsere som forventet (Tom Lane)
  • Det tilordner nå også riktig eierskap av hendelsesutløsere; før de ble gjenopprettet som eid av superbrukeren som kjører gjenopprettingsskriptet.
  • Løs pg_dump med --clean alternativet å ikke mislykkes når det offentlige skjemaet ikke eksisterer (Stephen Frost)
  • Rask pg_dump for ikke å sende ut ugyldig SQL for en tom operatørklasse (Daniel Gustafsson)
  • Lag pg_dump-utdata til stdout på Windows (Kuntal Ghosh)
  • En komprimert plain-text dump skrevet til stdout ville inneholde korrupte data på grunn av manglende å sette filbeskrivelsen i binær modus.
  • Løs pg_get_ruledef () for å skrive ut korrekt utdata for ON SELECT-regelen i en visning hvis kolonner har blitt omdøpt (Tom Lane)
  • I noen hjørnesaker er pg_dump avhengig av pg_get_ruledef () for å dumpe visninger, slik at denne feilen kan føre til feil / gjenopplasting av feil.
  • Lag dumping av ytre sammenhenger med tomme begrensninger, som f.eks. resultatet av en NATURLIG VENSTREGJEN uten vanlige kolonner (Tom Lane)
  • Lag dumping av funksjonsuttrykk i FROM-klausulen i tilfeller der uttrykket ikke avhenger av noe som ser ut som et funksjonsanrop (Tom Lane)
  • Lag pg_basebackup-utdata til stdout på Windows (Haribabu Kommi)
  • En sikkerhetskopi skrevet til stdout ville inneholde korrupte data på grunn av manglende å sette filbeskrivelsen i binær modus.
  • Fest pg_rewind for å håndtere filer som overstiger 2 GB (Kuntal Ghosh, Michael Paquier) på riktig måte
  • Vanligvis vil slike filer ikke vises i PostgreSQL datakataloger, men de kan være til stede i noen tilfeller.
  • Fest pg_upgrade for å sikre at slutt WAL-posten ikke har wal_level = minimum (Bruce Momjian)
  • Denne tilstanden kan forhindre at oppgraderte ventetjenere kobles fra igjen.
  • Løs pg_xlogdumps beregning av WAL-rekordlengde (Andres Freund)
  • I postgres_fdw gjenoppretter du tilkoblinger til eksterne servere etter ALTER SERVER eller ALTER USER MAPPING kommandoer (Kyotaro Horiguchi)
  • Dette sikrer at endringsendringer som påvirker tilkoblingsparametere vil bli brukt omgående.
  • I postgres_fdw, tillat kansellering av kommandoer for fjerntransaksjonskontroll (Robert Haas, Rafia Sabih)
  • Denne endringen gjør det mulig for oss å raskt unnslippe ventetiden for en ekstern server i mange tilfeller enn tidligere.
  • Øk MAX_SYSCACHE_CALLBACKS for å gi mer plass til utvidelser (Tom Lane)
  • Bruk alltid -fPIC, ikke-fpic, når du bygger delte biblioteker med gcc (Tom Lane)
  • Dette støtter større utvidelsesbiblioteker på plattformer hvor det gjør en forskjell.
  • I MSVC bygger, håndter saken hvor openssl-biblioteket ikke er innenfor en VC-underkatalog (Andrew Dunstan)
  • I MSVC bygger, legg til riktig inkluderingsbane for libxml2 headerfiler (Andrew Dunstan)
  • Dette løser et tidligere behov for å flytte ting rundt i standard Windows-installasjoner av libxml2.
  • I MSVC bygger, gjenkjenner du et Tcl-bibliotek som heter tcl86.lib (Noah Misch)
  • I MSVC bygger, respekterer PROVE_FLAGS innstillinger på vcregress.pls kommandolinje (Andrew Dunstan)

Hva er nytt i versjon 9.6.4:

  • Videre begrense synligheten til pg_user_mappings.umoptions, for å beskytte passord lagret som muligheter for brukervalg (Noah Misch)
  • Korrigeringen for CVE-2017-7486 var feil: det tillot en bruker å se alternativene i egen brukerkartlegging, selv om hun ikke hadde brukstillatelse på den tilknyttede utenlandske serveren. Slike alternativer kan inkludere et passord som ble gitt av servereieren i stedet for brukeren selv. Siden informasjon_schema.user_mapping_options ikke viser alternativene i slike tilfeller, bør ikke pg_user_mappings heller. (CVE-2017-7547)
  • Denne patchen vil i seg selv bare rette opp oppførselen i nylig innledte databaser. Hvis du ønsker å bruke denne endringen i en eksisterende database, må du gjøre følgende:
  • Start postmaster etter å ha lagt til allow_system_table_mods = true to postgresql.conf. (I versjoner som støtter ALTER SYSTEM, kan du bruke det til å gjøre konfigurasjonen endret, men du trenger fortsatt en omstart.)
  • Kjør følgende kommandoer som superbruker i hver database av klyngen:
  • SET search_path = pg_catalog;
  • CREATE ELLER REPLACE VIEW pg_user_mappings AS
  • SELECT
  • U.oid AS omid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS omuser,
  • CASE når U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolname
  • Slutt som brukernavn,
  • 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 (VELg rullesuper FRA pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • ELSE NULL END AS omoptions
  • FRA pg_user_mapping U
  • VENSTRE MINE pg_authid En PÅ (A.oid = U.umuser) BLI MEDLEM PÅ
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Ikke glem å inkludere template0 og template1-databasene, eller sårbarheten vil fremdeles eksistere i databaser du lager senere. For å fikse mal0, må du midlertidig få den til å godta tilkoblinger. I PostgreSQL 9.5 og senere kan du bruke
  • ALTER DATABASE template0 med ALLOW_CONNECTIONS true;
  • og deretter, etter at du har festet template0, må du angre det med
  • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
  • I tidligere versjoner, bruk i stedet
  • OPPDATERING pg_database SET datallowconn = true WHERE datnavn = 'template0';
  • OPPDATERING pg_database SET datallowconn = false WHERE datnavn = 'template0';
  • Endre, fjern config_system_table_mods konfigurasjonsinnstilling, og start på nytt postmesteren igjen.
  • Tillat tomme passord i alle passordbaserte godkjenningsmetoder (Heikki Linnakangas)
  • libpq ignorerer tomme passordspesifikasjoner, og overfører dem ikke til serveren. Så, hvis brukerens passord er satt til den tomme strengen, er det umulig å logge inn med det passordet via psql eller andre libpq-baserte klienter. En administrator kan derfor tro at å angi passordet for å tømme, er det samme som å deaktivere passordlogging. Men med en modifisert eller ikke-libpq-basert klient kan det være mulig å logge inn, avhengig av hvilken autentiseringsmetode som er konfigurert. Spesielt den vanligste metoden, md5, aksepterte tomme passord. Endre serveren for å avvise tomme passord i alle tilfeller. (CVE-2017-7546)
  • Gjør lo_put () sjekk for UPDATE-privilegiet på målet storobjekt (Tom Lane, Michael Paquier)
  • lo_put () burde helt sikkert kreve samme tillatelser som lowrite (), men sjekken manglet, slik at alle brukere kunne endre dataene i en stor gjenstand. (CVE-2,017-7548)
  • Rett dokumentasjonen om prosessen for å oppgradere standby-servere med pg_upgrade (Bruce Momjian)
  • Den forrige dokumentasjonen instruerte brukerne om å starte / stoppe primærserveren etter å ha kjørt pg_upgrade, men før synkronisering av ventemodusene. Denne sekvensen er usikker.
  • Løs samtidig låsing av tuple oppdateringskjeder (Alvaro Herrera)
  • Hvis flere økter samtidig blokkerer en tuple-oppdateringskjede med ikke-låsende låsemoduser ved hjelp av et gammelt øyeblikksbilde, og de alle lykkes, var det mulig for noen av dem likevel å mislykkes (og konkluderer at det ikke er noen levende tuple-versjon) på grunn av et løp betingelse. Dette hadde konsekvenser som utenlandske nøkkeltester som ikke ser en tuple som definitivt eksisterer, men blir oppdatert samtidig.
  • Korrigere potensiell data korrupsjon når du fryser en tuple hvis XMAX er en multixact med akkurat ett fortsatt interessant medlem (Teodor Sigaev)
  • Unngå integeroverløp og påfølgende krasj når du sorterer mer enn en milliard tupler i minnet (Sergey Koposov)
  • Prøv på nytt i Windows, hvis vi ikke klarer å reservere adressefeltet for vårt delte minne i den nye prosessen (Tom Lane, Amit Kapila)
  • Dette forventes å fikse sjeldne barnprosesslanseringsfeil som antakelig skyldes forstyrrelser fra antivirusprodukter.
  • Løs sannsynlighet for korrupsjon av delt predikatlås hashbord i Windows-bygg (Thomas Munro, Tom Lane)
  • Unngå å logge på ren lukking av en SSL-tilkobling som om det var en tilbakestilling på nytt (Michael Paquier)
  • Forhindre at du sender SSL-øktbilletter til klienter (Tom Lane)
  • Denne løsningen forhindrer tilbakekoblingsfeil med billettbevisst SSL-kode på kundesiden.
  • Løs kode for å sette tcp_keepalives_idle på Solaris (Tom Lane)
  • Løs statistikksamler for å respektere forespørsler som er utstedt like etter en postmasterkjøring og umiddelbar omstart (Tom Lane)
  • Statistiske henvendelser som ble utstedt innen et halvt sekund av den forrige postmasterkontrollen, ble effektivt ignorert.
  • Kontroller at statistikksamlerens mottakerbufferstørrelse er minst 100KB (Tom Lane)
  • Dette reduserer risikoen for å slippe statistikkdata på eldre plattformer hvis standard mottar bufferstørrelse er mindre enn det.
  • Løs mulig opprettelse av et ugyldig WAL-segment når en standby blir promotert like etter at den behandler en XLOG_SWITCH WAL-plate (Andres Freund)
  • Lagre valsender for å gå ut fort når klientforespørsler avsluttes (Tom Lane)
  • Løs SIGHUP og SIGUSR1 håndtering i valsender prosesser (Petr Jelinek, Andres Freund)
  • Forhindre walsender-utløst panikk under nedleggelse kontrollpunkter (Andres Freund, Michael Paquier)
  • Fix unødvendig sakte omstart av walreceiver prosesser på grunn av løpevilkår i postmaster (Tom Lane)
  • Fix lekkasje av små undertransaksjoner som spilles til disk under logisk dekoding (Andres Freund)
  • Dette resulterte i midlertidige filer som tok for mye diskplass.
  • Reduser arbeidet som trengs for å bygge øyeblikksbilder under opprettelsen av logiske dekodingsspor (Andres Freund, Petr Jelinek)
  • Den forrige algoritmen var umulig dyr på en server med mange åpne transaksjoner.
  • Lag raseforhold som uendelig kan forsinke opprettelsen av logiske dekodingsspor (Andres Freund, Petr Jelinek)
  • Reduser overhead i behandling av ugyldighetshendelser (Tom Lane)
  • Dette er spesielt nyttig for logisk dekoding, noe som utløser hyppig cache ugyldighet.
  • Fjern feilaktig heuristisk som i noen tilfeller brukes til å estimere tilvalgselektivitet basert på tilstedeværelsen av utenlandske nøkkelbegrensninger (David Rowley)
  • I noen tilfeller hvor en utenriksnøkkelbegrensning med flere kolonner eksisterte, men ikke akkurat samsvarer med en forespørselsstruktur, brukte planleggeren en estimeringsheuristisk som viser seg ikke å fungere bra i det hele tatt. Tilbakestill slike saker til måten de ble estimert før 9.6.
  • Fastsette tilfeller der en INSERT eller UPDATE tilordner seg til mer enn ett element i en kolonne som er av typen Tom-over-array (Tom Lane)
  • Tillat at vindufunksjoner skal brukes i under-SELECTs som ligger innenfor argumentene til en aggregatfunksjon (Tom Lane)
  • Kontroller at en visnings CHECK OPTIONS-klausul håndheves riktig når den underliggende tabellen er et utenlandstabell (Etsuro Fujita)
  • Tidligere kan oppdateringen bli presset helt til den utenlandske serveren, men behovet for å bekrefte visningsbetingelsene ble savnet dersom det er tilfelle.
  • Flytt autogenererte array typer ut av veien under ALTER ... RENAME (Vik Fearing)
  • Tidligere ville vi omdøpe en motstridende autogenerert array type ut av veien under CREATE; Denne løsningen utvider atferden for å omdøbe operasjoner.
  • Fest dangling-pekeren i ALTER TABLE når det er en kommentar til en begrensning som tilhører bordet (David Rowley)
  • Gjenta kommentaren til den rekonstruerte begrensningen kan mislykkes med en merkelig feilmelding, eller til og med krasj.
  • Kontroller at ALTER USER ... SET aksepterer alle syntaksvarianter som ALTER ROLE ... SET gjør (Peter Eisentraut)
  • Tillat at et utenlandsbordets CHECK-begrensninger ikke er i utgangspunktet ugyldig (Amit Langote)
  • CREATE TABLE lydløst faller IKKE Gyldige spesifiser for CHECK-begrensninger, og begrunner at bordet må være tomt, slik at begrensningen kan valideres umiddelbart. Men dette er feil for CREATE FOREIGN TABLE, der det ikke er grunn til å anta at det underliggende tabellen er tomt, og selv om det ikke er noe av oss å bestemme at begrensningen kan behandles som gyldig fremover. Hopp over denne "optimaliseringen" for utenlandske tabeller.
  • Korrekt oppdater avhengighetsinformasjon når du endrer en datatype-I / O-funksjonens argument eller returtype fra ugjennomsiktig til riktig type (Heikki Linnakangas)
  • CREATE TYPE-oppdaterings-I / O-funksjoner som er erklært i denne langt utdaterte stilen, men det glemte å registrere en avhengighet av typen, slik at en etterfølgende DROPTYPE kan legge igjen bruddfunksjonsdefinisjoner bak.
  • Tillat parallellisme i spørringsplanen når COPY kopierer fra et spørres resultat (Andres Freund)
  • Reduser minnebruk når ANALYZE behandler en tsvektor kolonne (Heikki Linnakangas)
  • Løs unødvendig presisjonstap og sløv avrunding når du multipliserer eller deler pengeværdier med heltall eller flyter (Tom Lane)
  • Stram kontrollene for hvitt plass i funksjoner som analyserer identifikatorer, for eksempel regprocedurein () (Tom Lane)
  • Avhengig av den gjeldende lokaliteten, kan disse funksjonene feiltolke fragmenter av multibyte tegn som hvitt plass.
  • Bruk relevante #define symboler fra Perl mens du lager PL / Perl (Ashutosh Sharma, Tom Lane)
  • Dette unngår portabilitetsproblemer, som vanligvis manifesterer som en "håndtrykk" -matching under bibliotekets belastning, når du arbeider med nyere Perl-versjoner.
  • I libpq, tilbakestill GSS / SASL og SSPI autentiseringsstatus riktig etter et mislykket tilkoblingsforsøk (Michael Paquier)
  • Manglende å gjøre dette betydde at når det faller tilbake fra SSL til ikke-SSL-tilkoblinger, vil en GSS / SASL-feil i SSL-forsøket alltid føre til at ikke-SSL-forsøket mislykkes. SSPI mislyktes ikke, men det lekket minne.
  • I psql, fikser feil når COPY FROM STDIN er avsluttet med et tastatur EOF-signal, og deretter forsøkes en annen COPY FROM STDIN (Thomas Munro)
  • Denne feilbetjeningen ble observert på BSD-avledede plattformer (inkludert macOS), men ikke på de fleste andre.
  • Løs pg_dump og pg_restore for å avgi REFRESH MATERIALIZED VIEW kommandoer sist (Tom Lane)
  • Dette forhindrer feil under dumping / gjenoppretting når en materialisert visning refererer til tabeller eid av en annen bruker.
  • Forbedre pg_dump / pg_restores rapportering av feilbetingelser med opprinnelse i zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Fest pg_dump med --clean alternativet for å slippe hendelsesutløsere som forventet (Tom Lane)
  • Det tilordner nå også riktig eierskap av hendelsesutløsere; før de ble gjenopprettet som eid av superbrukeren som kjører gjenopprettingsskriptet.
  • Løs pg_dump med --clean alternativet å ikke mislykkes når det offentlige skjemaet ikke eksisterer (Stephen Frost)
  • Rask pg_dump for ikke å sende ut ugyldig SQL for en tom operatørklasse (Daniel Gustafsson)
  • Lag pg_dump-utdata til stdout på Windows (Kuntal Ghosh)
  • En komprimert plain-text dump skrevet til stdout ville inneholde korrupte data på grunn av manglende å sette filbeskrivelsen i binær modus.
  • Løs pg_get_ruledef () for å skrive ut korrekt utdata for ON SELECT-regelen i en visning hvis kolonner har blitt omdøpt (Tom Lane)
  • I noen hjørnesaker er pg_dump avhengig av pg_get_ruledef () for å dumpe visninger, slik at denne feilen kan føre til feil / gjenopplasting av feil.
  • Lag dumping av ytre sammenhenger med tomme begrensninger, som f.eks. resultatet av en NATURLIG VENSTREGJEN uten vanlige kolonner (Tom Lane)
  • Lag dumping av funksjonsuttrykk i FROM-klausulen i tilfeller der uttrykket ikke avhenger av noe som ser ut som et funksjonsanrop (Tom Lane)
  • Lag pg_basebackup-utdata til stdout på Windows (Haribabu Kommi)
  • En sikkerhetskopi skrevet til stdout ville inneholde korrupte data på grunn av manglende å sette filbeskrivelsen i binær modus.
  • Fest pg_rewind for å håndtere filer som overstiger 2 GB (Kuntal Ghosh, Michael Paquier) på riktig måte
  • Vanligvis vil slike filer ikke vises i PostgreSQL datakataloger, men de kan være til stede i noen tilfeller.
  • Fest pg_upgrade for å sikre at slutt WAL-posten ikke har wal_level = minimum (Bruce Momjian)
  • Denne tilstanden kan forhindre at oppgraderte ventetjenere kobles fra igjen.
  • Løs pg_xlogdumps beregning av WAL-rekordlengde (Andres Freund)
  • I postgres_fdw gjenoppretter du tilkoblinger til eksterne servere etter ALTER SERVER eller ALTER USER MAPPING kommandoer (Kyotaro Horiguchi)
  • Dette sikrer at endringsendringer som påvirker tilkoblingsparametere vil bli brukt omgående.
  • I postgres_fdw, tillat kansellering av kommandoer for fjerntransaksjonskontroll (Robert Haas, Rafia Sabih)
  • Denne endringen gjør det mulig for oss å raskt unnslippe ventetiden for en ekstern server i mange tilfeller enn tidligere.
  • Øk MAX_SYSCACHE_CALLBACKS for å gi mer plass til utvidelser (Tom Lane)
  • Bruk alltid -fPIC, ikke-fpic, når du bygger delte biblioteker med gcc (Tom Lane)
  • Dette støtter større utvidelsesbiblioteker på plattformer hvor det gjør en forskjell.
  • I MSVC bygger, håndter saken hvor openssl-biblioteket ikke er innenfor en VC-underkatalog (Andrew Dunstan)
  • I MSVC bygger, legg til riktig inkluderingsbane for libxml2 headerfiler (Andrew Dunstan)
  • Dette løser et tidligere behov for å flytte ting rundt i standard Windows-installasjoner av libxml2.
  • I MSVC bygger, gjenkjenner du et Tcl-bibliotek som heter tcl86.lib (Noah Misch)
  • I MSVC bygger, respekterer PROVE_FLAGS innstillinger på vcregress.pls kommandolinje (Andrew Dunstan)

Lignende programvare

DB2
DB2

19 Feb 15

MariaDB
MariaDB

20 Jan 18

MySQL Sandbox
MySQL Sandbox

20 Feb 15

MongoDB
MongoDB

17 Aug 18

Kommentarer til PostgreSQL

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!