--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+use Test::Exception;
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use File::Spec::Functions 'catfile';
+use DBI;
+
+my $test_dir = $FindBin::Bin;
+my $db = catfile($test_dir, 'testdb.db');
+
+my $dbh = DBI->connect("dbi:SQLite:$db", '', '', {
+ RaiseError => 1, PrintError => 0
+});
+
+$dbh->do(<<'EOF');
+create table users (
+ id integer primary key,
+ first_name varchar(100),
+ middle_name varchar(100),
+ last_name varchar(100),
+ email_address varchar(100)
+)
+EOF
+$dbh->disconnect;
+
+my $model = instance();
+my $rs = $model->resultset('User');
+
+my $row = $rs->create({ first_name => 'Foo', last_name => 'Bar' });
+
+$row->first_name(\['last_name']);
+
+lives_ok {
+ $row->update;
+} 'update survived';
+
+$row->discard_changes;
+
+is $row->first_name, 'Bar',
+ 'row updated with literal SQL through accessor';
+
+done_testing;
+
+sub instance {
+ MyApp::Model::DB->COMPONENT('MyApp', {
+ schema_class => 'ASchemaClass',
+ connect_info => ["dbi:SQLite:$db", '', ''],
+ @_,
+ })
+}
+
+{
+ package MyApp;
+ use Catalyst;
+}
+{
+ package MyApp::Model::DB;
+ use base 'Catalyst::Model::DBIC::Schema';
+}
+
+END {
+ $model->storage->disconnect if $model;
+ unlink $db or die "Could not delete $db: $!";
+}