Fix ->insert($table, \@values) with >26 values (RT#112684)
[dbsrgits/SQL-Abstract.git] / t / 01generate.t
index c3f83b1..020dfa5 100644 (file)
@@ -128,10 +128,10 @@ my @tests = (
       },
       {
               func   => 'insert',
-              args   => ['test', [qw/1 2 3 4 5/]],
-              stmt   => 'INSERT INTO test VALUES (?, ?, ?, ?, ?)',
-              stmt_q => 'INSERT INTO `test` VALUES (?, ?, ?, ?, ?)',
-              bind   => [qw/1 2 3 4 5/],
+              args   => ['test', [1..30]],
+              stmt   => 'INSERT INTO test VALUES ('.join(', ', ('?')x30).')',
+              stmt_q => 'INSERT INTO `test` VALUES ('.join(', ', ('?')x30).')',
+              bind   => [1..30],
       },
       {
               func   => 'insert',
@@ -574,6 +574,27 @@ my @tests = (
               esc  => '\\',
               bind => [],
       },
+      {
+              func => 'update',
+              args => ['mytable', { foo => 42 }, { baz => 32 }, { returning => 'id' }],
+              stmt => 'UPDATE mytable SET foo = ? WHERE baz = ? RETURNING id',
+              stmt_q => 'UPDATE `mytable` SET `foo` = ? WHERE `baz` = ? RETURNING `id`',
+              bind => [42, 32],
+      },
+      {
+              func => 'update',
+              args => ['mytable', { foo => 42 }, { baz => 32 }, { returning => \'*' }],
+              stmt => 'UPDATE mytable SET foo = ? WHERE baz = ? RETURNING *',
+              stmt_q => 'UPDATE `mytable` SET `foo` = ? WHERE `baz` = ? RETURNING *',
+              bind => [42, 32],
+      },
+      {
+              func => 'update',
+              args => ['mytable', { foo => 42 }, { baz => 32 }, { returning => ['id','created_at'] }],
+              stmt => 'UPDATE mytable SET foo = ? WHERE baz = ? RETURNING id, created_at',
+              stmt_q => 'UPDATE `mytable` SET `foo` = ? WHERE `baz` = ? RETURNING `id`, `created_at`',
+              bind => [42, 32],
+      },
 );
 
 # check is( not) => undef