პროგრამირების სამყაროში SQLite-ის გამოყენება კიდევ უფრო გამარტივდა. ახალი პორტი, რომელიც სრულად არის დაწერილი Go-ს ენაზე, დეველოპერებს ათავისუფლებს CGo-ზე დამოკიდებულებისგან. ეს ცვლილება მნიშვნელოვნად აუმჯობესებს პროექტების თავსებადობასა და კოდის მართვას.

PlatformRoleContributing Guidelines
GitLabPrimary SourceThis is the canonical repository (cznic/sqlite). CI pipelines and main development happen here.
GitHubMirrorThis is a mirror (modernc-org/sqlite). We do accept Issues and Pull Requests here for your convenience! Note: PRs submitted here will be manually merged into the GitLab source, so please allow extra time for processing.

პლატფორმა დეველოპერებს სთავაზობს modernc.org/sqlite/vtab პაკეტს, რომელიც საშუალებას იძლევა, ვირტუალური ცხრილების მოდულები პირდაპირ Go-ში შეიქმნას. ეს ფუნქციონალი განსაკუთრებით გამოსადეგია ვექტორული ინდექსების, CSV ფაილებისა და დისტანციური API-ების ინტეგრაციისთვის.

ვირტუალური ცხრილების მართვა

ახალი ინსტრუმენტით მონაცემთა წყაროების მართვა მოქნილი გახდა. სისტემა საშუალებას იძლევა, დინამიურად განისაზღვროს სქემები ctx.Declare ფუნქციის გამოყენებით. ეს მიდგომა დეველოპერს აძლევს თავისუფლებას, მართოს მონაცემები წინასწარ განსაზღვრული სტატიკური სტრუქტურების გარეშე.

მოდულის რეგისტრაცია ხდება vtab.RegisterModule ფუნქციით, რაც მხოლოდ ახალ კავშირებზე ვრცელდება. მნიშვნელოვანია, რომ მოდულის არგუმენტები, რომლებიც USING ბრძანებით გადაეცემა, კონფიგურაციის პარსვისთვის გამოიყენება და არ ითვლება სავალდებულო სვეტებად.

ოპტიმიზაცია და შესრულება

პროგრამისტებს შეუძლიათ SQLite-ის დამგეგმავთან (planner) მჭიდრო თანამშრომლობა BestIndex მეთოდის საშუალებით. სისტემა აანალიზებს შეზღუდვებს, დალაგების პირობებსა და გამოყენებულ სვეტებს, რაც ოპტიმალური შედეგის მიღწევის საშუალებას იძლევა.


შესრულების დონეზე, Filter მეთოდი იღებს მონაცემებს განსაზღვრული თანმიმდევრობით, ხოლო შეცდომების დამუშავება ხდება პირდაპირი შეტყობინებების დაბრუნებით, რაც ამარტივებს დებაგინგის პროცესს.

პრაქტიკული გამოყენება

ახალი პორტი განსაკუთრებით ეფექტურია შემდეგი მიმართულებებით:

  • ვექტორული ძიება: შესაძლებელია ვექტორული მონაცემების ინტეგრაცია vec(dim=128, metric="cosine") სტილის ვირტუალური ცხრილებით.
  • CSV მონაცემების იმპორტი: ფაილის ჰედერის წაკითხვით ავტომატურად იქმნება სვეტების სტრუქტურა, რაც მონაცემთა სტრიმინგს ამარტივებს.

აღნიშნული გადაწყვეტა მნიშვნელოვანი ნაბიჯია Go-ს ეკოსისტემისთვის, რადგან ის ამცირებს კომპლექსურობას და ზრდის შესრულების სიჩქარეს SQLite-თან მუშაობისას.