diff --git a/db-backends.php b/db-backends.php index ace5b2a2087d635e93693ce373bc01d5ecc0340b..b6df992de682f926f3589b289e8b182da1404ce0 100644 --- a/db-backends.php +++ b/db-backends.php @@ -10,7 +10,7 @@ $r2db_hash_map = new Flexihash(null, R2DB_FLEXIHASH_REPLICAS); * * Implements a consistent hashing scheme using Flexihash. */ -function noblogs_db_callback($query, $wpdb) { +function noblogs_hyperdb_callback($query, $wpdb) { global $r2db_hash_map; if (preg_match("/^{$wpdb->base_prefix}(\d+)_/", $wpdb->table, $matches)) { $blog_id = $matches[1]; @@ -18,7 +18,22 @@ function noblogs_db_callback($query, $wpdb) { } } -$wpdb->add_callback('noblogs_db_callback'); +/* Same as above but with a slightly different function + signature for https://github.com/stuttter/ludicrousdb */ +function noblogs_ludicrousdb_callback($table, $wpdb) { + global $r2db_hash_map; + if (preg_match("/^{$wpdb->base_prefix}(\d+)_/", $table, $matches)) { + $blog_id = $matches[1]; + return $r2db_hash_map->lookup($blog_id); + } + return "global"; +} + +if (defined('R2DB_USE_LUDICROUSDB')) { + $wpdb->add_callback('noblogs_ludicrousdb_callback'); +} else { + $wpdb->add_callback('noblogs_hyperdb_callback'); +} /* Load backend shards and add them to FlexiHash / $wpdb. */ function noblogs_load_backends() {