Method: Extralite::Changeset#apply

Defined in:
ext/extralite/changeset.c

#apply(db) ⇒ Extralite::Changeset

Applies the changeset to the given database.

Parameters:

Returns:



351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
# File 'ext/extralite/changeset.c', line 351

VALUE Changeset_apply(VALUE self, VALUE db) {
  Changeset_t *changeset = self_to_changeset(self);
  verify_changeset(changeset);

  Database_t *db_struct = self_to_database(db);
  sqlite3 *sqlite3_db = db_struct->sqlite3_db;

  int rc = sqlite3changeset_apply(
    sqlite3_db,
    changeset->changeset_len,
    changeset->changeset_ptr,
    NULL,
    xConflict,
    (void*)1
  );
  if (rc != SQLITE_OK)
    rb_raise(cError, "Error while applying changeset: %s", sqlite3_errstr(rc));

  return self;
}