void IDBDatabaseBackendImpl::createObjectStoreInternal(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl> database, PassRefPtr<IDBObjectStoreBackendImpl> objectStore, PassRefPtr<IDBTransactionBackendInterface> transaction) { SQLiteStatement insert(database->sqliteDatabase(), "INSERT INTO ObjectStores (name, keyPath, doAutoIncrement, databaseId) VALUES (?, ?, ?, ?)"); if (insert.prepare() != SQLResultOk) { transaction->abort(); return; } insert.bindText(1, objectStore->name()); insert.bindText(2, objectStore->keyPath()); insert.bindInt(3, static_cast<int>(objectStore->autoIncrement())); insert.bindInt64(4, database->id()); if (insert.step() != SQLResultDone) { transaction->abort(); return; } int64_t id = database->sqliteDatabase().lastInsertRowID(); objectStore->setId(id); transaction->didCompleteTaskEvents(); }
void IDBDatabaseBackendImpl::createObjectStoreInternal(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl> database, PassRefPtr<IDBObjectStoreBackendImpl> objectStore, PassRefPtr<IDBTransactionBackendImpl> transaction) { if (!database->m_backingStore->createObjectStore(transaction->backingStoreTransaction(), database->id(), objectStore->id(), objectStore->name(), objectStore->keyPath(), objectStore->autoIncrement())) { transaction->abort(); return; } }
void IDBDatabaseBackendImpl::createObjectStoreInternal(ScriptExecutionContext*, PassRefPtr<IDBDatabaseBackendImpl> database, PassRefPtr<IDBObjectStoreBackendImpl> objectStore, PassRefPtr<IDBTransactionBackendInterface> transaction) { int64_t objectStoreId; if (!database->m_backingStore->createObjectStore(database->id(), objectStore->name(), objectStore->keyPath(), objectStore->autoIncrement(), objectStoreId)) { transaction->abort(); return; } objectStore->setId(objectStoreId); transaction->didCompleteTaskEvents(); }