summaryrefslogtreecommitdiff
path: root/includes/database
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database')
-rw-r--r--includes/database/database.inc12
-rw-r--r--includes/database/schema.inc18
2 files changed, 30 insertions, 0 deletions
diff --git a/includes/database/database.inc b/includes/database/database.inc
index b44846aa2..91c5ea4cb 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -1674,6 +1674,18 @@ function db_column_exists($table, $column) {
return Database::getActiveConnection()->schema()->columnExists($table, $column);
}
+ /**
+ * Find all tables that are like the specified base table name.
+ *
+ * @param table_expression
+ * An SQL expression, for example simpletest% . BEWARE: this is not
+ * prefixed, the caller should take care of that.
+ * @return
+ * Array, both the keys and the values are the matching tables.
+ */
+function db_find_tables($table_expression) {
+ return Database::getActiveConnection()->schema()->findTables($table_expression);
+}
/**
* Given a Schema API field type, return the correct %-placeholder.
diff --git a/includes/database/schema.inc b/includes/database/schema.inc
index 03114d2cd..391db547c 100644
--- a/includes/database/schema.inc
+++ b/includes/database/schema.inc
@@ -405,6 +405,24 @@ abstract class DatabaseSchema {
return $ret;
}
+ /**
+ * Find all tables that are like the specified base table name.
+ *
+ * @param table_expression
+ * An SQL expression, for example "simpletest%" (without the quotes).
+ * BEWARE: this is not prefixed, the caller should take care of that.
+ * @return
+ * Array, both the keys and the values are the matching tables.
+ */
+ public function findTables($table_expression) {
+ global $db_prefix;
+ $info = Database::getConnectionInfo();
+ $result = db_query("SELECT table_name FROM information_schema.tables WHERE table_schema = :database AND table_name LIKE :table_name", array(
+ ':database' => $info['default']['database'],
+ ':table_name' => $table_expression,
+ ));
+ return $result->fetchAllKeyed(0, 0);
+ }
}
/**