add nullable value support, change field datatype

This commit is contained in:
yggverse 2024-10-11 23:44:33 +03:00
parent 6a4790c92b
commit a2643d953d
3 changed files with 11 additions and 4 deletions

View file

@ -151,6 +151,7 @@ impl Request {
transaction: &Transaction,
app_browser_window_tab_item_page_navigation_id: &i64,
) -> Result<(), String> {
// Keep value in memory until operation complete
let text = self.widget.text();
match Database::add(

View file

@ -93,10 +93,16 @@ impl Widget {
transaction: &Transaction,
app_browser_window_tab_item_id: &i64,
) -> Result<(), String> {
// Keep value in memory until operation complete
let title = self.gobject.title();
match Database::add(
transaction,
app_browser_window_tab_item_id,
Some(&self.gobject.title().to_string()),
match title.is_empty() {
true => None,
false => Some(title.as_str()),
},
) {
Ok(_) => {
// let id = Database::last_insert_id(transaction);

View file

@ -3,7 +3,7 @@ use sqlite::{Error, Transaction};
pub struct Table {
pub id: i64,
// pub app_browser_window_tab_item_id: i64, not in use
pub title: Option<String>,
pub title: Option<String>, // can be stored as NULL
}
pub struct Database {
@ -17,7 +17,7 @@ impl Database {
(
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`app_browser_window_tab_item_id` INTEGER NOT NULL,
`title` TEXT
`title` VARCHAR(1024)
)",
[],
)
@ -26,7 +26,7 @@ impl Database {
pub fn add(
tx: &Transaction,
app_browser_window_tab_item_id: &i64,
title: Option<&String>,
title: Option<&str>,
) -> Result<usize, Error> {
tx.execute(
"INSERT INTO `app_browser_window_tab_item_widget` (