𝗖𝗮𝗽𝗮𝗰𝗶𝘁𝗼𝗿 میں 𝗖𝘂𝘀𝘁𝗼𝗺 𝗦𝗤𝗟𝗶𝘁𝗲 𝗘𝘅𝘁𝗲𝗻𝘀𝗶𝗼𝗻𝘀 کا استعمال کیسے کریں۔
زیادہ تر کاموں کے لیے Standard SQLite کافی ہوتا ہے۔ کبھی کبھی آپ کو اس سے زیادہ کی ضرورت ہوتی ہے۔
مخصوص زبانوں کے لیے آپ کو ایک custom tokenizer کی ضرورت ہو سکتی ہے۔ آپ کو custom math functions یا خاص text processing کی ضرورت پڑ سکتی ہے۔ انہیں loadable extensions کہا جاتا ہے۔
Capacitor SQLite plugin Android اور iOS پر ان کی سپورٹ فراہم کرتا ہے۔
Extensions کا استعمال کیوں کریں؟
- Custom FTS5 tokenizers: اس بات کو کنٹرول کریں کہ سرچ کے لیے ٹیکسٹ کیسے تقسیم ہوتا ہے۔
- Custom SQL functions: اپنے ڈیٹا کے قریب ہی پیچیدہ لاجک (logic) چلائیں۔
اس کا نفاذ (implementation) پلیٹ فارم کے لحاظ سے مختلف ہوتا ہے۔
Android
Android سسٹم SQLite براہ راست extensions لوڈ کرنے کی سپورٹ نہیں کرتا۔ آپ کو requery backend استعمال کرنا ہوگا۔
- اپنی
variables.gradleفائل میں requery آپشن کو فعال (enable) کریں۔ - اپنی
build.gradleفائل میں JitPack repository شامل کریں۔ - اپنے C کوڈ کو ہر CPU architecture کے لیے native libraries (
.sofiles) میں کمپائل کریں۔ - ان فائلوں کو
jniLibsفولڈر میں رکھیں۔ - ڈیٹا بیس کھولتے وقت
androidExtensionsآپشن کا استعمال کریں۔
iOS
iOS ایپس runtime پر dynamic libraries لوڈ نہیں کر سکتیں۔ آپ کو اپنی extension کو statically لنک کرنا ہوگا۔
- اپنی C source file کو اپنے Xcode project میں شامل کریں۔
- اس فائل کے لیے
-DSQLITE_COREcompiler flag سیٹ کریں۔ - اپنے bridging header میں
initفنکشن کو ڈکلیئر (declare) کریں۔ sqlite3_auto_extensionکا استعمال کرتے ہوئے اپنے AppDelegate میں extension کو رجسٹر کریں۔
آپ کی extension کے لیے C کوڈ وہی رہتا ہے۔ صرف build اور registration کے مراحل تبدیل ہوتے ہیں۔
ایک بار لوڈ ہونے کے بعد، آپ کی custom extension بالکل ایک built-in SQLite فیچر کی طرح کام کرتی ہے۔ آپ اپنے نئے tokenizer یا function کو فوری طور پر اپنے SQL statements میں استعمال کر سکتے ہیں۔
Custom extensions آپ کو اپنے موبائل ڈیٹا بیس کے اندر native code کی طاقت فراہم کرتی ہیں۔
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k