# trigger the before_save() hook from this very plugin assigning a
# number at the end of the list again.
my $table = $self->meta->table;
# trigger the before_save() hook from this very plugin assigning a
# number at the end of the list again.
my $table = $self->meta->table;
WHERE ${primary_key_col} = ?
SQL
$self->db->dbh->do($sql, undef, $self->$primary_key_col);
WHERE ${primary_key_col} = ?
SQL
$self->db->dbh->do($sql, undef, $self->$primary_key_col);
my $table = $self->meta->table;
my ($group_by, @values) = get_group_by_where($self);
my $table = $self->meta->table;
my ($group_by, @values) = get_group_by_where($self);
my ($group_by, @values) = get_group_by_where($self);
$group_by = ' AND ' . $group_by if $group_by;
my $sql = <<SQL;
my ($group_by, @values) = get_group_by_where($self);
$group_by = ' AND ' . $group_by if $group_by;
my $sql = <<SQL;
- croak "No position set yet" unless defined $self->$column;
+
+ my $column = column_name($self);
+ my $old_position = $self->$column;
+ croak "No position set yet" unless defined($old_position) && ($old_position != -1);
my ($comp_sel, $comp_upd, $min_max, $plus_minus) = $direction eq 'up' ? ('<', '>=', 'MAX', '+') : ('>', '<=', 'MIN', '-');
my ($group_by, @values) = get_group_by_where($self);
$group_by = ' AND ' . $group_by if $group_by;
my $sql = <<SQL;
SELECT ${min_max}(${column})
FROM ${table}
my ($comp_sel, $comp_upd, $min_max, $plus_minus) = $direction eq 'up' ? ('<', '>=', 'MAX', '+') : ('>', '<=', 'MIN', '-');
my ($group_by, @values) = get_group_by_where($self);
$group_by = ' AND ' . $group_by if $group_by;
my $sql = <<SQL;
SELECT ${min_max}(${column})
FROM ${table}