SQLite

Screenshot Λογισμικό:
SQLite
Στοιχεία Λογισμικού:
Εκδοχή: 3.24.0 επικαιροποιημένο
Ανεβάστε ημερομηνία: 22 Jun 18
Προγραμματιστής: D. Richard Hipp
Άδεια: Δωρεάν
Δημοτικότητα: 21

Rating: 5.0/5 (Total Votes: 1)

Το SQLite είναι μια ανοιχτή πηγή, πολλαπλών πλατφορμών, δωρεάν και μικρή βιβλιοθήκη C που υλοποιεί μια αυτοματοποιημένη, ενσωματωμένη, συναλλακτική, μηδενική και μηδενική ρύθμιση παραμέτρων μηχανών βάσεων δεδομένων SQL. Είναι ο πιο χρησιμοποιημένος μηχανισμός βάσης δεδομένων SQL.


Χαρακτηριστικά με μια ματιά
Τα βασικά χαρακτηριστικά περιλαμβάνουν υποστήριξη για απομονωμένες, ατομικές, ανθεκτικές και συνεπείς συναλλαγές, εφαρμογή SQL92, αρχεία βάσης δεδομένων μπορούν να μοιράζονται ελεύθερα μεταξύ υπολογιστών, υποστηρίζουν βάσεις δεδομένων έως 2 terabytes, υποστήριξη για blobs και χορδές μεγέθους gigabyte, αποτύπωμα μικρού κώδικα, όπως καθώς και ένα εύκολο στη χρήση και πολύ απλό API (Application Programming Interface).

Επιπλέον, το SQLite δεν απαιτεί αρχική διαμόρφωση ή περαιτέρω διαχείριση, επιτρέπει στους προγραμματιστές να αποθηκεύουν μια πλήρη βάση δεδομένων σε ένα ενιαίο αρχείο δίσκων μεταξύ πλατφορμών, το οποίο είναι ιδανικό για χρήση μορφών αρχείων εφαρμογών, δεν έχει εξωτερικές εξαρτήσεις, στη δέσμευση TCL (Command Language) και στη συνολική τεκμηρίωση.

Οι συνδέσεις για πολλές άλλες γλώσσες προγραμματισμού διατίθενται ξεχωριστά. Ο πηγαίος κώδικας του είναι καλά σχολιασμένος και έρχεται με ένα αυτόνομο πελάτη CLI (Command-Line Interface) client που έχει σχεδιαστεί από το offset που θα χρησιμοποιηθεί για τη διαχείριση των SQLite βάσεων δεδομένων.


Για τι μπορώ να το χρησιμοποιήσω;

Η μηχανή βάσεων δεδομένων SQLite μπορεί να χρησιμοποιηθεί για οποιονδήποτε σκοπό, προσωπική ή εμπορική. Προτεινόμενες χρήσεις για το SQLite περιλαμβάνουν βάση δεδομένων για gadgets, βάσεις δεδομένων ιστότοπων, stand-in για μια επιχείρηση RDBMS (Σχεσιακό Σύστημα Διαχείρισης Βάσεων Δεδομένων), καθώς και μορφή αρχείου εφαρμογών.


Κάτω από την κουκούλα και τα υποστηριζόμενα λειτουργικά συστήματα

Η διανομή SQLite συνοδεύεται από ένα αυτόνομο πρόγραμμα πρόσβασης γραμμής εντολών (sqlite) που μπορεί να χρησιμοποιηθεί για τη διαχείριση μιας βάσης δεδομένων SQLite και το οποίο χρησιμεύει ως παράδειγμα για τη χρήση της βιβλιοθήκης SQLite. Είναι γραμμένο εξ ολοκλήρου στη γλώσσα προγραμματισμού ANSI-C.

Τα υποστηριζόμενα λειτουργικά συστήματα για επιτραπέζιους υπολογιστές περιλαμβάνουν το GNU / Linux, το Mac OS X και τα Microsoft Windows. Τα υποστηριζόμενα λειτουργικά συστήματα κινητής τηλεφωνίας περιλαμβάνουν Android και iOS. Έχει δοκιμαστεί επιτυχώς με πλατφόρμες υλικού 32 bit και 64 bit και είναι εύκολα φορητό σε άλλα λειτουργικά συστήματα.

Τι είναι νέο σε αυτή την έκδοση:

  • Χαρακτηριστικά αυτής της έκδοσης περιλαμβάνουν υποστήριξη για το UPSERT σε στυλ PostgreSQL και βελτιωμένη απόδοση, ειδικά για ερωτήματα ORDER BY LIMIT.

Τι νέο υπάρχει στην έκδοση:

  • Επωφεληθείτε από τις δυνατότητες ατομικής εγγραφής στο σύστημα αρχείων F2FS όταν είναι διαθέσιμες, για πολύ μειωμένο γενικό κόστος συναλλαγών. Αυτή τη στιγμή απαιτείται η επιλογή χρόνου μεταγλώττισης SQLITE_ENABLE_BATCH_ATOMIC_WRITE.
  • Επιτρέψτε στις εντολές ATTACH και DETACH να εργάζονται μέσα σε μια συναλλαγή.
  • Να επιτρέπεται η δυνατότητα εγγραφής εικονικών πινάκων WITHOUT ROWID εάν το πρωτεύον κλειδί περιέχει ακριβώς μια στήλη.
  • Το πεδίο "fsync ()" που συμβαίνει μετά την εγγραφή της κεφαλίδας σε μια επαναφορά WAL τώρα χρησιμοποιεί τις ρυθμίσεις συγχρονισμού για σημεία ελέγχου. Αυτό σημαίνει ότι θα χρησιμοποιήσει ένα "fullfsync" σε Mac, αν ο PRAGMA checkpoint_fullfsync έχει οριστεί.
  • Η συνάρτηση sqlite3_sourceid () προσπαθεί να ανιχνεύσει αν ο πηγαίος κώδικας έχει τροποποιηθεί από αυτό που ελέγχεται στον έλεγχο έκδοσης και αν υπάρχουν τροποποιήσεις, οι τέσσερις τελευταίοι χαρακτήρες της έκδοσης hash εμφανίζονται ως "alt1". ή "alt2". Ο στόχος είναι να εντοπιστούν τυχαίες και / ή απρόσεκτες επεξεργασίες. Ένας πλαστογράφος μπορεί να ανατρέψει αυτό το χαρακτηριστικό.
  • Βελτιωμένη απαγόρευση των ονομάτων στηλών για τις δηλώσεις CREATE TABLE AS με συνολικό ερώτημα στη δεξιά πλευρά.
  • Λιγότερο "stat ()" κλήσεις συστήματος που εκδίδονται από το unix VFS.
  • Βελτιώθηκε η βελτιστοποίηση LIKE έτσι ώστε να λειτουργεί με μια ρήτρα ESCAPE.
  • Βελτιωμένη PRAGMA integrity_check και PRAGMA quick_check για την ανίχνευση της σκοτεινής καταστροφής σειράς που προηγουμένως λείπουν. Επίσης ενημερώστε και τα δύο pragmas ώστε να επιστρέψουν το κείμενο σφάλματος αντί για το SQLITE_CORRUPT όταν αντιμετωπίζουν διαφθορά σε εγγραφές.
  • Ο προγραμματιστής επερωτήσεων προτιμά τώρα να εφαρμόσει υποκλάσεις FROM-clause χρησιμοποιώντας συν-ρουτίνες χρησιμοποιώντας τη βελτιστοποίηση του flattener ερωτήματος. Δεν είναι πλέον δυνατή η απενεργοποίηση της υποστήριξης για τη χρήση συν-ρουτινών για υποερωτήσεις.
  • Περάστε πληροφορίες σχετικά με τους περιορισμούς! =, IS, IS NOT, NULL και IS NULL στη μέθοδο xBestIndex των εικονικών πινάκων.
  • Βελτιώθηκε ο εικονικός πίνακας CSV έτσι ώστε να αποδεχθεί την τελευταία σειρά εισόδου αν λείπει ο τελευταίος χαρακτήρας νέας γραμμής.
  • Αφαιρέστε το σπάνια χρησιμοποιούμενο "μηδέν" κατανεμητή μνήμης. Αντικαταστήστε το με τη ρύθμιση παραμέτρων SQLITE_CONFIG_SMALL_MALLOC, η οποία δίνει στο SQLite έναν υπαινιγμό ότι πρέπει να αποφεύγετε μεγάλες κατανομές μνήμης όταν είναι δυνατό.
  • Προστέθηκε ο εικονικός πίνακας σμήνους στην υπάρχουσα επέκταση εικονικής τραπέζης συνέντευξης.
  • Προστέθηκε ο εικονικός πίνακας sqlite_dbpage για την παροχή άμεσης πρόσβασης σε σελίδες του αρχείου βάσης δεδομένων. Ο πηγαίος κώδικας είναι ενσωματωμένος στη συγχώνευση και ενεργοποιείται χρησιμοποιώντας την επιλογή -DSQLITE_ENABLE_DBPAGE_VTAB για τη μεταγλώττιση.
  • Προσθέστε έναν νέο τύπο εικονικού πίνακα fts5vocab - & quot; instance & quot; - που παρέχει άμεση πρόσβαση σε δείκτη FTS5 πλήρους κειμένου στο χαμηλότερο δυνατό επίπεδο.
  • Κατάργηση κλήσης σε rand_s () στο VFS των Windows, καθώς προκάλεσε προβλήματα στον Firefox σε μερικούς παλαιότερους φορητούς υπολογιστές.
  • Ο πηγαίος κώδικας src / shell.c στο κέλυφος της γραμμής εντολών δεν βρίσκεται πλέον υπό τον έλεγχο έκδοσης. Αυτό το αρχείο δημιουργείται τώρα ως τμήμα της διαδικασίας δημιουργίας.
  • Οι διάφορες μικροεπεξεργασίες μειώνουν τη χρήση της CPU κατά περίπου 2,1%.
  • Διορθώσεις σφαλμάτων:
  • Διορθώστε μια ελαττωματική δήλωση assert () που ανακάλυψε το OSSFuzz. Εισιτήριο cb91bf4290c211d
  • Διορθώστε μια ασαφή διαρροή μνήμης στο sqlite3_result_pointer (). Εισιτήριο 7486aa54b968e9b
  • Αποφύγετε ένα πιθανό σφάλμα μετά τη χρήση, αναβάλλοντας την επαναφορά των σχημάτων μέχρι να ολοκληρωθεί η εκτέλεση του προγραμματιστή επερωτήσεων. Εισιτήριο be436a7f4587ce5
  • Χρησιμοποιήστε μόνο ευρετήρια σε εκφράσεις για να βελτιστοποιήσετε την επιλογή ORDER BY ή GROUP BY αν η COLLATE είναι σωστή. Εισιτήριο e20dd54ab0e4383
  • Διορθώστε ένα σφάλμα ισχυρισμού που ήρθε όταν η έκφραση σε ένα ευρετήριο σε εκφράσεις είναι πραγματικά σταθερή. Εισιτήριο aa98619ad08ddca
  • Διορθώστε ένα σφάλμα διεκδίκησης που θα μπορούσε να προκύψει μετά από PRAGMA reverse_unordered_selects. Εισιτήριο cb91bf4290c211d
  • Διορθώστε μια segfault που μπορεί να προκύψει για ερωτήματα που χρησιμοποιούν λειτουργίες αξίας σε πίνακα σε υποσύστημα IN ή EXISTS. Εισιτήριο b899b6042f97f5
  • Διορθώστε ένα πιθανό πρόβλημα υπερχείλισης ακέραιου αριθμού όταν συντάσσετε μια συγκεκριμένη φρικτή κοινή έκφραση πίνακα. Αυτό ήταν ένα άλλο πρόβλημα που ανακαλύφθηκε από την OSSFuzz. Check-in 6ee8cb6ae5.
  • Διορθώστε μια πιθανή εκτός σύνδεσης βιβλιοθήκη όταν ερωτάτε ένα διεφθαρμένο αρχείο βάσης δεδομένων, ένα πρόβλημα που εντοπίστηκε από τη Natalie Silvanovich του Google Project Zero. Check-in 04925dee41a21f.

Τι νέο υπάρχει στην έκδοση 3.20.1:

  • Η έκδοση 3.20.1 της ενημερωμένης έκδοσης κώδικα τροποποιεί δύο γραμμές κώδικα στη διασύνδεση sqlite3_result_pointer () για να διορθώσει μια σπάνια διαρροή μνήμης.

Τι νέο υπάρχει στην έκδοση 3.9.2:

  • Το SQLite έκδοση 3.9.2 είναι μια έκδοση ενημερώσεων κώδικα για την επίλυση δύο σκοτεινών σφαλμάτων.

Τι νέο υπάρχει στην έκδοση 3.8.9:

  • Νέες δυνατότητες αυτής της έκδοσης περιλαμβάνουν την εντολή PRAGMA index_xinfo, τη διεπαφή sqlite3_status64 () και την εντολή .dbinfo του κελύφους της γραμμής εντολών.

Τι νέο υπάρχει στην έκδοση 3.8.8.2:

  • Η έκδοση 3.8.8.2 της ενημερωμένης έκδοσης κώδικα διορθώνει ένα μεμονωμένο δευτερεύον πρόβλημα: Εξασφαλίζει ότι η λειτουργία sqlite3_wal_checkpoint (TRUNCATE) θα περιορίσει πάντα το αρχείο καταγραφής μπροστά ακόμα και αν το αρχείο καταγραφής είχε ήδη επαναφερθεί και δεν περιείχε νέο περιεχόμενο. Δεν είναι σαφές εάν πρόκειται για μια επιδιόρθωση σφάλματος ή μια νέα λειτουργία.
  • Κάτι τέτοιο θα έπαιρνε κανονικά την επόμενη τακτική προγραμματισμένη έκδοση, αλλά ένας εξέχων χρήστης SQLite χρειαζόταν την αλλαγή σε μια βιασύνη, γι 'αυτό ήμασταν ευτυχείς να το βγούμε μέσω αυτής της ενημερωμένης έκδοσης κώδικα.
  • Δεν υπάρχει λόγος για αναβάθμιση, εκτός αν χρειάζεστε πραγματικά την ενισχυμένη συμπεριφορά του sqlite3_wal_checkpoint (TRUNCATE).

Τι νέο υπάρχει στην έκδοση 3.8.8.1:

  • Διορθώστε ένα σφάλμα στη λογική ταξινόμησης που υπάρχει από την έκδοση 3.8.4 που μπορεί να προκαλέσει την εμφάνιση της εξόδου με λάθος σειρά σε ερωτήματα που περιέχουν μια ρήτρα ORDER BY, μια ρήτρα LIMIT και έχουν περίπου 60 ή περισσότερες στήλες το σύνολο αποτελεσμάτων. Εισιτήριο f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 για το sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Τι νέο υπάρχει στην έκδοση 3.8.8:

  • Νέες δυνατότητες:
  • Προστέθηκε η εντολή PRAGMA data_version που μπορεί να χρησιμοποιηθεί για να προσδιορίσει εάν ένα αρχείο βάσης δεδομένων έχει τροποποιηθεί από άλλη διαδικασία.
  • Προστέθηκε η επιλογή SQLITE_CHECKPOINT_TRUNCATE στη διεπαφή sqlite3_wal_checkpoint_v2 (), με αντίστοιχες βελτιώσεις στο PRAGMA wal_checkpoint.
  • Προστέθηκε η διασύνδεση sqlite3_stmt_scanstatus (), διαθέσιμη μόνο όταν μεταγλωττίστηκε με SQLITE_ENABLE_STMT_SCANSTATUS.
  • Το sqlite3_table_column_metadata () είναι βελτιωμένο για να λειτουργεί σωστά σε WITHOUT ROWID πίνακες και για να ελέγξει για την ύπαρξη ενός πίνακα αν η παράμετρος name name είναι NULL. Η διεπαφή τώρα συμπεριλαμβάνεται επίσης στην κατασκευή από προεπιλογή, χωρίς να απαιτείται η επιλογή χρόνου μεταγλώττισης SQLITE_ENABLE_COLUMN_METADATA.
  • Προστέθηκε η επιλογή μεταγλώττισης SQLITE_ENABLE_API_ARMOR.
  • Προστέθηκε η επιλογή χρόνου μεταγλώττισης SQLITE_REVERSE_UNORDERED_SELECTS.
  • Προστέθηκε η επιλογή χρόνου μεταγλώττισης SQLITE_SORTER_PMASZ και η επιλογή χρόνου εκκίνησης SQLITE_CONFIG_PMASZ.
  • Προστέθηκε η επιλογή SQLITE_CONFIG_PCACHE_HDRSZ στο sqlite3_config (), το οποίο διευκολύνει τις εφαρμογές να προσδιορίζουν την κατάλληλη ποσότητα μνήμης για χρήση με το SQLITE_CONFIG_PAGECACHE.
  • Ο αριθμός των γραμμών σε μια ρήτρα VALUES δεν περιορίζεται πλέον από το SQLITE_LIMIT_COMPOUND_SELECT.
  • Προστέθηκε η επέκταση φορτίου eval.c που υλοποιεί μια συνάρτηση SQL του eval () που θα αξιολογήσει αναδρομικά την SQL.
  • Βελτιώσεις απόδοσης:
  • Μειώστε τον αριθμό των λειτουργιών memcpy () που εμπλέκονται στην εξισορρόπηση ενός b-tree, για αύξηση της συνολικής απόδοσης κατά 3,2%.
  • Βελτιώσεις στις εκτιμήσεις κόστους για τη βελτιστοποίηση σάρωσης-σάρωσης.
  • Η αυτόματη βελτιστοποίηση ευρετηρίου είναι τώρα ικανή να δημιουργήσει ένα μερικό δείκτη αν αυτό είναι κατάλληλο.
  • Διορθώσεις σφαλμάτων:
  • Εξασφαλίστε ανθεκτικότητα μετά από απώλεια ενέργειας με "PRAGMA journal_mode = TRUNCATE" καλώντας fsync () αμέσως μετά την περικοπή του αρχείου του περιοδικού.
  • Ο προγραμματιστής επερωτήσεων αναγνωρίζει τώρα ότι οποιαδήποτε στήλη στον δεξιό πίνακα ενός ΑΡΙΣΤΟΥ JOIN μπορεί να είναι NULL, ακόμη και αν η στήλη αυτή έχει περιορισμό NOT NULL. Αποφύγετε να προσπαθήσετε να βελτιστοποιήσετε τις δοκιμές NULL σε αυτές τις περιπτώσεις. Επιδιόρθωση για το εισιτήριο 6f2222d550f5b0ee7ed.
  • Βεβαιωθείτε ότι το ORDER BY θέτει σειρές σε αύξουσα σειρά ακόμα και αν ο χειριστής DISTINCT υλοποιηθεί χρησιμοποιώντας ένα φθίνουσα ευρετήριο. Προσδιορίστε το εισιτήριο c5ea805691bfc4204b1cb9e.
  • Διόρθωση φυλών δεδομένων που μπορεί να εμφανιστούν υπό συνθήκες πίεσης όταν εκτελούνται με πολλά θέματα σε λειτουργία κοινής κρυφής μνήμης, όπου ορισμένα από τα νήματα ανοίγουν και κλείνουν συνδέσεις.
  • Διορθώστε σκανδαλώδη σφάλματα συντριβής που βρέθηκαν από το αμερικανικό ασαφές κούτσουρο. Εισιτήριο a59ae93ee990a55.
  • Εργαστείτε γύρω από ένα σφάλμα βελτιστοποίησης του GCC (για το gcc 4.2.1 στο MacOS 10.7) που προκάλεσε την επέκταση του R-Tree να υπολογίζει λανθασμένα αποτελέσματα όταν συντάσσεται με -O3.
  • Άλλες αλλαγές:
  • Απενεργοποιήστε τη χρήση της ρουτίνας της βιβλιοθήκης C του strchrnul (), εκτός αν είναι ειδικά ενεργοποιημένη χρησιμοποιώντας την επιλογή -DHAVE_STRCHRNULL compile-time.
  • Βελτιώσεις στην αποτελεσματικότητα και την ακρίβεια της πιθανότητας (), των πιθανών () και των απίθανων () λειτουργιών συμβουλών SQL.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 για το sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

Τι νέο υπάρχει στην έκδοση 3.8.7.4:

  • Αυτές οι διορθώσεις απελευθέρωσης προσθέτουν ένα mutex που απαιτείται από τις αλλαγές στην ενημερωμένη έκδοση κώδικα 3.8.7.3 αλλά κατά λάθος παραλείφθηκε. Το mutex δεν απαιτείται από οποιαδήποτε από τις εσωτερικές δοκιμές SQLite, αλλά ο Firefox καταρρέει χωρίς αυτό. Έχουν προστεθεί περιπτώσεις δοκιμής για να διασφαλιστεί ότι το mutex δεν θα χαθεί ποτέ ξανά.

Τι νέο υπάρχει στην έκδοση 3.8.7.3:

  • Διόρθωση σφαλμάτων: Βεβαιωθείτε ότι τα αποθηκευμένα αντικείμενα KeyInfo (μια εσωτερική αφαίρεση που δεν είναι ορατή στην εφαρμογή) δεν σβήνουν όταν λειτουργούν σε λειτουργία κοινής μνήμης cache και συχνά κλείνουν και ανοίγουν ξανά κάποιες συνδέσεις βάσης δεδομένων ενώ αφήνουν άλλες συνδέσεις βάσεων δεδομένων στην ίδια κοινόχρηστη κρυφή μνήμη συνεχώς. Εισιτήριο e4a18565a36884b00edf.
  • Διόρθωση σφαλμάτων: Αναγνωρίστε ότι οποιαδήποτε στήλη στον δεξιό πίνακα ενός ΑΡΙΣΤΟΥ JOIN μπορεί να είναι NULL ακόμη και αν η στήλη έχει περιορισμό NOT NULL. Μην εφαρμόζετε βελτιστοποιήσεις που υποθέτουν ότι η στήλη δεν είναι ποτέ NULL. Εισιτήριο 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 για το sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Τι νέο υπάρχει στην έκδοση 3.8.7.2:

  • Ο κύριος λόγος αυτής της έκδοσης είναι να βελτιώσει την εντολή ROLLBACK έτσι ώστε να επιτρέπει τη συνεχή εκτέλεση ερωτημάτων στην ίδια βάση δεδομένων, εφόσον η ROLLBACK δεν αλλάζει το σχήμα. Σε όλες τις προηγούμενες εκδόσεις του SQLite, μια ROLLBACK θα προκαλέσει την άμεση διακοπή των ερωτήσεων που εκκρεμούν και την επιστροφή SQLITE_ABORT ή SQLITE_ABORT_ROLLBACK. Τα ερωτήματα που εκκρεμούν εξακολουθούν να τερματίζονται αν η ROLLBACK αλλάξει το σχήμα της βάσης δεδομένων, αλλά από την έκδοση αυτής της ενημερωμένης έκδοσης κώδικα, τα ερωτήματα επιτρέπονται να συνεχίσουν να εκτελούνται αν το σχήμα δεν έχει τροποποιηθεί.
  • Εκτός από το εξάρτημα ROLLBACK, αυτή η έκδοση patch περιλαμβάνει επίσης διορθώσεις για τρία σκοτεινά σφάλματα.

Τι νέο υπάρχει στην έκδοση 3.8.7.1:

  • Ο κύριος λόγος για αυτήν την έκδοση bug-fix είναι να αντιμετωπίσει ένα πρόβλημα με την ενημέρωση της τιμής των πεδίων στο τέλος ενός πίνακα που προστέθηκαν χρησιμοποιώντας το ALTER TABLE ADD COLUMN. Αυτό το πρόβλημα εμφανίστηκε για πρώτη φορά στην απελευθέρωση 3.8.7.
  • Μια άλλη μικρή ενόχληση στην έκδοση 3.8.7 ήταν το γεγονός ότι το build Android προσπάθησε να χρησιμοποιήσει τη λειτουργία strchrnul () από την τυπική βιβλιοθήκη C αλλά αυτή η λειτουργία δεν είναι διαθέσιμη στο Android. Οι χτισίσεις Android χρειάστηκε να προσθέσουν -DHAVE_STRCHRNUL = 0 για να επιλύσουν το πρόβλημα. Αυτή η ενημερωμένη έκδοση κώδικα διορθώνεται έτσι ώστε το Android builds να λειτουργεί τώρα χωρίς αλλαγές.
  • Η λειτουργία του PRAGMA journal_mode = TRUNCATE έχει βελτιωθεί έτσι ώστε να επικαλείται fsync () μετά την περικοπή του αρχείου του περιοδικού όταν το PRAGMA συγχρονισμένο = FULL. Αυτό βοηθά στη διατήρηση της ανθεκτικότητας των συναλλαγών σε περίπτωση απώλειας ισχύος που συμβαίνει λίγο μετά τη δέσμευση.
  • Τέλος, επιλύθηκαν μερικά μακρόχρονα και σκοτεινά προβλήματα που σχετίζονται με την εκτέλεση του UPDATE και του DELETE στα VIEWs.

Τι νέο υπάρχει στην έκδοση 3.8.7:

  • Οι περισσότερες από τις αλλαγές από την προηγούμενη έκδοση ήταν μικρο-βελτιστοποιήσεις σχεδιασμένες για να βοηθήσουν το SQLite να τρέξει λίγο πιο γρήγορα. Κάθε μεμονωμένη βελτιστοποίηση έχει ένα ασυνήθιστα μικρό αντίκτυπο απόδοσης. Αλλά οι βελτιώσεις συσσωρεύονται. Με βάση ένα καλά καθορισμένο φόρτο εργασίας (το οποίο οι προγραμματιστές του SQLite χρησιμοποιούν ως διακομιστή μεσολάβησης για ένα τυπικό φορτίο εφαρμογών) χρησιμοποιώντας το cachegrind σε Linux και το compiled με gcc 4.8.1 και -Os σε x64 linux, η τρέχουσα έκδοση κάνει πάνω από 20% περισσότερη δουλειά για τον ίδιο αριθμό κύκλων CPU σε σύγκριση με την προηγούμενη έκδοση. Το Cachegrind δεν είναι πραγματική CPU και το φόρτο εργασίας που χρησιμοποιείται για τη μέτρηση είναι μόνο ένας πληρεξούσιος. Έτσι, η απόδοσή σας μπορεί να διαφέρει. Αναμένουμε να δούμε περίπου το ήμισυ της μετρούμενης και αναφερόμενης βελτίωσης στις πραγματικές εφαρμογές. Το 10% είναι μικρότερο από 20%, αλλά εξακολουθεί να είναι αρκετά καλό, νομίζουμε.
  • Αυτή η έκδοση περιλαμβάνει ένα νέο σύνολο διεπαφών γλώσσας C που έχουν μη υπογεγραμμένες 64-bit αντί για υπογεγραμμένες παραμέτρους μήκους 32 bit. Τα νέα API δεν παρέχουν νέες δυνατότητες. Αλλά καθιστούν ευκολότερο να γράφουν εφαρμογές που είναι πιο ανθεκτικές σε τρωτά σημεία υπερχείλισης.
  • Αυτή η έκδοση περιλαμβάνει επίσης έναν νέο ταξινομητή που μπορεί να χρησιμοποιήσει πολλαπλά θέματα για να βοηθήσει με μεγάλες λειτουργίες ταξινόμησης. (Οι λειτουργίες ταξινόμησης απαιτούνται μερικές φορές για να εφαρμόσουν τους όρους ORDER BY και / ή GROUP BY και σχεδόν πάντα απαιτούνται για το CREATE INDEX.) Ο διαλογέας πολλαπλών τεμαχίων είναι απενεργοποιημένος από προεπιλογή και πρέπει να ενεργοποιηθεί χρησιμοποιώντας την εντολή SQL PRAGMA threads. Σημειώστε ότι ο πολλαπλών σπειρωμάτων διαλογέας παρέχει ταχύτερη απόδοση σε πραγματικό χρόνο για μεγάλα είδη, αλλά χρησιμοποιεί επίσης περισσότερους κύκλους CPU και περισσότερη ενέργεια.

Τι νέο υπάρχει στην έκδοση 3.8.3.1:

  • Η έκδοση του SQLite 3.8.3.1 διορθώνει ένα σφάλμα που υπάρχει στις εκδόσεις 3.8.1, 3.8.2 και 3.8.3 που μπορεί να προκαλέσει παραλείψεις σε έγκυρες γραμμές. Απαιτείται αναβάθμιση από αυτές τις εκδόσεις.
  • Το πρόβλημα εμφανίζεται μόνο αν το SQLite μεταγλωττιστεί είτε με τις επιλογές SQLITE_ENABLE_STAT3 είτε με το SQLITE_ENABLE_STAT4 compile-time. Σε αυτή την περίπτωση, εάν ένα ερώτημα έχει μια ρήτρα WHERE που περιέχει εκφράσεις όπως αυτή:
  • WHERE (expr1 Ή expr2 Ή ... ή exprN) ΚΑΙ η στήλη ΔΕΝ είναι NULL
  • Όπου όλα τα expr1 μέσω exprN είναι κατάλληλα για χρήση από ευρετήρια, τότε κατά το σχεδιασμό επερωτήσεων το SQLite μπορεί να μετατρέψει λάθος τον όρο "column IS NOT NULL" σε "column & gt; NULL". Αλλά ο τελευταίος όρος δεν είναι ποτέ αληθής, και έτσι το ερώτημα δεν θα επέστρεφε γραμμές.

Τι νέο υπάρχει στην έκδοση 3.8.3:

  • Προστέθηκε υποστήριξη για κοινές εκφράσεις τραπεζιού και ρήτρα WITH.
  • Προστέθηκε η λειτουργία SQL printf ().
  • Προστέθηκε το SQLITE_DETERMINISTIC ως προαιρετικό κομμάτι στο 4ο όρισμα στη sqlite3_create_function () και τις σχετικές διεπαφές, παρέχοντας στις εφαρμογές τη δυνατότητα δημιουργίας νέων λειτουργιών που μπορούν να ληφθούν υπόψη από τους εσωτερικούς βρόχους όταν έχουν σταθερά επιχειρήματα.
  • Προσθέστε τον κωδικό σφάλματος SQLITE_READONLY_DBMOVED, που επιστράφηκε στην αρχή μιας συναλλαγής, για να υποδείξετε ότι το υποκείμενο αρχείο βάσης δεδομένων έχει μετονομαστεί ή μετακινηθεί από κάτω από το SQLite.
  • Επιτρέψτε σε αυθαίρετες εκφράσεις, συμπεριλαμβανομένων των κλήσεων και υποερωτήσεων, στο παράθυρο του ονόματος αρχείου, για να συνδέσετε την εντολή ATTACH.
  • Να επιτρέπεται η χρήση ρήτρας VALUES οπουδήποτε ισχύει μια εντολή SELECT.
  • Επανεγκαταστήστε το PRNG που χρησιμοποιείται από το sqlite3_randomness (N, P) όταν επικαλείται με N == 0. Αυτόματη επανατοποθέτηση μετά από ένα πηρούνι () στο unix.
  • Βελτιώστε τον εικονικό πίνακα spellfix1 έτσι ώστε να μπορεί να αναζητήσει αποτελεσματικά με rowid.
  • Βελτιώσεις επιδόσεων.
  • Βελτιώσεις στα σχόλια στην εμφάνιση κώδικα byte του VDBE κατά την εκτέλεση του EXPLAIN.
  • Προσθέστε την οδηγία "% token_class" στη γεννήτρια συνόλων LEMON και χρησιμοποιήστε την για να απλοποιήσετε τη γραμματική.
  • Αλλάξτε τον πηγαίο κώδικα LEMON για να αποφύγετε τις λειτουργίες της βιβλιοθήκης C που θεωρεί το OpenBSD επικίνδυνο. (Π.χ .: sprintf).
  • Διόρθωση σφαλμάτων: Στο χαρακτηριστικό εισαγωγής κορμού γραμμής εντολών CSV, μην τερματίζετε ένα πεδίο όταν εμφανίζεται ένα διπλό παράθυρο διαφυγής στο τέλος μιας γραμμής CRLN.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 για το sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

Παρόμοια λογισμικά

CloverETL Designer
CloverETL Designer

17 Feb 15

phpPgAdmin
phpPgAdmin

14 Apr 15

Cego
Cego

17 Feb 15

Σχόλια για SQLite

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!
Αναζήτηση ανά κατηγορία