SQLite হল একটি ওপেন সোর্স, মাল্টিপ্ল্যাটফট, ফ্রি এবং ছোট সি লাইব্রেরি যা একটি স্বতঃযুক্ত, এম্বেডযোগ্য, লেনদেনকারী, সার্ভারহীন এবং শূন্য-কনফিগারেশন SQL ডাটাবেস ইঞ্জিন বাস্তবায়ন করে। এটি বিশ্ব & rsquo; সবচেয়ে ব্যবহৃত এসকিউএল ডাটাবেস ইঞ্জিন।
একটি নজরে বৈশিষ্ট্য
মূল বৈশিষ্ট্যগুলি বিচ্ছিন্ন, পারমাণবিক, টেকসই এবং সামঞ্জস্যপূর্ণ লেনদেনের জন্য সমর্থন, SQL92 বাস্তবায়ন, ডাটাবেস ফাইলগুলি কম্পিউটারে অবাধে ভাগ করা যায়, 2 টেরাবাইট পর্যন্ত ডেটাবেস সমর্থন করে, গিগাবাইট-আকারের blobs এবং স্ট্রিং, ছোট কোড পদাঙ্ক, একটি সহজ ব্যবহার এবং খুব সহজ API (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) হিসাবে ভাল।
উপরন্তু, SQLite প্রাথমিক কনফিগারেশন বা আরও প্রশাসন প্রয়োজন হয় না, ডেভেলপারদের একটি একক, ক্রস প্ল্যাটফর্ম ডিস্ক ফাইলের মধ্যে একটি সম্পূর্ণ ডাটাবেস সংরক্ষণের অনুমতি দেয়, যা অ্যাপ্লিকেশন ফাইল ফর্ম্যাট ব্যবহারের জন্য নিখুঁত, কোন বহিরাগত নির্ভরতা নেই, টিসিএল (টুল কমান্ড ল্যাঙ্গুয়েজ) বাইন্ডিং এবং ব্যাপক ডকুমেন্টেশন।
বিভিন্ন অন্যান্য প্রোগ্রামিং ভাষার জন্য বাঁধগুলি পৃথকভাবে পাওয়া যায়। এটির সোর্স কোডটি ভালভাবে মন্তব্য করা হয় এবং এটি একটি স্বতন্ত্র CLI (কমান্ড-লাইন ইন্টারফেস) ক্লায়েন্টের সাথে আসে যাটি SQLite ডেটাবেসেসের প্রশাসনের জন্য ব্যবহার করা অফসেট থেকে ডিজাইন করা হয়েছে।
আমি কিসের জন্য এটি ব্যবহার করতে পারি?
SQLite ডাটাবেস ইঞ্জিন কোনও উদ্দেশ্য, ব্যক্তিগত বা বাণিজ্যিক জন্য ব্যবহার করা যেতে পারে। SQLite- এর জন্য প্রস্তাবিত ব্যবহারগুলি গ্যাজেটগুলি, ওয়েবসাইটের ডেটাবেসের জন্য ডাটাবেস, এন্টারপ্রাইজ RDBMS (রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম) এবং অ্যাপ্লিকেশন ফাইল ফর্ম্যাটের জন্য স্ট্যান্ড-ইন অন্তর্ভুক্ত।
হুড এবং OSes সমর্থিত অধীনে
SQLite বন্টনটি একটি স্বতন্ত্র কমান্ড-লাইন অ্যাক্সেস প্রোগ্রাম (স্ক্যালাইট) এর সাথে আসে যা একটি SQLite ডাটাবেস পরিচালনা করতে ব্যবহার করা যায় এবং যা SQLite লাইব্রেরি কিভাবে ব্যবহার করা যায় তার একটি উদাহরণ হিসেবে কাজ করে। এটি সম্পূর্ণ ANSI-C প্রোগ্রামিং ভাষা লিখিত হয়।
সমর্থিত ডেস্কটপ অপারেটিং সিস্টেমগুলির মধ্যে রয়েছে জিএনইউ / লিনাক্স, ম্যাক ওএস এক্স এবং মাইক্রোসফ্ট উইন্ডোজ। সমর্থিত মোবাইল অপারেটিং সিস্টেমগুলি রয়েছে অ্যান্ড্রয়েড এবং iOS এটি 32-বিট এবং 64-বিট হার্ডওয়্যার প্ল্যাটফর্মগুলির সাথে সফলভাবে পরীক্ষা করা হয়েছে এবং এটি অন্যান্য অপারেটিং সিস্টেমগুলিতে সহজেই পোর্টেবল।
নতুন কী রয়েছে এই রিলিজে: পি>
- এই রিলিজের হাইলাইটগুলি হল PostgreSQL- শৈলী UPSERT এবং উন্নত কর্মক্ষমতা, বিশেষ করে ORDER দ্বারা LIMIT ক্যোয়ারীর জন্য সমর্থন।
নতুন কি আছে সংস্করণে:
- F2FS ফাইলে থাকা সিস্টেমে পারমাণবিক-লিখন ক্ষমতা উপভোগ করুন, যখন প্রচুর পরিমাণে লেনদেনের ওভারহেডের জন্য। বর্তমানে SQLITE_ENABLE_BATCH_ATOMIC_WRITE কম্পাইল-টাইম বিকল্পটি প্রয়োজন।
- ATTACH এবং DETACH কমান্ডগুলি একটি লেনদেনের ভিতরে কাজ করার অনুমতি দেয়।
- প্রাথমিক সারি একটি কলাম ধারণ করে যদি ROWID ভার্চুয়াল টেবিলগুলি লিখনযোগ্য হতে পারে তবে অনুমতি দিন।
- & quot; fsync () & quot; যে হেডার একটি WAL রিসেট লেখা হয় পরে আসে আবার চেকপয়েন্ট জন্য সিঙ্ক সেটিংস ব্যবহার করে। এর মানে হল এটি একটি & quot; fullfsync & quot; PRAGMA checkpoint_fullfsync সেট করা হলে macs- এ।
- sqlite3_sourceid () ফাংশন সংস্করণ কন্ট্রোলের মধ্যে সোর্স কোড সংশোধন করা হয়েছে কিনা তা সনাক্ত করার চেষ্টা করে এবং যদি পরিবর্তন হয় তবে সংস্করণ হ্যাশের শেষ চারটি অক্ষর & quot; alt1 & quot; হিসাবে দেখানো হয়। অথবা & quot; alt2 & quot; উদ্দেশ্য আতঙ্কজনক এবং / অথবা অপ্রত্যাশিত সম্পাদনা সনাক্ত করা হয়। একটি ফ্যাগার এই বৈশিষ্ট্যটি ছিন্ন করতে পারে।
- ডান টেডের সমষ্টিগত ক্যোয়ারীর সাথে ক্যাট টেবিল হিসাবে বিবৃতিগুলির জন্য কলামের নামগুলি সংশোধন করা হয়েছে।
- কম & quot; stat () & quot; ইউনিক্স ভিএফএস দ্বারা জারি করা সিস্টেম কল।
- পছন্দ অপ্টিমাইজেশান উন্নত করা যাতে এটি একটি ESCAPE ক্লোজ দিয়ে কাজ করে।
- বর্ধিত PRAGMA অখণ্ডতা চেক এবং প্রাগমো দ্রুত_অনুভূতির অস্পষ্ট সারি দুর্নীতি সনাক্ত করার জন্য যে তারা পূর্বে অনুপস্থিত ছিল। এছাড়াও pragmas উভয় আপডেট করুন যাতে তারা রেকর্ডে দুর্নীতি সম্মুখীন যখন তারা SQLITE_CORRUPT পরিবর্তে ত্রুটি টেক্সট ফিরে।
- কোয়েরি প্ল্যানার এখন কো-রুটিন ব্যবহার করে FROM-clause subqueries প্রয়োগ করতে পছন্দ করে না বরং ক্যোয়ারী ফ্ল্যাটেনার অপ্টিমাইজেশান ব্যবহার করে। Subqueries এর সহ-রুটিন ব্যবহারের জন্য সমর্থন আর অক্ষম করা যাবে না।
- ! =, IS, IS, NOT নন, এবং ভার্চুয়াল টেবিলগুলির xBestIndex পদ্ধতিতে নুলের সীমাবদ্ধতা সম্পর্কে তথ্য পাস করুন।
- CSV ভার্চুয়াল টেবিল বাড়ানো যাতে তা অন্তিম সারির ইনপুট গ্রহণ করে যদি ফাইনাল নতুন লাইনের অক্ষর অনুপস্থিত থাকে।
- কমপক্ষে ব্যবহার করা & quot; স্ক্র্যাচ & quot; মেমরি বরাদ্দকরণ এটি SQLITE_CONFIG_SMALL_MALLOC কনফিগারেশন সেটিংসের সাথে প্রতিস্থাপন করে যা SQLite- এ একটি ইঙ্গিত দেয় যে, যখন সম্ভব মেমরি বরাদ্দগুলি বড় হওয়া উচিত।
- বিদ্যমান ইউনিয়ন ভার্চুয়াল টেবিলের এক্সটেনশনতে ঝলমল ভার্চুয়াল টেবিল যোগ করা হয়েছে।
- ডাটাবেস ফাইলের পৃষ্ঠাগুলিতে সরাসরি অ্যাক্সেস প্রদানের জন্য sqlite_dbpage ভার্চুয়াল টেবিল যোগ করা হয়েছে। সোর্স কোড সংমিশ্রনের মধ্যে নির্মিত এবং -DSQLITE_ENABLE_DBPAGE_VTAB কম্পাইল-টাইম বিকল্প ব্যবহার করে সক্রিয় করা হয়।
- একটি নতুন ধরনের fts5vocab ভার্চুয়াল টেবিল যোগ করুন - & quot; দৃষ্টান্ত & quot; - যা সর্বনিম্ন স্তরের স্তরে একটি FTS5 পূর্ণ-পাঠ্য সূচকের সরাসরি এক্সেস প্রদান করে।
- উইন্ডোজ ভিএফএস-এ রান্ড_স () এ একটি কল সরান কারণ এটি ফায়ারফক্সে কিছু পুরোনো ল্যাপটপে সমস্যা সৃষ্টি করছে।
- কমান্ড-লাইন শেলে src / shell.c সোর্স কোড আর সংস্করণ নিয়ন্ত্রণের অধীনে নেই। সেই ফাইলটি এখন বিল্ড প্রক্রিয়ার অংশ হিসাবে তৈরি করা হয়েছে।
- বিবিধ মাইক্রোপ্রোমাইমেশনগুলি প্রায় ২.1% ব্যবহার করে CPU ব্যবহার কমাচ্ছে।
- ত্রুটি সমাধানগুলি:
- OSSFuzz দ্বারা আবিষ্কৃত একটি ত্রুটিপূর্ণ উত্স () বিবৃতি ঠিক করুন। টিকেট cb91bf4290c211d
- sqlite3_result_pointer () এ একটি অস্পষ্ট মেমরি লিক নিক্ষেপ করুন। টিকেট 7486aa54b968e9b
- কোয়েরি প্ল্যানারের কাজ শেষ না হওয়া পর্যন্ত স্কিমা পুনঃসেট প্রতিলিপি দ্বারা একটি সম্ভাব্য ব্যবহার-পরে-বিনামূল্যে ত্রুটি এড়িয়ে চলুন টিকেট be436a7f4587ce5
- শুধুমাত্র সূচকে অন-এক্সপ্রেশন ব্যবহার করে ORDER BY বা GROUP BY যদি COLLATE সঠিক হয়। টিকেট e20dd54ab0e4383
- একটি কথোপকথন ত্রুটিটি ঠিক করুন যখন একটি সূচক-উপর-এক্সপ্রেশন মধ্যে অভিব্যক্তি সত্যিই একটি ধ্রুবক হয় আপ আসছে। টিকেট aa98619ad08ddca
- PRAGMA reverse_unordered_selects নিম্নলিখিত ঘটতে পারে এমন একটি কথোপকথন ত্রুটি নির্ধারণ করুন। টিকেট cb91bf4290c211d
- একটি SEGFault সংশোধন করুন যা একটি IN বা EXISTS উপকোলে টেবিল-মূল্যবান ফাংশন ব্যবহার করে এমন প্রশ্নগুলির জন্য ঘটতে পারে। টিকেট b899b6042f97f5
- একটি নির্দিষ্ট ঘূর্ণমান সাধারণ টেবিল অভিব্যক্তি কম্পাইল করার সময় একটি সম্ভাব্য পূর্ণসংখ্যা ওভারফ্লো সমস্যার সমাধান করুন। এই OSSFuzz দ্বারা আবিষ্কৃত আরেকটি সমস্যা ছিল। চেক ইন 6ee8cb6ae5।
- একটি দুর্নীতিগ্রস্ত ডাটাবেসের ফাইল অনুসন্ধান করার সময় একটি সম্ভাব্য আউট-অফ-আবদ্ধ পাঠ্য নির্ধারণ করুন, Google Project Zero এর নাটালি সিলভানোভিচ দ্বারা সনাক্ত একটি সমস্যা। চেক ইন 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"
sqlite3.c জন্য SHA1: 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 () ROWID সারণি ছাড়া সঠিকভাবে কাজ করার জন্য এবং কলামের নাম প্যারামিটার নাল হলে নথির অস্তিত্ব পরীক্ষা করতে উন্নত করা হয়। ইন্টারফেসটি বর্তমানে ডিফল্টভাবে বিল্ট ইনটি সাকুইলিট_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 লোডযোগ্য এক্সটেনশানটি যুক্ত করেছে যা eval () এসকিউএল ফাংশন প্রয়োগ করে যা SQL- এর recursively মূল্যায়ন করবে।
কর্মক্ষমতা বৃদ্ধি:
3.2% সামগ্রিক পারফরমেন্স বৃদ্ধির জন্য, b-tree বজায় রাখার সাথে জড়িত memcpy () অপারেশনগুলির সংখ্যা হ্রাস করুন।
স্কপ-স্ক্যান অপ্টিমাইজেশনের জন্য আনুমানিক মূল্যের উন্নতি।
স্বয়ংক্রিয় ইনডেক্সিং অপ্টিমাইজেশান এখন যদি আংশিক সূচক উৎপন্ন করতে সক্ষম হয়।
ত্রুটি সমাধানগুলি:
জার্নাল ফাইলটি ছাঁটাই করার পরেই ফ্যাসিঙ্ক () কল করার মাধ্যমে "প্রাগমা জার্নাল_মোড = TRUNCATE" এর সাথে বিদ্যুতের ক্ষতির পর স্থায়িত্ব নিশ্চিত করুন।
ক্যোয়ারী প্ল্যানার এখন স্বীকার করে যে ডানদিকের ডানদিকের কলামে কোনও কলামটি নিল হতে পারে, এমনকি যদি কলামটি একটি নুলের সীমাবদ্ধতা না থাকে। যারা ক্ষেত্রে NULL পরীক্ষা আউট অপ্টিমাইজ করার চেষ্টা করা এড়িয়ে চলুন। টিকেট 6f2222d550f5b0ee7ed জন্য ফিক্স।
নিশ্চিত করুন যে অর্ডারটি ঊর্ধ্বমুখী ক্রম অনুসারে সারি রাখে, এমনকি যদি DISTINCT অপারেটরটি একটি অবরোহী সূচী ব্যবহার করে প্রয়োগ করা হয় টিকেট c5ea805691bfc4204b1cb9e জন্য ফিক্স।
ভাগ করে নেওয়া ক্যাশে মোডে অনেক থ্রেড চলাকালীন চাপের মধ্যে ঘটতে পারে এমন ডেটা রেসগুলি সমাধান করুন যেখানে কিছু থ্রেড খোলা এবং সংযোগগুলি বন্ধ করে।
আমেরিকান ফাজি লোপ দ্বারা পাওয়া অস্পষ্ট ক্র্যাশ বাগগুলি ফিক্স করুন। টিকেট a59ae93ee990a55।
একটি জি সি অপটিমাইজার বাগ (ম্যাকোএস 10.7 এ জিसीसी 4.2.1 জন্য) এর কাজ করে যার ফলে R-Tree এক্সটেনশানটি -O3 এর সাথে কম্পাইল করা হলে ভুল ফলাফল গণনা করা হয়।
অন্যান্য পরিবর্তনগুলি:
স্ট্রাচ্রনুল () সি-লাইব্রেরি রুটিন ব্যবহার নিষ্ক্রিয় করুন যদি না এটি ডিএইচএআইভিআরটিআরআরআরআরআরআরআরআরআরআরআরআরআরআরএলআরএলএলএল কম্পাইল-টাইম বিকল্পটি ব্যবহার করে বিশেষভাবে সক্ষম হয়।
সম্ভাব্যতা (), সম্ভাব্য (), এবং অসম্ভাব্য () এসকিউএল ইঙ্গিত ফাংশনগুলির কার্যকারিতা এবং নির্ভুলতার উন্নতি।
SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
sqlite3.c জন্য SHA1: 91aea4cc722371d58aae3d22e94d2a4165276905
নতুন কি রয়েছে সংস্করণে 3.8.7.4:
যে
এই রিলিজের সংশোধনগুলি একটি mutex যোগ করে যা 3.8.7.3 প্যাচ পরিবর্তনের প্রয়োজন হয় কিন্তু দুর্ঘটনাক্রমে বাদ দেওয়া হয়। কোনও অভ্যন্তরীণ SQLite পরীক্ষার জন্য mutex প্রয়োজন ছিল না, কিন্তু এটি ছাড়া ফায়ারফক্স ক্র্যাশ করে। যে mutex কখনও কখনও মিস করা হয় না তা নিশ্চিত করার জন্য টেস্টের ক্ষেত্রে যুক্ত করা হয়েছে।
নতুন কি রয়েছে সংস্করণে 3.8.7.3:
বাগ ফিক্স: ক্যাশেড কী ইনফো বস্তুগুলি নিশ্চিত করুন (একটি অভ্যন্তরীণ বিস্ফোরণ যা অ্যাপ্লিকেশনে দৃশ্যমান নয়) ভাগ করে নেওয়া ক্যাশে মোডে অপারেটিং করার সময় বদ্ধ থাকে না এবং ঘন ঘন বন্ধ করে এবং কিছু ডেটাবেস সংযোগ পুনরায় খোলে যখন অন্য ডেটাবেস সংযোগগুলি একই ভাগ করা ক্যাশে খোলা থাকে একটানা। টিকেট e4a18565a36884b00edf।
বাগ ফিক্স: যে কোন কলামে LEFT JOIN এর ডান-হাতের সারণিতে যেকোন কলামটি খালি থাকতে পারে, এমনকি কলামটি একটি নুল সীমাবদ্ধতা না থাকলেও। কলাম অনুমান যে অপ্টিমাইজেশান প্রয়োগ না করবেন না কখনও নুল। টিকেট 6f2222d550f5b0ee7ed।
SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
sqlite3.c জন্য SHA1: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261
নতুন কি রয়েছে সংস্করণে 3.8.7.2:
যে
এই রিলিজের প্রাথমিক কারণ হল রোলব্যাক কমান্ডটি উন্নত করা যাতে এটি রানলব্যাক স্কিমা পরিবর্তন না করে যতক্ষণ চলতে থাকে ততক্ষণ চলতে থাকবে একই ডাটাবেসের সংযোগে জিজ্ঞাসা করার অনুমতি দেয়। SQLite- এর সমস্ত আগের সংস্করণগুলিতে, একটি রোলব্যাকটি অবিলম্বে থামাতে মুলতুবি থাকা প্রশ্নগুলির কারণ হতে পারে এবং SQLITE_ABORT বা SQLITE_ABORT_ROLLBACK ফিরে আসবে। যদি ROLLBACK ডাটাবেস স্কিমা পরিবর্তন করে, তবে এই প্যাচ রিলিজের হিসাবে, প্রশ্নগুলি অস্থায়ী হয়ে গেলে, চলমান প্রশ্নগুলি এখনও বন্ধ রয়েছে।
রোলব্যাক বৃদ্ধির সাথে সাথে এই প্যাচ রিলিজে তিনটি অস্পষ্ট বাগগুলির সংশোধনও রয়েছে।
নতুন কি রয়েছে সংস্করণে 3.8.7.1:
যে
এই বাগ-ফিক্স মুক্তির প্রাথমিক কারণ হল একটি টেবিলের শেষে ক্ষেত্রের মান আপডেট করার সাথে একটি সমস্যা মোকাবেলা করা, যেটি ALTER TABLE ADD COLUMN ব্যবহার করে যুক্ত করা হয়েছিল। এই সমস্যাটি 1 প্রথম 3.8.7 রিলিজে উপস্থিত হয়েছিল।
3.8.7 রিলিজে আরেকটি ছোটো বিরক্তিকরতা ছিল যে অ্যান্ড্রয়েড বিল্ডটি স্ট্যান্ডার্ড সি লাইব্রেরির থেকে স্ট্রার্শনাল () ফাংশন ব্যবহার করার চেষ্টা করেছিল তবে সেই ফাংশনটি অ্যান্ড্রয়েডে উপলব্ধ নয়। অ্যান্ড্রয়েডের সমস্যাগুলি প্রায় কাজ করার জন্য- DHHAVE_STRCHRNUL = 0 যোগ করা হয়েছে। এই প্যাচ সংশোধন করে যাতে অ্যান্ড্রয়েড বিল্ডগুলি এখন কোন পরিবর্তন ছাড়াই কাজ করে।
PRAGMA journal_mode = TRUNCATE এর অপারেশনটি উন্নত করা হয়েছে যাতে PRAGMA সিঙ্ক্রোনাস = FULL এর সময় জার্নাল ফাইলটি ছিন্ন করার পরে এটি fsync () ডাকা হয়। এর পরেও বিদ্যুতের ক্ষতি ঘটলে লেনদেন স্থায়িত্ব রক্ষায় এটি সাহায্য করে।
অবশেষে, রান আপ আপডেট এবং মুছে ফেলার বিষয়ে সংক্ষেপে দীর্ঘমেয়াদি এবং অস্পষ্ট সমস্যার সমাধান করা হয়েছে।
নতুন কী রয়েছে সংস্করণে 3.8.7:
আগের রিলিজের অধিকাংশ পরিবর্তন মাইক্রো-অপ্টিমাইজেশান হয়েছে যা স্কাইলেইটিটি দ্রুততর চালানোর জন্য ডিজাইন করা হয়েছে। প্রতিটি পৃথক অপ্টিমাইজেশান একটি unmeasurably ছোট কর্মক্ষমতা প্রভাব আছে। কিন্তু উন্নতি আপ যোগ লিনাক্সে ক্যাশগ্রিন্ড ব্যবহার করে একটি ভাল-সংজ্ঞায়িত ওয়্যারলেড (যা SQLite ডেভেলপাররা সাধারণত একটি অ্যাপ্লিকেশন ওয়ার্কলোডের জন্য প্রক্সি হিসাবে ব্যবহার করে) এবং GCC 4.8.1 এবং x64 linux- এর সাথে সংকলিত, বর্তমান রিলিজের জন্য 20% বেশি কাজ করে। পূর্ববর্তী রিলিজের তুলনায় একই সংখ্যক CPU চক্র। ক্যাশগ্রিন্ডটি প্রকৃত সিপিইউ নয় এবং পরিমাপের জন্য ব্যবহৃত ওয়ার্কলোডটি শুধুমাত্র একটি প্রক্সি। তাই আপনার পারফরম্যান্স বিভিন্ন হতে পারে। আমরা বাস্তব অর্পণ অ্যাপ্লিকেশনের মধ্যে পরিমাপ এবং রিপোর্ট উন্নতি প্রায় অর্ধ দেখতে আশা করি। 10% 20% এর কম কিন্তু এটি এখনও বেশ ভাল, আমরা মনে করি।
এই রিলিজে সি-ল্যাঙ্গুয়েজ ইন্টারফেসের একটি নতুন সেট রয়েছে যা সাইন ইন করা 32-বিট লাইন পরামিতিগুলির পরিবর্তে 64-বিট স্বাক্ষর করেছে। নতুন APIs কোনো নতুন ক্ষমতা প্রদান করে না। কিন্তু তারা অ্যাপ্লিকেশনগুলি লিখতে সহজ করে তুলতে পারে যা পূর্ণসংখ্যা দুর্বলতার পূর্ণসংখ্যায় প্রতিরোধী।
এই রিলিজে একটি নতুন সসার্টও অন্তর্ভুক্ত করা হয়েছে যা বৃহৎ ধরণের অপারেশনগুলির সাহায্যে একাধিক থ্রেড ব্যবহার করতে সক্ষম। (সাজানোর ক্রিয়াকলাপগুলি কখনও কখনও ORDER BY এবং / অথবা GROUP BY কয়টি প্রয়োগ করতে হবে এবং প্রায় সবসময় INDEX তৈরি করতে হবে।) মাল্টি-থ্রেড সোর্স ডিফল্টভাবে বন্ধ করা হয়েছে এবং PRAGMA threads SQL কমান্ড ব্যবহার করে সক্ষম করা আবশ্যক। লক্ষ্য করুন যে মাল্টি-থ্রেডেড সর্দরটি বড় ধরণের জন্য দ্রুত বাস্তব-সময় কর্মক্ষমতা প্রদান করে, তবে এটি আরও CPU চক্র এবং আরো শক্তির ব্যবহার করে।
নতুন কি রয়েছে সংস্করণে 3.8.3.1:
যে
SQLite সংস্করণ 3.8.3.1 সংস্করণের 3.8.1, 3.8.2 এবং 3.8.3 তে একটি বাগ সংশোধন করে যা সারিগুলি বৈধ সারি প্রত্যাখ্যান করতে পারে। এই সংস্করণগুলি থেকে আপগ্রেড করা হচ্ছে।
যদি শুধুমাত্র SQLITE_ENABLE_STAT3 বা SQLITE_ENABLE_STAT4 কম্পাইল-টাইম বিকল্পগুলির সাথে সিক্যুয়েল কম্পাইল করা হয় তবে সমস্যাটি দেখা যায়। সেই ক্ষেত্রে, যদি কোন প্রশ্নটি এমন একটি WHERE ক্লজ থাকে যেখানে এই মত প্রকাশের রয়েছে:
কোথায় (expr1 বা expr2 OR ... অথবা EXprN) এবং কলামটি নূ্যনতম নয়
যেখানে EXPN এর মাধ্যমে সমস্ত EXpr1 দ্বারা indexes দ্বারা ব্যবহারের জন্য উপযুক্ত হয়, তারপর ক্যোয়ারী পরিকল্পনা SQLite- এর সময় ভুলভাবে "কলামটি NULL" শব্দটি "কলাম & gt; NULL" রূপে পরিবর্তিত হতে পারে। কিন্তু পরের শব্দটি সত্য নয়, তাই ক্যোয়ারিতে কোনও সারি থাকবে না।
নতুন কি আছে সংস্করণে 3.8.3:
সাধারণ টেবিল এক্সপ্রেশন এবং সাথে ক্লোনের জন্য সমর্থন যোগ করা।
printf () SQL ফাংশন যুক্ত করেছে।
Sqlite3_create_function () এবং সংশ্লিষ্ট ইন্টারফেসে চতুর্থ আর্গুমেন্টের মধ্যে একটি ঐচ্ছিক বিট হিসাবে SQLITE_DETERMINISTIC যোগ করা হয়েছে, নতুন ফাংশন তৈরি করার ক্ষমতা প্রদান করে যা অভ্যন্তরীণ লুপের বাইরে কার্যকরী হতে পারে যখন তাদের কাছে ধ্রুবক আর্গুমেন্ট থাকে।
SQLITE_READONLY_DBMOVED ত্রুটি কোড যুক্ত করুন, লেনদেনের শুরুতে ফিরে এসেছে, এটি নির্দেশ করে যে অন্তর্নিহিত ডাটাবেস ফাইলটির নাম পরিবর্তন করা হয়েছে অথবা সিক্যুয়েট এর থেকে সরানো হয়েছে।
ATACHCH এ ফাইলের নামের আর্গুমেন্টের মধ্যে, ফাংশন কল এবং উপকাহিনী সহ অযৌক্তিক এক্সপ্রেশন অনুমোদন করুন।
যেকোনো জায়গায়ই একটি VALUES উপাদানের ব্যবহার করতে পারবেন। একটি নির্বাচন করুন বৈধ।
sqlite3_randomness (N, P) দ্বারা ব্যবহৃত PRNG Reseed যখন N == 0 এর সাথে প্রয়োগ করা হয় ইউনিক্সে একটি ফর্ক () এর পরে স্বয়ংক্রিয়ভাবে রিসাইজ করা হয়েছে।
স্পেলফিক্স 1 ভার্চুয়াল টেবিলটি উন্নত করুন যাতে এটি সারিবদ্ধভাবে দক্ষতার সাথে অনুসন্ধান করতে পারে।
পারফরমেন্স বৃদ্ধি।
এক্সপ্লিন চালানোর সময় ভিডিবিএতে বাইট-কোড প্রদর্শনীতে মন্তব্যের উন্নতি।
লিমন পার্সার জেনারেটরের "% token_class" নির্দেশটি যুক্ত করুন এবং ব্যাকরণ সহজ করার জন্য এটি ব্যবহার করুন। OpenBSD বিপজ্জনক বিবেচনা করে C-library ফাংশন কল করার জন্য Lemon সোর্স কোড পরিবর্তন করুন (প্রাক্তন: স্প্রিংফ)।
বাগ ফিক্স: কমান্ড-লাইন শেল CSV আমদানি বৈশিষ্ট্যটিতে, কোনও ক্ষেত্রে শেষ না হলে একটি CRLN লাইনের শেষে একটি বিচ্ছিন্ন ডবল উদ্ধৃতি ঘটে।
SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
sqlite3.c জন্য SHA1: 98a07da78f71b0275e8d9c510486877adc31dbee
পাওয়া মন্তব্যসমূহ না