use strict; use warnings; use Test::More; use DBI; use vars qw($test_dsn $test_user $test_password); use lib 't', '.'; require 'lib.pl'; my $dbh = DbiTestConnect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0, AutoCommit => 0, mariadb_server_prepare => 1 }); plan tests => 32; ok $dbh->do('CREATE TEMPORARY TABLE t(id INT)'); ok $dbh->do('CREATE TEMPORARY TABLE t2(id INT)'); ok $dbh->do('INSERT INTO t(id) VALUES(10)'); ok $dbh->do('INSERT INTO t(id) VALUES(20)'); ok my $sth = $dbh->prepare('SELECT id FROM t ORDER BY id LIMIT ?'); ok $sth->execute(1); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $dbh->do('INSERT INTO t2(id) SELECT id FROM t ORDER BY id LIMIT ?', undef, 1); is_deeply $dbh->selectall_arrayref('SELECT id FROM t2'), [ [10] ]; ok $dbh->do('TRUNCATE TABLE t2'); ok $sth = $dbh->prepare('SELECT id FROM t ORDER BY id LIMIT ?,?'); ok $sth->execute(0, 1); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $dbh->do('INSERT INTO t2(id) SELECT id FROM t ORDER BY id LIMIT ?,?', undef, 0, 1); is_deeply $dbh->selectall_arrayref('SELECT id FROM t2'), [ [10] ]; ok $dbh->do('TRUNCATE TABLE t2'); ok $sth = $dbh->prepare('SELECT id FROM t ORDER BY id LIMIT ? OFFSET ?'); ok $sth->execute(1, 0); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $dbh->do('INSERT INTO t2(id) SELECT id FROM t ORDER BY id LIMIT ? OFFSET ?', undef, 1, 0); is_deeply $dbh->selectall_arrayref('SELECT id FROM t2'), [ [10] ]; ok $dbh->do('TRUNCATE TABLE t2'); ok $sth = $dbh->prepare('select id from t order by id LiMIt ?,?'); ok $sth->execute(0, 1); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $sth = $dbh->prepare('select id from t order by id LiMIt 0 ,?'); ok $sth->execute(1); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $sth = $dbh->prepare('select id from t order by id lImIt 1 OFFSET ?'); ok $sth->execute(0); is_deeply $sth->fetchall_arrayref(), [ [10] ]; ok $dbh->disconnect();