1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Builder;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
class LoadStatementTest extends TestCase
{
public function testBuilder(): void
{
/* Assertion 1 */
$query = 'LOAD DATA CONCURRENT INFILE '
. '\'employee1.txt\' INTO TABLE employee';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA CONCURRENT INFILE '
. '\'employee1.txt\' INTO TABLE employee',
$stmt->build()
);
/* Assertion 2 */
$query = 'LOAD DATA INFILE \'/tmp/test.txt\' '
. 'INTO TABLE test FIELDS TERMINATED BY '
. '\',\' IGNORE 1 LINES';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA INFILE \'/tmp/test.txt\' '
. 'INTO TABLE test FIELDS TERMINATED BY '
. '\',\' IGNORE 1 LINES',
$stmt->build()
);
/* Assertion 3 */
$query = 'LOAD DATA INFILE \'employee3.txt\' '
. 'INTO TABLE employee FIELDS TERMINATED BY '
. '\',\' ENCLOSED BY \'"\'';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA INFILE \'employee3.txt\' '
. 'INTO TABLE employee FIELDS TERMINATED BY '
. '\',\' ENCLOSED BY \'"\'',
$stmt->build()
);
/* Assertion 4 */
$query = 'LOAD DATA INFILE \'/tmp/test.txt\' IGNORE '
. 'INTO TABLE test '
. 'CHARACTER SET \'utf8\' '
. 'COLUMNS TERMINATED BY \',\' '
. 'LINES TERMINATED BY \';\' '
. 'IGNORE 1 LINES (col1, col2) SET @a = 1';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA INFILE \'/tmp/test.txt\' IGNORE '
. 'INTO TABLE test '
. 'CHARACTER SET \'utf8\' '
. 'COLUMNS TERMINATED BY \',\' '
. 'LINES TERMINATED BY \';\' '
. 'IGNORE 1 LINES (col1, col2) SET @a = 1',
$stmt->build()
);
/* Assertion 5 */
$query = 'LOAD DATA INFILE \'/tmp/test.txt\' REPLACE '
. 'INTO TABLE test COLUMNS TERMINATED BY \',\' IGNORE 1 ROWS';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA INFILE \'/tmp/test.txt\' REPLACE '
. 'INTO TABLE test COLUMNS TERMINATED BY \',\' IGNORE 1 ROWS',
$stmt->build()
);
/* Assertion 6 */
$query = 'LOAD DATA INFILE \'/tmp/test.txt\' IGNORE '
. 'INTO TABLE test PARTITION (p0, p1, p2) CHARACTER SET \'utf8\' '
. 'COLUMNS TERMINATED BY \',\' LINES TERMINATED BY \';\' '
. 'IGNORE 1 LINES (col1, col2) SET @a = 1';
$parser = new Parser($query);
$stmt = $parser->statements[0];
$this->assertEquals(
'LOAD DATA INFILE \'/tmp/test.txt\' IGNORE '
. 'INTO TABLE test PARTITION (p0, p1, p2) CHARACTER SET \'utf8\' '
. 'COLUMNS TERMINATED BY \',\' LINES TERMINATED BY \';\' '
. 'IGNORE 1 LINES (col1, col2) SET @a = 1',
$stmt->build()
);
}
}
|