Server IP : 51.89.169.208 / Your IP : 3.12.123.254 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/yellowleaf/www/phpMyAdmin/vendor/phpmyadmin/sql-parser/src/Components/ |
Upload File : |
<?php declare(strict_types=1); namespace PhpMyAdmin\SqlParser\Components; use PhpMyAdmin\SqlParser\Component; use PhpMyAdmin\SqlParser\Parser; use RuntimeException; /** * `WITH` keyword builder. * * @final */ final class WithKeyword extends Component { /** @var string */ public $name; /** @var ArrayObj[] */ public $columns = []; /** @var Parser|null */ public $statement; public function __construct(string $name) { $this->name = $name; } /** * @param WithKeyword $component * @param array<string, mixed> $options * * @return string */ public static function build($component, array $options = []) { if (! $component instanceof WithKeyword) { throw new RuntimeException('Can not build a component that is not a WithKeyword'); } if (! isset($component->statement)) { throw new RuntimeException('No statement inside WITH'); } $str = $component->name; if ($component->columns) { $str .= ArrayObj::build($component->columns); } $str .= ' AS ('; foreach ($component->statement->statements as $statement) { $str .= $statement->build(); } $str .= ')'; return $str; } }