Hàm sqlite_source_id()
Trả về chuỗi xác định chính xác commit/revision của source code SQLite (ví dụ: "2023-04-01 12:34:56 abcdef123456"). Chi tiết hơn sqlite_version().
DatabaseHelper.java
public ArrayList<String> getAllContacts() {
ArrayList<String> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery(
"SELECT sqlite_source_id() as source_id FROM " + TABLE_NAME + " LIMIT 1", null);
if (cursor.moveToFirst()) {
String sourceId = cursor.getString(0);
list.add("SQLite Source ID: " + sourceId);
}
cursor.close();
return list;
}
Cấu trúc Source ID
sqlite_source_id() → "YYYY-MM-DD HH:MM:SS" Ví dụ: "2023-10-15 14:22:10 7a3b8c9d2e1f4567890abcdef1234567890abcd"
- Ngày giờ build (UTC)
- Git commit hash (SHA-1 hoặc SHA-3)
Kết quả

Hiển thị Source ID đầy đủ cho từng bản ghi.
Phân biệt version vs source_id
| Hàm | Ví dụ | Dùng khi |
|---|---|---|
| sqlite_version() | "3.43.2" | Kiểm tra tính năng, compatibility |
| sqlite_source_id() | "2023-09-15 10:30:00 abc123..." | Debug build cụ thể, báo lỗi upstream |
Ứng dụng
- Báo bug SQLite: kèm source_id để dev team reproduce chính xác.
- Kiểm tra bản vá bảo mật: so sánh commit hash với security advisory.
- Reproducible builds: xác minh binary khớp source.
Lấy trong Java code
Cursor cursor = db.rawQuery("SELECT sqlite_source_id()", null);
if (cursor.moveToFirst()) {
String sourceId = cursor.getString(0);
// Log hoặc gửi crash report
}
cursor.close();