Remove code which migrated into the core of SQLA
Peter Rabbitson [Wed, 11 Apr 2012 05:20:10 +0000 (07:20 +0200)]
lib/DBIx/Class/SQLMaker.pm
t/sqlmaker/op_ident.t [deleted file]
t/sqlmaker/op_value.t [deleted file]

index 02b44f0..34b9c80 100644 (file)
@@ -27,10 +27,6 @@ Currently the enhancements to L<SQL::Abstract> are:
 
 =item * Support of C<...FOR UPDATE> type of select statement modifiers
 
-=item * The L</-ident> operator
-
-=item * The L</-value> operator
-
 =back
 
 =cut
@@ -101,63 +97,6 @@ sub _quote {
   );
 }
 
-sub new {
-  my $self = shift->next::method(@_);
-
-  # use the same coderefs, they are prepared to handle both cases
-  my @extra_dbic_syntax = (
-    { regex => qr/^ ident $/xi, handler => '_where_op_IDENT' },
-    { regex => qr/^ value $/xi, handler => '_where_op_VALUE' },
-  );
-
-  push @{$self->{special_ops}}, @extra_dbic_syntax;
-  push @{$self->{unary_ops}}, @extra_dbic_syntax;
-
-  $self;
-}
-
-sub _where_op_IDENT {
-  my $self = shift;
-  my ($op, $rhs) = splice @_, -2;
-  if (ref $rhs) {
-    $self->throw_exception("-$op takes a single scalar argument (a quotable identifier)");
-  }
-
-  # in case we are called as a top level special op (no '=')
-  my $lhs = shift;
-
-  $_ = $self->_convert($self->_quote($_)) for ($lhs, $rhs);
-
-  return $lhs
-    ? "$lhs = $rhs"
-    : $rhs
-  ;
-}
-
-sub _where_op_VALUE {
-  my $self = shift;
-  my ($op, $rhs) = splice @_, -2;
-
-  # in case we are called as a top level special op (no '=')
-  my $lhs = shift;
-
-  my @bind = [
-    ($lhs || $self->{_nested_func_lhs} || $self->throw_exception("Unable to find bindtype for -value $rhs") ),
-    $rhs
-  ];
-
-  return $lhs
-    ? (
-      $self->_convert($self->_quote($lhs)) . ' = ' . $self->_convert('?'),
-      @bind
-    )
-    : (
-      $self->_convert('?'),
-      @bind,
-    )
-  ;
-}
-
 sub _where_op_NEST {
   carp_unique ("-nest in search conditions is deprecated, you most probably wanted:\n"
       .q|{..., -and => [ \%cond0, \@cond1, \'cond2', \[ 'cond3', [ col => bind ] ], etc. ], ... }|
@@ -512,41 +451,6 @@ sub _join_condition {
 
 1;
 
-=head1 OPERATORS
-
-=head2 -ident
-
-Used to explicitly specify an SQL identifier. Takes a plain string as value
-which is then invariably treated as a column name (and is being properly
-quoted if quoting has been requested). Most useful for comparison of two
-columns:
-
-    my %where = (
-        priority => { '<', 2 },
-        requestor => { -ident => 'submitter' }
-    );
-
-which results in:
-
-    $stmt = 'WHERE "priority" < ? AND "requestor" = "submitter"';
-    @bind = ('2');
-
-=head2 -value
-
-The -value operator signals that the argument to the right is a raw bind value.
-It will be passed straight to DBI, without invoking any of the SQL::Abstract
-condition-parsing logic. This allows you to, for example, pass an array as a
-column value for databases that support array datatypes, e.g.:
-
-    my %where = (
-        array => { -value => [1, 2, 3] }
-    );
-
-which results in:
-
-    $stmt = 'WHERE array = ?';
-    @bind = ([1, 2, 3]);
-
 =head1 AUTHORS
 
 See L<DBIx::Class/CONTRIBUTORS>.
diff --git a/t/sqlmaker/op_ident.t b/t/sqlmaker/op_ident.t
deleted file mode 100644 (file)
index 46668a6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use lib qw(t/lib);
-use DBIC::SqlMakerTest;
-
-use_ok('DBICTest');
-
-my $schema = DBICTest->init_schema();
-
-my $sql_maker = $schema->storage->sql_maker;
-
-for my $q ('', '"') {
-
-  $sql_maker->quote_char($q);
-
-  is_same_sql_bind (
-    \[ $sql_maker->select ('artist', '*', { 'artist.name' => { -ident => 'artist.pseudonym' } } ) ],
-    "SELECT *
-      FROM ${q}artist${q}
-      WHERE ${q}artist${q}.${q}name${q} = ${q}artist${q}.${q}pseudonym${q}
-    ",
-    [],
-  );
-
-  is_same_sql_bind (
-    \[ $sql_maker->update ('artist',
-      { 'artist.name' => { -ident => 'artist.pseudonym' } },
-      { 'artist.name' => { '!=' => { -ident => 'artist.pseudonym' } } },
-    ) ],
-    "UPDATE ${q}artist${q}
-      SET ${q}artist${q}.${q}name${q} = ${q}artist${q}.${q}pseudonym${q}
-      WHERE ${q}artist${q}.${q}name${q} != ${q}artist${q}.${q}pseudonym${q}
-    ",
-    [],
-  );
-}
-
-done_testing;
diff --git a/t/sqlmaker/op_value.t b/t/sqlmaker/op_value.t
deleted file mode 100644 (file)
index ceb441e..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-use strict;
-use warnings;
-
-use Test::More;
-
-use lib qw(t/lib);
-use DBIC::SqlMakerTest;
-
-use_ok('DBICTest');
-
-my $schema = DBICTest->init_schema();
-
-my $sql_maker = $schema->storage->sql_maker;
-
-for my $q ('', '"') {
-
-  $sql_maker->quote_char($q);
-
-  is_same_sql_bind (
-    \[ $sql_maker->select ('artist', '*', { arr1 => { -value => [1,2] }, arr2 => { '>', { -value => [3,4] } }, field => [5,6] } ) ],
-    "SELECT *
-      FROM ${q}artist${q}
-      WHERE ${q}arr1${q} = ? AND
-            ${q}arr2${q} > ? AND
-            ( ${q}field${q} = ? OR ${q}field${q} = ? )
-    ",
-    [
-      [ arr1 => [1,2] ],
-      [ arr2 => [3,4] ],
-      [ field => 5 ],
-      [ field => 6 ],
-    ],
-  );
-}
-
-done_testing;