From e45cd32de7617be07557d7d8ccf4a8715717b0df Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 23 Jun 2014 21:39:34 +0200 Subject: [PATCH 1/3] [ticket/12763] Do not regenerate the *_schema.sql files PHPBB3-12763 --- phpBB/develop/create_schema_files.php | 183 -------------------------- 1 file changed, 183 deletions(-) diff --git a/phpBB/develop/create_schema_files.php b/phpBB/develop/create_schema_files.php index f9d2e2e0de..b1e981795f 100644 --- a/phpBB/develop/create_schema_files.php +++ b/phpBB/develop/create_schema_files.php @@ -57,187 +57,4 @@ $fp = fopen($schema_path . 'schema.json', 'wb'); fwrite($fp, json_encode($schema_data, JSON_PRETTY_PRINT)); fclose($fp); -foreach ($supported_dbms as $dbms) -{ - $fp = fopen($schema_path . $dbms . '_schema.sql', 'wb'); - - // Write Header - switch ($dbms) - { - case 'mysql_40': - case 'mysql_41': - case 'sqlite': - case 'sqlite3': - fwrite($fp, "# DO NOT EDIT THIS FILE, IT IS GENERATED\n"); - fwrite($fp, "#\n"); - fwrite($fp, "# To change the contents of this file, edit\n"); - fwrite($fp, "# phpBB/develop/create_schema_files.php and\n"); - fwrite($fp, "# run it.\n"); - break; - - case 'mssql': - case 'oracle': - case 'postgres': - fwrite($fp, "/*\n"); - fwrite($fp, " * DO NOT EDIT THIS FILE, IT IS GENERATED\n"); - fwrite($fp, " *\n"); - fwrite($fp, " * To change the contents of this file, edit\n"); - fwrite($fp, " * phpBB/develop/create_schema_files.php and\n"); - fwrite($fp, " * run it.\n"); - fwrite($fp, " */\n\n"); - break; - } - - $line = ''; - switch ($dbms) - { - case 'oracle': - $line .= custom_data('oracle') . "\n"; - break; - - case 'postgres': - $line .= "BEGIN;\n\n"; - $line .= custom_data('postgres') . "\n"; - $line .= "COMMIT;\n\n"; - break; - } - - fwrite($fp, $line); - fclose($fp); -} - -/** -* Data put into the header for various dbms -*/ -function custom_data($dbms) -{ - switch ($dbms) - { - case 'oracle': - return << LOWER($2)' LANGUAGE SQL STRICT; -CREATE FUNCTION _varchar_ci_greater_equals(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) >= LOWER($2)' LANGUAGE SQL STRICT; - -/* - Operators -*/ -CREATE OPERATOR <( - PROCEDURE = _varchar_ci_less_than, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = >, - NEGATOR = >=, - RESTRICT = scalarltsel, - JOIN = scalarltjoinsel); - -CREATE OPERATOR <=( - PROCEDURE = _varchar_ci_less_equal, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = >=, - NEGATOR = >, - RESTRICT = scalarltsel, - JOIN = scalarltjoinsel); - -CREATE OPERATOR >( - PROCEDURE = _varchar_ci_greater_than, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = <, - NEGATOR = <=, - RESTRICT = scalargtsel, - JOIN = scalargtjoinsel); - -CREATE OPERATOR >=( - PROCEDURE = _varchar_ci_greater_equals, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = <=, - NEGATOR = <, - RESTRICT = scalargtsel, - JOIN = scalargtjoinsel); - -CREATE OPERATOR <>( - PROCEDURE = _varchar_ci_not_equal, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = <>, - NEGATOR = =, - RESTRICT = neqsel, - JOIN = neqjoinsel); - -CREATE OPERATOR =( - PROCEDURE = _varchar_ci_equal, - LEFTARG = varchar_ci, - RIGHTARG = varchar_ci, - COMMUTATOR = =, - NEGATOR = <>, - RESTRICT = eqsel, - JOIN = eqjoinsel, - HASHES, - MERGES, - SORT1= <); - -EOF; - break; - } - - return ''; -} - echo 'done'; From 3fd7fd435db3a580fed329bea74ab30cbb4d14a2 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 23 Jun 2014 21:41:04 +0200 Subject: [PATCH 2/3] [ticket/12763] Remove empty schema files PHPBB3-12763 --- phpBB/install/install_install.php | 24 +++++++++++-------- phpBB/install/schemas/firebird_schema.sql | 5 ---- phpBB/install/schemas/mssql_schema.sql | 8 ------- phpBB/install/schemas/mysql_40_schema.sql | 5 ---- phpBB/install/schemas/mysql_41_schema.sql | 5 ---- phpBB/install/schemas/sqlite_schema.sql | 5 ---- ...phpbb_database_test_connection_manager.php | 17 +++++++------ 7 files changed, 24 insertions(+), 45 deletions(-) delete mode 100644 phpBB/install/schemas/firebird_schema.sql delete mode 100644 phpBB/install/schemas/mssql_schema.sql delete mode 100644 phpBB/install/schemas/mysql_40_schema.sql delete mode 100644 phpBB/install/schemas/mysql_41_schema.sql delete mode 100644 phpBB/install/schemas/sqlite_schema.sql diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php index 576cbba3ca..5f8c0c277c 100644 --- a/phpBB/install/install_install.php +++ b/phpBB/install/install_install.php @@ -1153,21 +1153,25 @@ class install_install extends module // How should we treat this schema? $delimiter = $available_dbms[$data['dbms']]['DELIM']; - $sql_query = @file_get_contents($dbms_schema); - $sql_query = preg_replace('#phpbb_#i', $data['table_prefix'], $sql_query); - $sql_query = phpbb_remove_comments($sql_query); - $sql_query = split_sql_file($sql_query, $delimiter); - foreach ($sql_query as $sql) + if (file_exists($dbms_schema)) { - //$sql = trim(str_replace('|', ';', $sql)); - if (!$db->sql_query($sql)) + $sql_query = @file_get_contents($dbms_schema); + $sql_query = preg_replace('#phpbb_#i', $data['table_prefix'], $sql_query); + $sql_query = phpbb_remove_comments($sql_query); + $sql_query = split_sql_file($sql_query, $delimiter); + + foreach ($sql_query as $sql) { - $error = $db->sql_error(); - $this->p_master->db_error($error['message'], $sql, __LINE__, __FILE__); + //$sql = trim(str_replace('|', ';', $sql)); + if (!$db->sql_query($sql)) + { + $error = $db->sql_error(); + $this->p_master->db_error($error['message'], $sql, __LINE__, __FILE__); + } } + unset($sql_query); } - unset($sql_query); // Ok we have the db info go ahead and work on building the table $db_table_schema = @file_get_contents('schemas/schema.json'); diff --git a/phpBB/install/schemas/firebird_schema.sql b/phpBB/install/schemas/firebird_schema.sql deleted file mode 100644 index 28649dc54c..0000000000 --- a/phpBB/install/schemas/firebird_schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -# DO NOT EDIT THIS FILE, IT IS GENERATED -# -# To change the contents of this file, edit -# phpBB/develop/create_schema_files.php and -# run it. diff --git a/phpBB/install/schemas/mssql_schema.sql b/phpBB/install/schemas/mssql_schema.sql deleted file mode 100644 index f88513cf0e..0000000000 --- a/phpBB/install/schemas/mssql_schema.sql +++ /dev/null @@ -1,8 +0,0 @@ -/* - * DO NOT EDIT THIS FILE, IT IS GENERATED - * - * To change the contents of this file, edit - * phpBB/develop/create_schema_files.php and - * run it. - */ - diff --git a/phpBB/install/schemas/mysql_40_schema.sql b/phpBB/install/schemas/mysql_40_schema.sql deleted file mode 100644 index 28649dc54c..0000000000 --- a/phpBB/install/schemas/mysql_40_schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -# DO NOT EDIT THIS FILE, IT IS GENERATED -# -# To change the contents of this file, edit -# phpBB/develop/create_schema_files.php and -# run it. diff --git a/phpBB/install/schemas/mysql_41_schema.sql b/phpBB/install/schemas/mysql_41_schema.sql deleted file mode 100644 index 28649dc54c..0000000000 --- a/phpBB/install/schemas/mysql_41_schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -# DO NOT EDIT THIS FILE, IT IS GENERATED -# -# To change the contents of this file, edit -# phpBB/develop/create_schema_files.php and -# run it. diff --git a/phpBB/install/schemas/sqlite_schema.sql b/phpBB/install/schemas/sqlite_schema.sql deleted file mode 100644 index 28649dc54c..0000000000 --- a/phpBB/install/schemas/sqlite_schema.sql +++ /dev/null @@ -1,5 +0,0 @@ -# DO NOT EDIT THIS FILE, IT IS GENERATED -# -# To change the contents of this file, edit -# phpBB/develop/create_schema_files.php and -# run it. diff --git a/tests/test_framework/phpbb_database_test_connection_manager.php b/tests/test_framework/phpbb_database_test_connection_manager.php index 0d0f08f1f5..92e2080dba 100644 --- a/tests/test_framework/phpbb_database_test_connection_manager.php +++ b/tests/test_framework/phpbb_database_test_connection_manager.php @@ -342,14 +342,17 @@ class phpbb_database_test_connection_manager $filename = $directory . $schema . '_schema.sql'; - $queries = file_get_contents($filename); - $sql = phpbb_remove_comments($queries); - - $sql = split_sql_file($sql, $this->dbms['DELIM']); - - foreach ($sql as $query) + if (file_exists($filename)) { - $this->pdo->exec($query); + $queries = file_get_contents($filename); + $sql = phpbb_remove_comments($queries); + + $sql = split_sql_file($sql, $this->dbms['DELIM']); + + foreach ($sql as $query) + { + $this->pdo->exec($query); + } } // Ok we have the db info go ahead and work on building the table From 307c9bc15f2ff33222375ba53b0e9979aef35f22 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 23 Jun 2014 21:41:59 +0200 Subject: [PATCH 3/3] [ticket/12763] Remove invalid comment from oracle and postgres *_schema.sql PHPBB3-12763 --- phpBB/install/schemas/oracle_schema.sql | 8 -------- phpBB/install/schemas/postgres_schema.sql | 7 ------- 2 files changed, 15 deletions(-) diff --git a/phpBB/install/schemas/oracle_schema.sql b/phpBB/install/schemas/oracle_schema.sql index 61f5d5f961..2473d31aab 100644 --- a/phpBB/install/schemas/oracle_schema.sql +++ b/phpBB/install/schemas/oracle_schema.sql @@ -1,11 +1,3 @@ -/* - * DO NOT EDIT THIS FILE, IT IS GENERATED - * - * To change the contents of this file, edit - * phpBB/develop/create_schema_files.php and - * run it. - */ - /* This first section is optional, however its probably the best method of running phpBB on Oracle. If you already have a tablespace and user created diff --git a/phpBB/install/schemas/postgres_schema.sql b/phpBB/install/schemas/postgres_schema.sql index 3fc8589844..65caba8d1c 100644 --- a/phpBB/install/schemas/postgres_schema.sql +++ b/phpBB/install/schemas/postgres_schema.sql @@ -1,10 +1,3 @@ -/* - * DO NOT EDIT THIS FILE, IT IS GENERATED - * - * To change the contents of this file, edit - * phpBB/develop/create_schema_files.php and - * run it. - */ BEGIN;