Clean up PostgreSQL array types recipe
Dagfinn Ilmari Mannsåker [Thu, 11 Dec 2014 11:24:38 +0000 (11:24 +0000)]
- Prefer { -value => [ … ] } syntax over \[ '= ?', [colname => [ … ]] ]
- Reference SQLA -value docs instead of array_datatypes

lib/DBIx/Class/Manual/Cookbook.pod

index 7c2c58e..3270f03 100644 (file)
@@ -1740,27 +1740,28 @@ methods:
     numbers => [1, 2, 3]
   });
 
-  $result->update(
-    {
-      numbers => [1, 2, 3]
-    },
-    {
-      day => '2008-11-24'
-    }
-  );
+  $result->update({
+    numbers => [1, 2, 3]
+    day => '2008-11-24'
+  });
 
 In conditions (e.g. C<\%cond> in the L<DBIx::Class::ResultSet/search> family of
 methods) you cannot directly use array references (since this is interpreted as
 a list of values to be C<OR>ed), but you can use the following syntax to force
 passing them as bind values:
 
-  $resultset->search(
-    {
-      numbers => \[ '= ?', [numbers => [1, 2, 3]] ]
-    }
-  );
+  $resultset->search({
+    numbers => { -value => [1, 2, 3] },
+  });
+
+Alternatively:
+
+  $resultset->search({
+    numbers => \[ '= ?', [numbers => [1, 2, 3]] ]
+  });
+
 
-See L<SQL::Abstract/array_datatypes> and L<SQL::Abstract/Literal SQL with
+See L<SQL::Abstract/-value> and L<SQL::Abstract/Literal SQL with
 placeholders and bind values (subqueries)> for more explanation. Note that
 L<DBIx::Class> sets L<SQL::Abstract/bindtype> to C<columns>, so you must pass
 the bind values (the C<[1, 2, 3]> arrayref in the above example) wrapped in