SQLite 3.35 berdan

Serbestberdana SQLite 3.35, DBMSek sivik a ku wekî pirtûkxaneyek pêvekirî hatî çêkirin, hate weşandin. Koda SQLite di qada gelemperî de tê belav kirin, i.e. dikare ji bo her armancê bê sînor û belaş were bikar anîn. Piştgiriya darayî ji bo pêşdebirên SQLite ji hêla konsorsiyûmek taybetî ve hatî afirandin, ku tê de pargîdaniyên wekî Adobe, Oracle, Mozilla, Bentley û Bloomberg tê peyda kirin.

Guhertinên sereke:

  • Fonksiyonên matematîkê yên çêkirî (log2 (), cos (), tg (), exp (), ln (), pow (), hwd.) ku dikarin di SQL de werin bikar anîn zêde kirin. Çalakkirina fonksiyonên çêkirî pêdivî bi avakirina bi vebijarka "-DSQLITE_ENABLE_MATH_FUNCTIONS" heye.
  • Piştgiriyek ji bo îfadeya "ALTER TABLE DROP COLUMN" ji bo rakirina stûnan ji tabloyek û paqijkirina daneyên ku berê di stûnek diyarkirî de hatine hilanîn, pêk aniye.
  • Pêkanîna operasiyona UPSERT (zêde-an-guhêrandin) hate berfireh kirin, û dihêle ku bi bêjeyên mîna "TÊKIRIN ... LI SER PEVÇÛNÊ TIŞTÎ NEKE/NÛ BIKE" ku xeletiyek paşguh neke an nûvekirinek li şûna têxê bike heke ne gengaz be ku lê zêde bike. Daneyên bi rêya "INSERT"ê (mînak, heke tomarek jixwe hebe, Hûn dikarin li şûna INSERT NAVENDA NÛN bikin). Guhertoya nû destûrê dide te ku hûn gelek blokên ON CONFLICT, ku dê bi rêzê bêne pêvajo kirin diyar bikin. Bloka dawî ya "LI SER KOFLICT" dihêle ku pîvana pênasekirina pevçûnê were jêbirin da ku "NÛ BIKE" bikar bîne.
  • Operasyonên DELETE, INSERT, û UPDATE piştgirîya îfadeya RETURNING dikin, ku dikare were bikar anîn da ku naveroka tomarek jêbirin, têxe, an guheztin nîşan bide. Mînakî, îfadeya "bixe nav ... vegerandina id" dê nasnavê rêza lêzêdekirî vegerîne, û "nûve bike ... bihayê danîn = biha * 1.10 bihayê vegerê" dê nirxa bihayê guhertî vegerîne.
  • Ji bo Gotinên Tabloya Hevbeş (CTE), yên ku destûrê didin karanîna berhevokên encamên bi navên demkî yên ku bi karanîna daxuyaniya WITH têne destnîşan kirin, bijartina modên "MATERIALIZED" û "NE MATERIALIZED" destûr e. "MATERIALIZED" tê vê wateyê ku pirsa ku di dîmenê de hatî destnîşan kirin di tabloyek fîzîkî ya cihêreng de veşêre û dûv re girtina daneyan ji vê tabloyê, û bi "NE MATERIALIZED" ve her gava ku dîmen tê gihîştin dê lêpirsînên dubare bêne kirin. SQLite di eslê xwe de wekî "NE MATERIALIZED" hate guheztin, lê ji bo CTE-yên ku ji carekê zêdetir hatine bikar anîn, naha bûye "MATERIALIZED".
  • Dema ku xebatek VACUUM li ser databasên ku nirxên TEXT an BLOB-ê pir mezin di nav xwe de vedihewîne, karanîna bîranînê kêm kir.
  • Ji bo zêdekirina performansa optimîzator û plansazkerê pirsê xebat hatiye kirin:
    • Dema ku fonksiyonên min û max bi îfadeya "IN" re bikar tînin xweşbîniyên zêde kirin.
    • Pêkanîna daxuyaniya HEBÛN hat lezkirin.
    • Berfirehkirina jêrpirsiyan ji UNION ALL îfadeyên ku wekî beşek ji JOIN-ê têne bikar anîn pêk anîn.
    • Indeks ji bo îfadeyên IS NOT NULL tê bikaranîn.
    • Piştrast dike ku "x NULL YE" û "x NE NULL YE" ji bo stûnên ku xwedan taybetmendiya "NE NULL" in wekî FALSE an TRUE têne veguheztin.
    • Ger ku operasyon stûnên ku bi mifteya biyanî ve girêdayî ne neguhezîne, di UPDATE de ji kontrolkirina mifteyên biyanî derbas bibin.
    • Destûr e ku meriv beşên bloka WHERE-yê bike nav jêrpirsînên ku fonksiyonên pencereyê vedihewîne, heya ku ew beş bi xebata bi domdar û kopiyên biwêjên ji blokên PARTITION BY yên ku di fonksiyonên pencereyê de têne bikar anîn sînordar in.
  • Guhertinên di navgîniya rêza fermanê de:
    • Fermana ".filectrl data_version" lê zêde kir.
    • Fermanên ".once" û ".output" naha piştgirîya derbaskirina derketinê ji bo rêvekerek ku jê re tê gotin bi karanîna lûleyên bênav ("|") piştgirî dikin.
    • Argumanên "stmt" û "vmstep" li fermana ".stats" hatine zêdekirin da ku statîstîkên li ser biwêjan û jimarvanên makîneya virtual nîşan bide.

Source: opennet.ru

Add a comment