From 0e947b1103ca3295c26fbbdd48e3ce406d2bf44a Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Sat, 27 Sep 2025 18:09:12 +0200 Subject: [PATCH] Implement DATABASE() function --- tests/WP_SQLite_Driver_Tests.php | 13 +++++++++++++ wp-includes/sqlite-ast/class-wp-sqlite-driver.php | 2 ++ 2 files changed, 15 insertions(+) diff --git a/tests/WP_SQLite_Driver_Tests.php b/tests/WP_SQLite_Driver_Tests.php index 68ba9242..2a0f78c0 100644 --- a/tests/WP_SQLite_Driver_Tests.php +++ b/tests/WP_SQLite_Driver_Tests.php @@ -3705,6 +3705,19 @@ public function testCurrentTimestamp() { $this->assertQuery( 'DELETE FROM _dates WHERE option_value = CURRENT_TIMESTAMP()' ); } + public function testDatabaseFunction(): void { + $this->assertQuery( "SELECT DATABASE(), CONCAT('test-', (SELECT DATABASE()))" ); + $this->assertEquals( + array( + (object) array( + 'DATABASE()' => 'wp', + "CONCAT('test-', (SELECT DATABASE()))" => 'test-wp', + ), + ), + $this->engine->get_query_results() + ); + } + public function testGroupByHaving() { $this->assertQuery( 'CREATE TABLE _tmp_table ( diff --git a/wp-includes/sqlite-ast/class-wp-sqlite-driver.php b/wp-includes/sqlite-ast/class-wp-sqlite-driver.php index 2945b7e5..fada8c35 100644 --- a/wp-includes/sqlite-ast/class-wp-sqlite-driver.php +++ b/wp-includes/sqlite-ast/class-wp-sqlite-driver.php @@ -3354,6 +3354,8 @@ private function translate_runtime_function_call( WP_Parser_Node $node ): string } switch ( $child->id ) { + case WP_MySQL_Lexer::DATABASE_SYMBOL: + return $this->connection->quote( $this->db_name ); case WP_MySQL_Lexer::CURRENT_TIMESTAMP_SYMBOL: case WP_MySQL_Lexer::NOW_SYMBOL: /*