So queries with joins can be estimated.
Change-Id: I9163cf9005d2c2001a88bb102eb4142f0322b0df
}
public function estimateRowCount(
- $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = []
+ $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = [], $join_conds = []
) {
return $this->__call( __FUNCTION__, func_get_args() );
}
}
public function estimateRowCount(
- $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = []
+ $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = [], $join_conds = []
) {
$rows = 0;
- $res = $this->select( $table, [ 'rowcount' => 'COUNT(*)' ], $conds, $fname, $options );
+ $res = $this->select(
+ $table, [ 'rowcount' => 'COUNT(*)' ], $conds, $fname, $options, $join_conds
+ );
if ( $res ) {
$row = $this->fetchRow( $res );
* @param string $conds
* @param string $fname
* @param array $options
+ * @param array $join_conds
* @return int
*/
public function estimateRowCount( $table, $vars = '*', $conds = '',
- $fname = __METHOD__, $options = []
+ $fname = __METHOD__, $options = [], $join_conds = []
) {
// http://msdn2.microsoft.com/en-us/library/aa259203.aspx
$options['EXPLAIN'] = true;
$options['FOR COUNT'] = true;
- $res = $this->select( $table, $vars, $conds, $fname, $options );
+ $res = $this->select( $table, $vars, $conds, $fname, $options, $join_conds );
$rows = -1;
if ( $res ) {
* @param string|array $conds
* @param string $fname
* @param string|array $options
+ * @param array $join_conds
* @return bool|int
*/
public function estimateRowCount( $table, $vars = '*', $conds = '',
- $fname = __METHOD__, $options = []
+ $fname = __METHOD__, $options = [], $join_conds = []
) {
$options['EXPLAIN'] = true;
- $res = $this->select( $table, $vars, $conds, $fname, $options );
+ $res = $this->select( $table, $vars, $conds, $fname, $options, $join_conds );
if ( $res === false ) {
return false;
}
* @param string $conds
* @param string $fname
* @param array $options
+ * @param array $join_conds
* @return int
*/
public function estimateRowCount( $table, $vars = '*', $conds = '',
- $fname = __METHOD__, $options = []
+ $fname = __METHOD__, $options = [], $join_conds = []
) {
$options['EXPLAIN'] = true;
- $res = $this->select( $table, $vars, $conds, $fname, $options );
+ $res = $this->select( $table, $vars, $conds, $fname, $options, $join_conds );
$rows = -1;
if ( $res ) {
$row = $this->fetchRow( $res );
* @param array|string $conds Filters on the table
* @param string $fname Function name for profiling
* @param array $options Options for select
+ * @param array|string $join_conds Join conditions
* @return int Row count
* @throws DBError
*/
public function estimateRowCount(
- $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = []
+ $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = [], $join_conds = []
);
/**