Completed
Push — stable10 ( e55881...b0ab3b )
by Joas
36:13 queued 35:48
created
lib/public/AppFramework/Db/Entity.php 1 patch
Indentation   +205 added lines, -205 removed lines patch added patch discarded remove patch
@@ -31,224 +31,224 @@
 block discarded – undo
31 31
  */
32 32
 abstract class Entity {
33 33
 
34
-	public $id;
34
+    public $id;
35 35
 
36
-	private $_updatedFields = array();
37
-	private $_fieldTypes = array('id' => 'integer');
36
+    private $_updatedFields = array();
37
+    private $_fieldTypes = array('id' => 'integer');
38 38
 
39 39
 
40
-	/**
41
-	 * Simple alternative constructor for building entities from a request
42
-	 * @param array $params the array which was obtained via $this->params('key')
43
-	 * in the controller
44
-	 * @return Entity
45
-	 * @since 7.0.0
46
-	 */
47
-	public static function fromParams(array $params) {
48
-		$instance = new static();
40
+    /**
41
+     * Simple alternative constructor for building entities from a request
42
+     * @param array $params the array which was obtained via $this->params('key')
43
+     * in the controller
44
+     * @return Entity
45
+     * @since 7.0.0
46
+     */
47
+    public static function fromParams(array $params) {
48
+        $instance = new static();
49 49
 
50
-		foreach($params as $key => $value) {
51
-			$method = 'set' . ucfirst($key);
52
-			$instance->$method($value);
53
-		}
50
+        foreach($params as $key => $value) {
51
+            $method = 'set' . ucfirst($key);
52
+            $instance->$method($value);
53
+        }
54 54
 
55
-		return $instance;
56
-	}
55
+        return $instance;
56
+    }
57 57
 
58 58
 
59
-	/**
60
-	 * Maps the keys of the row array to the attributes
61
-	 * @param array $row the row to map onto the entity
62
-	 * @since 7.0.0
63
-	 */
64
-	public static function fromRow(array $row){
65
-		$instance = new static();
59
+    /**
60
+     * Maps the keys of the row array to the attributes
61
+     * @param array $row the row to map onto the entity
62
+     * @since 7.0.0
63
+     */
64
+    public static function fromRow(array $row){
65
+        $instance = new static();
66 66
 
67
-		foreach($row as $key => $value){
68
-			$prop = ucfirst($instance->columnToProperty($key));
69
-			$setter = 'set' . $prop;
70
-			$instance->$setter($value);
71
-		}
67
+        foreach($row as $key => $value){
68
+            $prop = ucfirst($instance->columnToProperty($key));
69
+            $setter = 'set' . $prop;
70
+            $instance->$setter($value);
71
+        }
72 72
 
73
-		$instance->resetUpdatedFields();
73
+        $instance->resetUpdatedFields();
74 74
 
75
-		return $instance;
76
-	}
75
+        return $instance;
76
+    }
77 77
 
78 78
 
79
-	/**
80
-	 * @return array with attribute and type
81
-	 * @since 7.0.0
82
-	 */
83
-	public function getFieldTypes() {
84
-		return $this->_fieldTypes;
85
-	}
79
+    /**
80
+     * @return array with attribute and type
81
+     * @since 7.0.0
82
+     */
83
+    public function getFieldTypes() {
84
+        return $this->_fieldTypes;
85
+    }
86 86
 
87 87
 	
88
-	/**
89
-	 * Marks the entity as clean needed for setting the id after the insertion
90
-	 * @since 7.0.0
91
-	 */
92
-	public function resetUpdatedFields(){
93
-		$this->_updatedFields = array();
94
-	}
95
-
96
-	/**
97
-	 * Generic setter for properties
98
-	 * @since 7.0.0
99
-	 */
100
-	protected function setter($name, $args) {
101
-		// setters should only work for existing attributes
102
-		if(property_exists($this, $name)){
103
-			if($this->$name === $args[0]) {
104
-				return;
105
-			}
106
-			$this->markFieldUpdated($name);
107
-
108
-			// if type definition exists, cast to correct type
109
-			if($args[0] !== null && array_key_exists($name, $this->_fieldTypes)) {
110
-				settype($args[0], $this->_fieldTypes[$name]);
111
-			}
112
-			$this->$name = $args[0];
113
-
114
-		} else {
115
-			throw new \BadFunctionCallException($name . 
116
-				' is not a valid attribute');
117
-		}
118
-	}
119
-
120
-	/**
121
-	 * Generic getter for properties
122
-	 * @since 7.0.0
123
-	 */
124
-	protected function getter($name) {
125
-		// getters should only work for existing attributes
126
-		if(property_exists($this, $name)){
127
-			return $this->$name;
128
-		} else {
129
-			throw new \BadFunctionCallException($name . 
130
-				' is not a valid attribute');
131
-		}
132
-	}
133
-
134
-
135
-	/**
136
-	 * Each time a setter is called, push the part after set
137
-	 * into an array: for instance setId will save Id in the 
138
-	 * updated fields array so it can be easily used to create the
139
-	 * getter method
140
-	 * @since 7.0.0
141
-	 */
142
-	public function __call($methodName, $args){
143
-		$attr = lcfirst( substr($methodName, 3) );
144
-
145
-		if(strpos($methodName, 'set') === 0){
146
-			$this->setter($attr, $args);
147
-		} elseif(strpos($methodName, 'get') === 0) {
148
-			return $this->getter($attr);
149
-		} else {
150
-			throw new \BadFunctionCallException($methodName . 
151
-					' does not exist');
152
-		}
153
-
154
-	}
155
-
156
-
157
-	/**
158
-	 * Mark am attribute as updated
159
-	 * @param string $attribute the name of the attribute
160
-	 * @since 7.0.0
161
-	 */
162
-	protected function markFieldUpdated($attribute){
163
-		$this->_updatedFields[$attribute] = true;
164
-	}
165
-
166
-
167
-	/**
168
-	 * Transform a database columnname to a property 
169
-	 * @param string $columnName the name of the column
170
-	 * @return string the property name
171
-	 * @since 7.0.0
172
-	 */
173
-	public function columnToProperty($columnName){
174
-		$parts = explode('_', $columnName);
175
-		$property = null;
176
-
177
-		foreach($parts as $part){
178
-			if($property === null){
179
-				$property = $part;
180
-			} else {
181
-				$property .= ucfirst($part);
182
-			}
183
-		}
184
-
185
-		return $property;
186
-	}
187
-
188
-
189
-	/**
190
-	 * Transform a property to a database column name
191
-	 * @param string $property the name of the property
192
-	 * @return string the column name
193
-	 * @since 7.0.0
194
-	 */
195
-	public function propertyToColumn($property){
196
-		$parts = preg_split('/(?=[A-Z])/', $property);
197
-		$column = null;
198
-
199
-		foreach($parts as $part){
200
-			if($column === null){
201
-				$column = $part;
202
-			} else {
203
-				$column .= '_' . lcfirst($part);
204
-			}
205
-		}
206
-
207
-		return $column;
208
-	}
209
-
210
-
211
-	/**
212
-	 * @return array array of updated fields for update query
213
-	 * @since 7.0.0
214
-	 */
215
-	public function getUpdatedFields(){
216
-		return $this->_updatedFields;
217
-	}
218
-
219
-
220
-	/**
221
-	 * Adds type information for a field so that its automatically casted to
222
-	 * that value once its being returned from the database
223
-	 * @param string $fieldName the name of the attribute
224
-	 * @param string $type the type which will be used to call settype()
225
-	 * @since 7.0.0
226
-	 */
227
-	protected function addType($fieldName, $type){
228
-		$this->_fieldTypes[$fieldName] = $type;
229
-	}
230
-
231
-
232
-	/**
233
-	 * Slugify the value of a given attribute
234
-	 * Warning: This doesn't result in a unique value
235
-	 * @param string $attributeName the name of the attribute, which value should be slugified
236
-	 * @return string slugified value
237
-	 * @since 7.0.0
238
-	 */
239
-	public function slugify($attributeName){
240
-		// toSlug should only work for existing attributes
241
-		if(property_exists($this, $attributeName)){
242
-			$value = $this->$attributeName;
243
-			// replace everything except alphanumeric with a single '-'
244
-			$value = preg_replace('/[^A-Za-z0-9]+/', '-', $value);
245
-			$value = strtolower($value);
246
-			// trim '-'
247
-			return trim($value, '-');
248
-		} else {
249
-			throw new \BadFunctionCallException($attributeName .
250
-				' is not a valid attribute');
251
-		}
252
-	}
88
+    /**
89
+     * Marks the entity as clean needed for setting the id after the insertion
90
+     * @since 7.0.0
91
+     */
92
+    public function resetUpdatedFields(){
93
+        $this->_updatedFields = array();
94
+    }
95
+
96
+    /**
97
+     * Generic setter for properties
98
+     * @since 7.0.0
99
+     */
100
+    protected function setter($name, $args) {
101
+        // setters should only work for existing attributes
102
+        if(property_exists($this, $name)){
103
+            if($this->$name === $args[0]) {
104
+                return;
105
+            }
106
+            $this->markFieldUpdated($name);
107
+
108
+            // if type definition exists, cast to correct type
109
+            if($args[0] !== null && array_key_exists($name, $this->_fieldTypes)) {
110
+                settype($args[0], $this->_fieldTypes[$name]);
111
+            }
112
+            $this->$name = $args[0];
113
+
114
+        } else {
115
+            throw new \BadFunctionCallException($name . 
116
+                ' is not a valid attribute');
117
+        }
118
+    }
119
+
120
+    /**
121
+     * Generic getter for properties
122
+     * @since 7.0.0
123
+     */
124
+    protected function getter($name) {
125
+        // getters should only work for existing attributes
126
+        if(property_exists($this, $name)){
127
+            return $this->$name;
128
+        } else {
129
+            throw new \BadFunctionCallException($name . 
130
+                ' is not a valid attribute');
131
+        }
132
+    }
133
+
134
+
135
+    /**
136
+     * Each time a setter is called, push the part after set
137
+     * into an array: for instance setId will save Id in the 
138
+     * updated fields array so it can be easily used to create the
139
+     * getter method
140
+     * @since 7.0.0
141
+     */
142
+    public function __call($methodName, $args){
143
+        $attr = lcfirst( substr($methodName, 3) );
144
+
145
+        if(strpos($methodName, 'set') === 0){
146
+            $this->setter($attr, $args);
147
+        } elseif(strpos($methodName, 'get') === 0) {
148
+            return $this->getter($attr);
149
+        } else {
150
+            throw new \BadFunctionCallException($methodName . 
151
+                    ' does not exist');
152
+        }
153
+
154
+    }
155
+
156
+
157
+    /**
158
+     * Mark am attribute as updated
159
+     * @param string $attribute the name of the attribute
160
+     * @since 7.0.0
161
+     */
162
+    protected function markFieldUpdated($attribute){
163
+        $this->_updatedFields[$attribute] = true;
164
+    }
165
+
166
+
167
+    /**
168
+     * Transform a database columnname to a property 
169
+     * @param string $columnName the name of the column
170
+     * @return string the property name
171
+     * @since 7.0.0
172
+     */
173
+    public function columnToProperty($columnName){
174
+        $parts = explode('_', $columnName);
175
+        $property = null;
176
+
177
+        foreach($parts as $part){
178
+            if($property === null){
179
+                $property = $part;
180
+            } else {
181
+                $property .= ucfirst($part);
182
+            }
183
+        }
184
+
185
+        return $property;
186
+    }
187
+
188
+
189
+    /**
190
+     * Transform a property to a database column name
191
+     * @param string $property the name of the property
192
+     * @return string the column name
193
+     * @since 7.0.0
194
+     */
195
+    public function propertyToColumn($property){
196
+        $parts = preg_split('/(?=[A-Z])/', $property);
197
+        $column = null;
198
+
199
+        foreach($parts as $part){
200
+            if($column === null){
201
+                $column = $part;
202
+            } else {
203
+                $column .= '_' . lcfirst($part);
204
+            }
205
+        }
206
+
207
+        return $column;
208
+    }
209
+
210
+
211
+    /**
212
+     * @return array array of updated fields for update query
213
+     * @since 7.0.0
214
+     */
215
+    public function getUpdatedFields(){
216
+        return $this->_updatedFields;
217
+    }
218
+
219
+
220
+    /**
221
+     * Adds type information for a field so that its automatically casted to
222
+     * that value once its being returned from the database
223
+     * @param string $fieldName the name of the attribute
224
+     * @param string $type the type which will be used to call settype()
225
+     * @since 7.0.0
226
+     */
227
+    protected function addType($fieldName, $type){
228
+        $this->_fieldTypes[$fieldName] = $type;
229
+    }
230
+
231
+
232
+    /**
233
+     * Slugify the value of a given attribute
234
+     * Warning: This doesn't result in a unique value
235
+     * @param string $attributeName the name of the attribute, which value should be slugified
236
+     * @return string slugified value
237
+     * @since 7.0.0
238
+     */
239
+    public function slugify($attributeName){
240
+        // toSlug should only work for existing attributes
241
+        if(property_exists($this, $attributeName)){
242
+            $value = $this->$attributeName;
243
+            // replace everything except alphanumeric with a single '-'
244
+            $value = preg_replace('/[^A-Za-z0-9]+/', '-', $value);
245
+            $value = strtolower($value);
246
+            // trim '-'
247
+            return trim($value, '-');
248
+        } else {
249
+            throw new \BadFunctionCallException($attributeName .
250
+                ' is not a valid attribute');
251
+        }
252
+    }
253 253
 
254 254
 }
Please login to merge, or discard this patch.
lib/public/Mail/IMailer.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -46,33 +46,33 @@
 block discarded – undo
46 46
  * @since 8.1.0
47 47
  */
48 48
 interface IMailer {
49
-	/**
50
-	 * Creates a new message object that can be passed to send()
51
-	 *
52
-	 * @return Message
53
-	 * @since 8.1.0
54
-	 */
55
-	public function createMessage();
49
+    /**
50
+     * Creates a new message object that can be passed to send()
51
+     *
52
+     * @return Message
53
+     * @since 8.1.0
54
+     */
55
+    public function createMessage();
56 56
 
57
-	/**
58
-	 * Send the specified message. Also sets the from address to the value defined in config.php
59
-	 * if no-one has been passed.
60
-	 *
61
-	 * @param Message $message Message to send
62
-	 * @return string[] Array with failed recipients. Be aware that this depends on the used mail backend and
63
-	 * therefore should be considered
64
-	 * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address
65
-	 * has been supplied.)
66
-	 * @since 8.1.0
67
-	 */
68
-	public function send(Message $message);
57
+    /**
58
+     * Send the specified message. Also sets the from address to the value defined in config.php
59
+     * if no-one has been passed.
60
+     *
61
+     * @param Message $message Message to send
62
+     * @return string[] Array with failed recipients. Be aware that this depends on the used mail backend and
63
+     * therefore should be considered
64
+     * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address
65
+     * has been supplied.)
66
+     * @since 8.1.0
67
+     */
68
+    public function send(Message $message);
69 69
 
70
-	/**
71
-	 * Checks if an e-mail address is valid
72
-	 *
73
-	 * @param string $email Email address to be validated
74
-	 * @return bool True if the mail address is valid, false otherwise
75
-	 * @since 8.1.0
76
-	 */
77
-	public function validateMailAddress($email);
70
+    /**
71
+     * Checks if an e-mail address is valid
72
+     *
73
+     * @param string $email Email address to be validated
74
+     * @return bool True if the mail address is valid, false otherwise
75
+     * @since 8.1.0
76
+     */
77
+    public function validateMailAddress($email);
78 78
 }
Please login to merge, or discard this patch.
lib/public/Share/Exceptions/GenericShareException.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -31,18 +31,18 @@
 block discarded – undo
31 31
  */
32 32
 class GenericShareException extends HintException {
33 33
 
34
-	/**
35
-	 * @param string $message
36
-	 * @param string $hint
37
-	 * @param int $code
38
-	 * @param \Exception $previous
39
-	 * @since 9.0.0
40
-	 */
41
-	public function __construct($message = '', $hint = '', $code = 0, \Exception $previous = null) {
42
-		if (empty($message)) {
43
-			$message = 'Unspecified share exception';
44
-		}
45
-		parent::__construct($message, $hint, $code, $previous);
46
-	}
34
+    /**
35
+     * @param string $message
36
+     * @param string $hint
37
+     * @param int $code
38
+     * @param \Exception $previous
39
+     * @since 9.0.0
40
+     */
41
+    public function __construct($message = '', $hint = '', $code = 0, \Exception $previous = null) {
42
+        if (empty($message)) {
43
+            $message = 'Unspecified share exception';
44
+        }
45
+        parent::__construct($message, $hint, $code, $previous);
46
+    }
47 47
 
48 48
 }
Please login to merge, or discard this patch.
lib/public/SabrePluginEvent.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -33,65 +33,65 @@
 block discarded – undo
33 33
  */
34 34
 class SabrePluginEvent extends Event {
35 35
 
36
-	/** @var int */
37
-	protected $statusCode;
36
+    /** @var int */
37
+    protected $statusCode;
38 38
 
39
-	/** @var string */
40
-	protected $message;
39
+    /** @var string */
40
+    protected $message;
41 41
 
42
-	/** @var Server */
43
-	protected $server;
42
+    /** @var Server */
43
+    protected $server;
44 44
 
45
-	/**
46
-	 * @since 8.2.0
47
-	 */
48
-	public function __construct($server = null) {
49
-		$this->message = '';
50
-		$this->statusCode = Http::STATUS_OK;
51
-		$this->server = $server;
52
-	}
45
+    /**
46
+     * @since 8.2.0
47
+     */
48
+    public function __construct($server = null) {
49
+        $this->message = '';
50
+        $this->statusCode = Http::STATUS_OK;
51
+        $this->server = $server;
52
+    }
53 53
 
54
-	/**
55
-	 * @param int $statusCode
56
-	 * @return self
57
-	 * @since 8.2.0
58
-	 */
59
-	public function setStatusCode($statusCode) {
60
-		$this->statusCode = (int) $statusCode;
61
-		return $this;
62
-	}
54
+    /**
55
+     * @param int $statusCode
56
+     * @return self
57
+     * @since 8.2.0
58
+     */
59
+    public function setStatusCode($statusCode) {
60
+        $this->statusCode = (int) $statusCode;
61
+        return $this;
62
+    }
63 63
 
64
-	/**
65
-	 * @param string $message
66
-	 * @return self
67
-	 * @since 8.2.0
68
-	 */
69
-	public function setMessage($message) {
70
-		$this->message = (string) $message;
71
-		return $this;
72
-	}
64
+    /**
65
+     * @param string $message
66
+     * @return self
67
+     * @since 8.2.0
68
+     */
69
+    public function setMessage($message) {
70
+        $this->message = (string) $message;
71
+        return $this;
72
+    }
73 73
 
74
-	/**
75
-	 * @return int
76
-	 * @since 8.2.0
77
-	 */
78
-	public function getStatusCode() {
79
-		return $this->statusCode;
80
-	}
74
+    /**
75
+     * @return int
76
+     * @since 8.2.0
77
+     */
78
+    public function getStatusCode() {
79
+        return $this->statusCode;
80
+    }
81 81
 
82
-	/**
83
-	 * @return string
84
-	 * @since 8.2.0
85
-	 */
86
-	public function getMessage() {
87
-		return $this->message;
88
-	}
82
+    /**
83
+     * @return string
84
+     * @since 8.2.0
85
+     */
86
+    public function getMessage() {
87
+        return $this->message;
88
+    }
89 89
 
90
-	/**
91
-	 * @return null|Server
92
-	 * @since 9.0.0
93
-	 */
94
-	public function getServer() {
95
-		return $this->server;
96
-	}
90
+    /**
91
+     * @return null|Server
92
+     * @since 9.0.0
93
+     */
94
+    public function getServer() {
95
+        return $this->server;
96
+    }
97 97
 }
Please login to merge, or discard this patch.
lib/public/DB/QueryBuilder/IQueryFunction.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -26,9 +26,9 @@
 block discarded – undo
26 26
  * @since 8.2.0
27 27
  */
28 28
 interface IQueryFunction {
29
-	/**
30
-	 * @return string
31
-	 * @since 8.2.0
32
-	 */
33
-	public function __toString();
29
+    /**
30
+     * @return string
31
+     * @since 8.2.0
32
+     */
33
+    public function __toString();
34 34
 }
Please login to merge, or discard this patch.
lib/public/DB/QueryBuilder/ILiteral.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -26,9 +26,9 @@
 block discarded – undo
26 26
  * @since 8.2.0
27 27
  */
28 28
 interface ILiteral {
29
-	/**
30
-	 * @return string
31
-	 * @since 8.2.0
32
-	 */
33
-	public function __toString();
29
+    /**
30
+     * @return string
31
+     * @since 8.2.0
32
+     */
33
+    public function __toString();
34 34
 }
Please login to merge, or discard this patch.
lib/public/DB/QueryBuilder/IQueryBuilder.php 1 patch
Indentation   +848 added lines, -848 removed lines patch added patch discarded remove patch
@@ -31,852 +31,852 @@
 block discarded – undo
31 31
  */
32 32
 interface IQueryBuilder {
33 33
 
34
-	/**
35
-	 * @since 9.0.0
36
-	 */
37
-	const PARAM_NULL = \PDO::PARAM_NULL;
38
-	/**
39
-	 * @since 9.0.0
40
-	 */
41
-	const PARAM_BOOL = \PDO::PARAM_BOOL;
42
-	/**
43
-	 * @since 9.0.0
44
-	 */
45
-	const PARAM_INT = \PDO::PARAM_INT;
46
-	/**
47
-	 * @since 9.0.0
48
-	 */
49
-	const PARAM_STR = \PDO::PARAM_STR;
50
-	/**
51
-	 * @since 9.0.0
52
-	 */
53
-	const PARAM_LOB = \PDO::PARAM_LOB;
54
-	/**
55
-	 * @since 9.0.0
56
-	 */
57
-	const PARAM_DATE = 'datetime';
58
-
59
-	/**
60
-	 * @since 9.0.0
61
-	 */
62
-	const PARAM_INT_ARRAY = Connection::PARAM_INT_ARRAY;
63
-	/**
64
-	 * @since 9.0.0
65
-	 */
66
-	const PARAM_STR_ARRAY = Connection::PARAM_STR_ARRAY;
67
-
68
-
69
-	/**
70
-	 * Enable/disable automatic prefixing of table names with the oc_ prefix
71
-	 *
72
-	 * @param bool $enabled If set to true table names will be prefixed with the
73
-	 * owncloud database prefix automatically.
74
-	 * @since 8.2.0
75
-	 */
76
-	public function automaticTablePrefix($enabled);
77
-
78
-	/**
79
-	 * Gets an ExpressionBuilder used for object-oriented construction of query expressions.
80
-	 * This producer method is intended for convenient inline usage. Example:
81
-	 *
82
-	 * <code>
83
-	 *     $qb = $conn->getQueryBuilder()
84
-	 *         ->select('u')
85
-	 *         ->from('users', 'u')
86
-	 *         ->where($qb->expr()->eq('u.id', 1));
87
-	 * </code>
88
-	 *
89
-	 * For more complex expression construction, consider storing the expression
90
-	 * builder object in a local variable.
91
-	 *
92
-	 * @return \OCP\DB\QueryBuilder\IExpressionBuilder
93
-	 * @since 8.2.0
94
-	 */
95
-	public function expr();
96
-
97
-	/**
98
-	 * Gets the type of the currently built query.
99
-	 *
100
-	 * @return integer
101
-	 * @since 8.2.0
102
-	 */
103
-	public function getType();
104
-
105
-	/**
106
-	 * Gets the associated DBAL Connection for this query builder.
107
-	 *
108
-	 * @return \OCP\IDBConnection
109
-	 * @since 8.2.0
110
-	 */
111
-	public function getConnection();
112
-
113
-	/**
114
-	 * Gets the state of this query builder instance.
115
-	 *
116
-	 * @return integer Either QueryBuilder::STATE_DIRTY or QueryBuilder::STATE_CLEAN.
117
-	 * @since 8.2.0
118
-	 */
119
-	public function getState();
120
-
121
-	/**
122
-	 * Executes this query using the bound parameters and their types.
123
-	 *
124
-	 * Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}
125
-	 * for insert, update and delete statements.
126
-	 *
127
-	 * @return \Doctrine\DBAL\Driver\Statement|int
128
-	 * @since 8.2.0
129
-	 */
130
-	public function execute();
131
-
132
-	/**
133
-	 * Gets the complete SQL string formed by the current specifications of this QueryBuilder.
134
-	 *
135
-	 * <code>
136
-	 *     $qb = $conn->getQueryBuilder()
137
-	 *         ->select('u')
138
-	 *         ->from('User', 'u')
139
-	 *     echo $qb->getSQL(); // SELECT u FROM User u
140
-	 * </code>
141
-	 *
142
-	 * @return string The SQL query string.
143
-	 * @since 8.2.0
144
-	 */
145
-	public function getSQL();
146
-
147
-	/**
148
-	 * Sets a query parameter for the query being constructed.
149
-	 *
150
-	 * <code>
151
-	 *     $qb = $conn->getQueryBuilder()
152
-	 *         ->select('u')
153
-	 *         ->from('users', 'u')
154
-	 *         ->where('u.id = :user_id')
155
-	 *         ->setParameter(':user_id', 1);
156
-	 * </code>
157
-	 *
158
-	 * @param string|integer $key The parameter position or name.
159
-	 * @param mixed $value The parameter value.
160
-	 * @param string|null $type One of the IQueryBuilder::PARAM_* constants.
161
-	 *
162
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
163
-	 * @since 8.2.0
164
-	 */
165
-	public function setParameter($key, $value, $type = null);
166
-
167
-	/**
168
-	 * Sets a collection of query parameters for the query being constructed.
169
-	 *
170
-	 * <code>
171
-	 *     $qb = $conn->getQueryBuilder()
172
-	 *         ->select('u')
173
-	 *         ->from('users', 'u')
174
-	 *         ->where('u.id = :user_id1 OR u.id = :user_id2')
175
-	 *         ->setParameters(array(
176
-	 *             ':user_id1' => 1,
177
-	 *             ':user_id2' => 2
178
-	 *         ));
179
-	 * </code>
180
-	 *
181
-	 * @param array $params The query parameters to set.
182
-	 * @param array $types The query parameters types to set.
183
-	 *
184
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
185
-	 * @since 8.2.0
186
-	 */
187
-	public function setParameters(array $params, array $types = array());
188
-
189
-	/**
190
-	 * Gets all defined query parameters for the query being constructed indexed by parameter index or name.
191
-	 *
192
-	 * @return array The currently defined query parameters indexed by parameter index or name.
193
-	 * @since 8.2.0
194
-	 */
195
-	public function getParameters();
196
-
197
-	/**
198
-	 * Gets a (previously set) query parameter of the query being constructed.
199
-	 *
200
-	 * @param mixed $key The key (index or name) of the bound parameter.
201
-	 *
202
-	 * @return mixed The value of the bound parameter.
203
-	 * @since 8.2.0
204
-	 */
205
-	public function getParameter($key);
206
-
207
-	/**
208
-	 * Gets all defined query parameter types for the query being constructed indexed by parameter index or name.
209
-	 *
210
-	 * @return array The currently defined query parameter types indexed by parameter index or name.
211
-	 * @since 8.2.0
212
-	 */
213
-	public function getParameterTypes();
214
-
215
-	/**
216
-	 * Gets a (previously set) query parameter type of the query being constructed.
217
-	 *
218
-	 * @param mixed $key The key (index or name) of the bound parameter type.
219
-	 *
220
-	 * @return mixed The value of the bound parameter type.
221
-	 * @since 8.2.0
222
-	 */
223
-	public function getParameterType($key);
224
-
225
-	/**
226
-	 * Sets the position of the first result to retrieve (the "offset").
227
-	 *
228
-	 * @param integer $firstResult The first result to return.
229
-	 *
230
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
231
-	 * @since 8.2.0
232
-	 */
233
-	public function setFirstResult($firstResult);
234
-
235
-	/**
236
-	 * Gets the position of the first result the query object was set to retrieve (the "offset").
237
-	 * Returns NULL if {@link setFirstResult} was not applied to this QueryBuilder.
238
-	 *
239
-	 * @return integer The position of the first result.
240
-	 * @since 8.2.0
241
-	 */
242
-	public function getFirstResult();
243
-
244
-	/**
245
-	 * Sets the maximum number of results to retrieve (the "limit").
246
-	 *
247
-	 * @param integer $maxResults The maximum number of results to retrieve.
248
-	 *
249
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
250
-	 * @since 8.2.0
251
-	 */
252
-	public function setMaxResults($maxResults);
253
-
254
-	/**
255
-	 * Gets the maximum number of results the query object was set to retrieve (the "limit").
256
-	 * Returns NULL if {@link setMaxResults} was not applied to this query builder.
257
-	 *
258
-	 * @return integer The maximum number of results.
259
-	 * @since 8.2.0
260
-	 */
261
-	public function getMaxResults();
262
-
263
-	/**
264
-	 * Specifies an item that is to be returned in the query result.
265
-	 * Replaces any previously specified selections, if any.
266
-	 *
267
-	 * <code>
268
-	 *     $qb = $conn->getQueryBuilder()
269
-	 *         ->select('u.id', 'p.id')
270
-	 *         ->from('users', 'u')
271
-	 *         ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id');
272
-	 * </code>
273
-	 *
274
-	 * @param mixed $select The selection expressions.
275
-	 *
276
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
277
-	 * @since 8.2.0
278
-	 */
279
-	public function select($select = null);
280
-
281
-	/**
282
-	 * Specifies an item that is to be returned with a different name in the query result.
283
-	 *
284
-	 * <code>
285
-	 *     $qb = $conn->getQueryBuilder()
286
-	 *         ->selectAlias('u.id', 'user_id')
287
-	 *         ->from('users', 'u')
288
-	 *         ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id');
289
-	 * </code>
290
-	 *
291
-	 * @param mixed $select The selection expressions.
292
-	 * @param string $alias The column alias used in the constructed query.
293
-	 *
294
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
295
-	 * @since 8.2.1
296
-	 */
297
-	public function selectAlias($select, $alias);
298
-
299
-	/**
300
-	 * Specifies an item that is to be returned uniquely in the query result.
301
-	 *
302
-	 * <code>
303
-	 *     $qb = $conn->getQueryBuilder()
304
-	 *         ->selectDistinct('type')
305
-	 *         ->from('users');
306
-	 * </code>
307
-	 *
308
-	 * @param mixed $select The selection expressions.
309
-	 *
310
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
311
-	 * @since 9.0.0
312
-	 */
313
-	public function selectDistinct($select);
314
-
315
-	/**
316
-	 * Adds an item that is to be returned in the query result.
317
-	 *
318
-	 * <code>
319
-	 *     $qb = $conn->getQueryBuilder()
320
-	 *         ->select('u.id')
321
-	 *         ->addSelect('p.id')
322
-	 *         ->from('users', 'u')
323
-	 *         ->leftJoin('u', 'phonenumbers', 'u.id = p.user_id');
324
-	 * </code>
325
-	 *
326
-	 * @param mixed $select The selection expression.
327
-	 *
328
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
329
-	 * @since 8.2.0
330
-	 */
331
-	public function addSelect($select = null);
332
-
333
-	/**
334
-	 * Turns the query being built into a bulk delete query that ranges over
335
-	 * a certain table.
336
-	 *
337
-	 * <code>
338
-	 *     $qb = $conn->getQueryBuilder()
339
-	 *         ->delete('users', 'u')
340
-	 *         ->where('u.id = :user_id');
341
-	 *         ->setParameter(':user_id', 1);
342
-	 * </code>
343
-	 *
344
-	 * @param string $delete The table whose rows are subject to the deletion.
345
-	 * @param string $alias The table alias used in the constructed query.
346
-	 *
347
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
348
-	 * @since 8.2.0
349
-	 */
350
-	public function delete($delete = null, $alias = null);
351
-
352
-	/**
353
-	 * Turns the query being built into a bulk update query that ranges over
354
-	 * a certain table
355
-	 *
356
-	 * <code>
357
-	 *     $qb = $conn->getQueryBuilder()
358
-	 *         ->update('users', 'u')
359
-	 *         ->set('u.password', md5('password'))
360
-	 *         ->where('u.id = ?');
361
-	 * </code>
362
-	 *
363
-	 * @param string $update The table whose rows are subject to the update.
364
-	 * @param string $alias The table alias used in the constructed query.
365
-	 *
366
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
367
-	 * @since 8.2.0
368
-	 */
369
-	public function update($update = null, $alias = null);
370
-
371
-	/**
372
-	 * Turns the query being built into an insert query that inserts into
373
-	 * a certain table
374
-	 *
375
-	 * <code>
376
-	 *     $qb = $conn->getQueryBuilder()
377
-	 *         ->insert('users')
378
-	 *         ->values(
379
-	 *             array(
380
-	 *                 'name' => '?',
381
-	 *                 'password' => '?'
382
-	 *             )
383
-	 *         );
384
-	 * </code>
385
-	 *
386
-	 * @param string $insert The table into which the rows should be inserted.
387
-	 *
388
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
389
-	 * @since 8.2.0
390
-	 */
391
-	public function insert($insert = null);
392
-
393
-	/**
394
-	 * Creates and adds a query root corresponding to the table identified by the
395
-	 * given alias, forming a cartesian product with any existing query roots.
396
-	 *
397
-	 * <code>
398
-	 *     $qb = $conn->getQueryBuilder()
399
-	 *         ->select('u.id')
400
-	 *         ->from('users', 'u')
401
-	 * </code>
402
-	 *
403
-	 * @param string $from The table.
404
-	 * @param string|null $alias The alias of the table.
405
-	 *
406
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
407
-	 * @since 8.2.0
408
-	 */
409
-	public function from($from, $alias = null);
410
-
411
-	/**
412
-	 * Creates and adds a join to the query.
413
-	 *
414
-	 * <code>
415
-	 *     $qb = $conn->getQueryBuilder()
416
-	 *         ->select('u.name')
417
-	 *         ->from('users', 'u')
418
-	 *         ->join('u', 'phonenumbers', 'p', 'p.is_primary = 1');
419
-	 * </code>
420
-	 *
421
-	 * @param string $fromAlias The alias that points to a from clause.
422
-	 * @param string $join The table name to join.
423
-	 * @param string $alias The alias of the join table.
424
-	 * @param string $condition The condition for the join.
425
-	 *
426
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
427
-	 * @since 8.2.0
428
-	 */
429
-	public function join($fromAlias, $join, $alias, $condition = null);
430
-
431
-	/**
432
-	 * Creates and adds a join to the query.
433
-	 *
434
-	 * <code>
435
-	 *     $qb = $conn->getQueryBuilder()
436
-	 *         ->select('u.name')
437
-	 *         ->from('users', 'u')
438
-	 *         ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
439
-	 * </code>
440
-	 *
441
-	 * @param string $fromAlias The alias that points to a from clause.
442
-	 * @param string $join The table name to join.
443
-	 * @param string $alias The alias of the join table.
444
-	 * @param string $condition The condition for the join.
445
-	 *
446
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
447
-	 * @since 8.2.0
448
-	 */
449
-	public function innerJoin($fromAlias, $join, $alias, $condition = null);
450
-
451
-	/**
452
-	 * Creates and adds a left join to the query.
453
-	 *
454
-	 * <code>
455
-	 *     $qb = $conn->getQueryBuilder()
456
-	 *         ->select('u.name')
457
-	 *         ->from('users', 'u')
458
-	 *         ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
459
-	 * </code>
460
-	 *
461
-	 * @param string $fromAlias The alias that points to a from clause.
462
-	 * @param string $join The table name to join.
463
-	 * @param string $alias The alias of the join table.
464
-	 * @param string $condition The condition for the join.
465
-	 *
466
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
467
-	 * @since 8.2.0
468
-	 */
469
-	public function leftJoin($fromAlias, $join, $alias, $condition = null);
470
-
471
-	/**
472
-	 * Creates and adds a right join to the query.
473
-	 *
474
-	 * <code>
475
-	 *     $qb = $conn->getQueryBuilder()
476
-	 *         ->select('u.name')
477
-	 *         ->from('users', 'u')
478
-	 *         ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
479
-	 * </code>
480
-	 *
481
-	 * @param string $fromAlias The alias that points to a from clause.
482
-	 * @param string $join The table name to join.
483
-	 * @param string $alias The alias of the join table.
484
-	 * @param string $condition The condition for the join.
485
-	 *
486
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
487
-	 * @since 8.2.0
488
-	 */
489
-	public function rightJoin($fromAlias, $join, $alias, $condition = null);
490
-
491
-	/**
492
-	 * Sets a new value for a column in a bulk update query.
493
-	 *
494
-	 * <code>
495
-	 *     $qb = $conn->getQueryBuilder()
496
-	 *         ->update('users', 'u')
497
-	 *         ->set('u.password', md5('password'))
498
-	 *         ->where('u.id = ?');
499
-	 * </code>
500
-	 *
501
-	 * @param string $key The column to set.
502
-	 * @param string $value The value, expression, placeholder, etc.
503
-	 *
504
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
505
-	 * @since 8.2.0
506
-	 */
507
-	public function set($key, $value);
508
-
509
-	/**
510
-	 * Specifies one or more restrictions to the query result.
511
-	 * Replaces any previously specified restrictions, if any.
512
-	 *
513
-	 * <code>
514
-	 *     $qb = $conn->getQueryBuilder()
515
-	 *         ->select('u.name')
516
-	 *         ->from('users', 'u')
517
-	 *         ->where('u.id = ?');
518
-	 *
519
-	 *     // You can optionally programatically build and/or expressions
520
-	 *     $qb = $conn->getQueryBuilder();
521
-	 *
522
-	 *     $or = $qb->expr()->orx();
523
-	 *     $or->add($qb->expr()->eq('u.id', 1));
524
-	 *     $or->add($qb->expr()->eq('u.id', 2));
525
-	 *
526
-	 *     $qb->update('users', 'u')
527
-	 *         ->set('u.password', md5('password'))
528
-	 *         ->where($or);
529
-	 * </code>
530
-	 *
531
-	 * @param mixed $predicates The restriction predicates.
532
-	 *
533
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
534
-	 * @since 8.2.0
535
-	 */
536
-	public function where($predicates);
537
-
538
-	/**
539
-	 * Adds one or more restrictions to the query results, forming a logical
540
-	 * conjunction with any previously specified restrictions.
541
-	 *
542
-	 * <code>
543
-	 *     $qb = $conn->getQueryBuilder()
544
-	 *         ->select('u')
545
-	 *         ->from('users', 'u')
546
-	 *         ->where('u.username LIKE ?')
547
-	 *         ->andWhere('u.is_active = 1');
548
-	 * </code>
549
-	 *
550
-	 * @param mixed $where The query restrictions.
551
-	 *
552
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
553
-	 *
554
-	 * @see where()
555
-	 * @since 8.2.0
556
-	 */
557
-	public function andWhere($where);
558
-
559
-	/**
560
-	 * Adds one or more restrictions to the query results, forming a logical
561
-	 * disjunction with any previously specified restrictions.
562
-	 *
563
-	 * <code>
564
-	 *     $qb = $conn->getQueryBuilder()
565
-	 *         ->select('u.name')
566
-	 *         ->from('users', 'u')
567
-	 *         ->where('u.id = 1')
568
-	 *         ->orWhere('u.id = 2');
569
-	 * </code>
570
-	 *
571
-	 * @param mixed $where The WHERE statement.
572
-	 *
573
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
574
-	 *
575
-	 * @see where()
576
-	 * @since 8.2.0
577
-	 */
578
-	public function orWhere($where);
579
-
580
-	/**
581
-	 * Specifies a grouping over the results of the query.
582
-	 * Replaces any previously specified groupings, if any.
583
-	 *
584
-	 * <code>
585
-	 *     $qb = $conn->getQueryBuilder()
586
-	 *         ->select('u.name')
587
-	 *         ->from('users', 'u')
588
-	 *         ->groupBy('u.id');
589
-	 * </code>
590
-	 *
591
-	 * @param mixed $groupBy The grouping expression.
592
-	 *
593
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
594
-	 * @since 8.2.0
595
-	 */
596
-	public function groupBy($groupBy);
597
-
598
-	/**
599
-	 * Adds a grouping expression to the query.
600
-	 *
601
-	 * <code>
602
-	 *     $qb = $conn->getQueryBuilder()
603
-	 *         ->select('u.name')
604
-	 *         ->from('users', 'u')
605
-	 *         ->groupBy('u.lastLogin');
606
-	 *         ->addGroupBy('u.createdAt')
607
-	 * </code>
608
-	 *
609
-	 * @param mixed $groupBy The grouping expression.
610
-	 *
611
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
612
-	 * @since 8.2.0
613
-	 */
614
-	public function addGroupBy($groupBy);
615
-
616
-	/**
617
-	 * Sets a value for a column in an insert query.
618
-	 *
619
-	 * <code>
620
-	 *     $qb = $conn->getQueryBuilder()
621
-	 *         ->insert('users')
622
-	 *         ->values(
623
-	 *             array(
624
-	 *                 'name' => '?'
625
-	 *             )
626
-	 *         )
627
-	 *         ->setValue('password', '?');
628
-	 * </code>
629
-	 *
630
-	 * @param string $column The column into which the value should be inserted.
631
-	 * @param string $value The value that should be inserted into the column.
632
-	 *
633
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
634
-	 * @since 8.2.0
635
-	 */
636
-	public function setValue($column, $value);
637
-
638
-	/**
639
-	 * Specifies values for an insert query indexed by column names.
640
-	 * Replaces any previous values, if any.
641
-	 *
642
-	 * <code>
643
-	 *     $qb = $conn->getQueryBuilder()
644
-	 *         ->insert('users')
645
-	 *         ->values(
646
-	 *             array(
647
-	 *                 'name' => '?',
648
-	 *                 'password' => '?'
649
-	 *             )
650
-	 *         );
651
-	 * </code>
652
-	 *
653
-	 * @param array $values The values to specify for the insert query indexed by column names.
654
-	 *
655
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
656
-	 * @since 8.2.0
657
-	 */
658
-	public function values(array $values);
659
-
660
-	/**
661
-	 * Specifies a restriction over the groups of the query.
662
-	 * Replaces any previous having restrictions, if any.
663
-	 *
664
-	 * @param mixed $having The restriction over the groups.
665
-	 *
666
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
667
-	 * @since 8.2.0
668
-	 */
669
-	public function having($having);
670
-
671
-	/**
672
-	 * Adds a restriction over the groups of the query, forming a logical
673
-	 * conjunction with any existing having restrictions.
674
-	 *
675
-	 * @param mixed $having The restriction to append.
676
-	 *
677
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
678
-	 * @since 8.2.0
679
-	 */
680
-	public function andHaving($having);
681
-
682
-	/**
683
-	 * Adds a restriction over the groups of the query, forming a logical
684
-	 * disjunction with any existing having restrictions.
685
-	 *
686
-	 * @param mixed $having The restriction to add.
687
-	 *
688
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
689
-	 * @since 8.2.0
690
-	 */
691
-	public function orHaving($having);
692
-
693
-	/**
694
-	 * Specifies an ordering for the query results.
695
-	 * Replaces any previously specified orderings, if any.
696
-	 *
697
-	 * @param string $sort The ordering expression.
698
-	 * @param string $order The ordering direction.
699
-	 *
700
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
701
-	 * @since 8.2.0
702
-	 */
703
-	public function orderBy($sort, $order = null);
704
-
705
-	/**
706
-	 * Adds an ordering to the query results.
707
-	 *
708
-	 * @param string $sort The ordering expression.
709
-	 * @param string $order The ordering direction.
710
-	 *
711
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
712
-	 * @since 8.2.0
713
-	 */
714
-	public function addOrderBy($sort, $order = null);
715
-
716
-	/**
717
-	 * Gets a query part by its name.
718
-	 *
719
-	 * @param string $queryPartName
720
-	 *
721
-	 * @return mixed
722
-	 * @since 8.2.0
723
-	 */
724
-	public function getQueryPart($queryPartName);
725
-
726
-	/**
727
-	 * Gets all query parts.
728
-	 *
729
-	 * @return array
730
-	 * @since 8.2.0
731
-	 */
732
-	public function getQueryParts();
733
-
734
-	/**
735
-	 * Resets SQL parts.
736
-	 *
737
-	 * @param array|null $queryPartNames
738
-	 *
739
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
740
-	 * @since 8.2.0
741
-	 */
742
-	public function resetQueryParts($queryPartNames = null);
743
-
744
-	/**
745
-	 * Resets a single SQL part.
746
-	 *
747
-	 * @param string $queryPartName
748
-	 *
749
-	 * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
750
-	 * @since 8.2.0
751
-	 */
752
-	public function resetQueryPart($queryPartName);
753
-
754
-	/**
755
-	 * Creates a new named parameter and bind the value $value to it.
756
-	 *
757
-	 * This method provides a shortcut for PDOStatement::bindValue
758
-	 * when using prepared statements.
759
-	 *
760
-	 * The parameter $value specifies the value that you want to bind. If
761
-	 * $placeholder is not provided bindValue() will automatically create a
762
-	 * placeholder for you. An automatic placeholder will be of the name
763
-	 * ':dcValue1', ':dcValue2' etc.
764
-	 *
765
-	 * For more information see {@link http://php.net/pdostatement-bindparam}
766
-	 *
767
-	 * Example:
768
-	 * <code>
769
-	 * $value = 2;
770
-	 * $q->eq( 'id', $q->bindValue( $value ) );
771
-	 * $stmt = $q->executeQuery(); // executed with 'id = 2'
772
-	 * </code>
773
-	 *
774
-	 * @license New BSD License
775
-	 * @link http://www.zetacomponents.org
776
-	 *
777
-	 * @param mixed $value
778
-	 * @param mixed $type
779
-	 * @param string $placeHolder The name to bind with. The string must start with a colon ':'.
780
-	 *
781
-	 * @return IParameter
782
-	 * @since 8.2.0
783
-	 */
784
-	public function createNamedParameter($value, $type = self::PARAM_STR, $placeHolder = null);
785
-
786
-	/**
787
-	 * Creates a new positional parameter and bind the given value to it.
788
-	 *
789
-	 * Attention: If you are using positional parameters with the query builder you have
790
-	 * to be very careful to bind all parameters in the order they appear in the SQL
791
-	 * statement , otherwise they get bound in the wrong order which can lead to serious
792
-	 * bugs in your code.
793
-	 *
794
-	 * Example:
795
-	 * <code>
796
-	 *  $qb = $conn->getQueryBuilder();
797
-	 *  $qb->select('u.*')
798
-	 *     ->from('users', 'u')
799
-	 *     ->where('u.username = ' . $qb->createPositionalParameter('Foo', IQueryBuilder::PARAM_STR))
800
-	 *     ->orWhere('u.username = ' . $qb->createPositionalParameter('Bar', IQueryBuilder::PARAM_STR))
801
-	 * </code>
802
-	 *
803
-	 * @param mixed $value
804
-	 * @param integer $type
805
-	 *
806
-	 * @return IParameter
807
-	 * @since 8.2.0
808
-	 */
809
-	public function createPositionalParameter($value, $type = self::PARAM_STR);
810
-
811
-	/**
812
-	 * Creates a new parameter
813
-	 *
814
-	 * Example:
815
-	 * <code>
816
-	 *  $qb = $conn->getQueryBuilder();
817
-	 *  $qb->select('u.*')
818
-	 *     ->from('users', 'u')
819
-	 *     ->where('u.username = ' . $qb->createParameter('name'))
820
-	 *     ->setParameter('name', 'Bar', IQueryBuilder::PARAM_STR))
821
-	 * </code>
822
-	 *
823
-	 * @param string $name
824
-	 *
825
-	 * @return IParameter
826
-	 * @since 8.2.0
827
-	 */
828
-	public function createParameter($name);
829
-
830
-	/**
831
-	 * Creates a new function
832
-	 *
833
-	 * Attention: Column names inside the call have to be quoted before hand
834
-	 *
835
-	 * Example:
836
-	 * <code>
837
-	 *  $qb = $conn->getQueryBuilder();
838
-	 *  $qb->select($qb->createFunction('COUNT(*)'))
839
-	 *     ->from('users', 'u')
840
-	 *  echo $qb->getSQL(); // SELECT COUNT(*) FROM `users` u
841
-	 * </code>
842
-	 * <code>
843
-	 *  $qb = $conn->getQueryBuilder();
844
-	 *  $qb->select($qb->createFunction('COUNT(`column`)'))
845
-	 *     ->from('users', 'u')
846
-	 *  echo $qb->getSQL(); // SELECT COUNT(`column`) FROM `users` u
847
-	 * </code>
848
-	 *
849
-	 * @param string $call
850
-	 *
851
-	 * @return IQueryFunction
852
-	 * @since 8.2.0
853
-	 */
854
-	public function createFunction($call);
855
-
856
-	/**
857
-	 * Used to get the id of the last inserted element
858
-	 * @return int
859
-	 * @throws \BadMethodCallException When being called before an insert query has been run.
860
-	 * @since 9.0.0
861
-	 */
862
-	public function getLastInsertId();
863
-
864
-	/**
865
-	 * Returns the table name quoted and with database prefix as needed by the implementation
866
-	 *
867
-	 * @param string $table
868
-	 * @return string
869
-	 * @since 9.0.0
870
-	 */
871
-	public function getTableName($table);
872
-
873
-	/**
874
-	 * Returns the column name quoted and with table alias prefix as needed by the implementation
875
-	 *
876
-	 * @param string $column
877
-	 * @param string $tableAlias
878
-	 * @return string
879
-	 * @since 9.0.0
880
-	 */
881
-	public function getColumnName($column, $tableAlias = '');
34
+    /**
35
+     * @since 9.0.0
36
+     */
37
+    const PARAM_NULL = \PDO::PARAM_NULL;
38
+    /**
39
+     * @since 9.0.0
40
+     */
41
+    const PARAM_BOOL = \PDO::PARAM_BOOL;
42
+    /**
43
+     * @since 9.0.0
44
+     */
45
+    const PARAM_INT = \PDO::PARAM_INT;
46
+    /**
47
+     * @since 9.0.0
48
+     */
49
+    const PARAM_STR = \PDO::PARAM_STR;
50
+    /**
51
+     * @since 9.0.0
52
+     */
53
+    const PARAM_LOB = \PDO::PARAM_LOB;
54
+    /**
55
+     * @since 9.0.0
56
+     */
57
+    const PARAM_DATE = 'datetime';
58
+
59
+    /**
60
+     * @since 9.0.0
61
+     */
62
+    const PARAM_INT_ARRAY = Connection::PARAM_INT_ARRAY;
63
+    /**
64
+     * @since 9.0.0
65
+     */
66
+    const PARAM_STR_ARRAY = Connection::PARAM_STR_ARRAY;
67
+
68
+
69
+    /**
70
+     * Enable/disable automatic prefixing of table names with the oc_ prefix
71
+     *
72
+     * @param bool $enabled If set to true table names will be prefixed with the
73
+     * owncloud database prefix automatically.
74
+     * @since 8.2.0
75
+     */
76
+    public function automaticTablePrefix($enabled);
77
+
78
+    /**
79
+     * Gets an ExpressionBuilder used for object-oriented construction of query expressions.
80
+     * This producer method is intended for convenient inline usage. Example:
81
+     *
82
+     * <code>
83
+     *     $qb = $conn->getQueryBuilder()
84
+     *         ->select('u')
85
+     *         ->from('users', 'u')
86
+     *         ->where($qb->expr()->eq('u.id', 1));
87
+     * </code>
88
+     *
89
+     * For more complex expression construction, consider storing the expression
90
+     * builder object in a local variable.
91
+     *
92
+     * @return \OCP\DB\QueryBuilder\IExpressionBuilder
93
+     * @since 8.2.0
94
+     */
95
+    public function expr();
96
+
97
+    /**
98
+     * Gets the type of the currently built query.
99
+     *
100
+     * @return integer
101
+     * @since 8.2.0
102
+     */
103
+    public function getType();
104
+
105
+    /**
106
+     * Gets the associated DBAL Connection for this query builder.
107
+     *
108
+     * @return \OCP\IDBConnection
109
+     * @since 8.2.0
110
+     */
111
+    public function getConnection();
112
+
113
+    /**
114
+     * Gets the state of this query builder instance.
115
+     *
116
+     * @return integer Either QueryBuilder::STATE_DIRTY or QueryBuilder::STATE_CLEAN.
117
+     * @since 8.2.0
118
+     */
119
+    public function getState();
120
+
121
+    /**
122
+     * Executes this query using the bound parameters and their types.
123
+     *
124
+     * Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}
125
+     * for insert, update and delete statements.
126
+     *
127
+     * @return \Doctrine\DBAL\Driver\Statement|int
128
+     * @since 8.2.0
129
+     */
130
+    public function execute();
131
+
132
+    /**
133
+     * Gets the complete SQL string formed by the current specifications of this QueryBuilder.
134
+     *
135
+     * <code>
136
+     *     $qb = $conn->getQueryBuilder()
137
+     *         ->select('u')
138
+     *         ->from('User', 'u')
139
+     *     echo $qb->getSQL(); // SELECT u FROM User u
140
+     * </code>
141
+     *
142
+     * @return string The SQL query string.
143
+     * @since 8.2.0
144
+     */
145
+    public function getSQL();
146
+
147
+    /**
148
+     * Sets a query parameter for the query being constructed.
149
+     *
150
+     * <code>
151
+     *     $qb = $conn->getQueryBuilder()
152
+     *         ->select('u')
153
+     *         ->from('users', 'u')
154
+     *         ->where('u.id = :user_id')
155
+     *         ->setParameter(':user_id', 1);
156
+     * </code>
157
+     *
158
+     * @param string|integer $key The parameter position or name.
159
+     * @param mixed $value The parameter value.
160
+     * @param string|null $type One of the IQueryBuilder::PARAM_* constants.
161
+     *
162
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
163
+     * @since 8.2.0
164
+     */
165
+    public function setParameter($key, $value, $type = null);
166
+
167
+    /**
168
+     * Sets a collection of query parameters for the query being constructed.
169
+     *
170
+     * <code>
171
+     *     $qb = $conn->getQueryBuilder()
172
+     *         ->select('u')
173
+     *         ->from('users', 'u')
174
+     *         ->where('u.id = :user_id1 OR u.id = :user_id2')
175
+     *         ->setParameters(array(
176
+     *             ':user_id1' => 1,
177
+     *             ':user_id2' => 2
178
+     *         ));
179
+     * </code>
180
+     *
181
+     * @param array $params The query parameters to set.
182
+     * @param array $types The query parameters types to set.
183
+     *
184
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
185
+     * @since 8.2.0
186
+     */
187
+    public function setParameters(array $params, array $types = array());
188
+
189
+    /**
190
+     * Gets all defined query parameters for the query being constructed indexed by parameter index or name.
191
+     *
192
+     * @return array The currently defined query parameters indexed by parameter index or name.
193
+     * @since 8.2.0
194
+     */
195
+    public function getParameters();
196
+
197
+    /**
198
+     * Gets a (previously set) query parameter of the query being constructed.
199
+     *
200
+     * @param mixed $key The key (index or name) of the bound parameter.
201
+     *
202
+     * @return mixed The value of the bound parameter.
203
+     * @since 8.2.0
204
+     */
205
+    public function getParameter($key);
206
+
207
+    /**
208
+     * Gets all defined query parameter types for the query being constructed indexed by parameter index or name.
209
+     *
210
+     * @return array The currently defined query parameter types indexed by parameter index or name.
211
+     * @since 8.2.0
212
+     */
213
+    public function getParameterTypes();
214
+
215
+    /**
216
+     * Gets a (previously set) query parameter type of the query being constructed.
217
+     *
218
+     * @param mixed $key The key (index or name) of the bound parameter type.
219
+     *
220
+     * @return mixed The value of the bound parameter type.
221
+     * @since 8.2.0
222
+     */
223
+    public function getParameterType($key);
224
+
225
+    /**
226
+     * Sets the position of the first result to retrieve (the "offset").
227
+     *
228
+     * @param integer $firstResult The first result to return.
229
+     *
230
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
231
+     * @since 8.2.0
232
+     */
233
+    public function setFirstResult($firstResult);
234
+
235
+    /**
236
+     * Gets the position of the first result the query object was set to retrieve (the "offset").
237
+     * Returns NULL if {@link setFirstResult} was not applied to this QueryBuilder.
238
+     *
239
+     * @return integer The position of the first result.
240
+     * @since 8.2.0
241
+     */
242
+    public function getFirstResult();
243
+
244
+    /**
245
+     * Sets the maximum number of results to retrieve (the "limit").
246
+     *
247
+     * @param integer $maxResults The maximum number of results to retrieve.
248
+     *
249
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
250
+     * @since 8.2.0
251
+     */
252
+    public function setMaxResults($maxResults);
253
+
254
+    /**
255
+     * Gets the maximum number of results the query object was set to retrieve (the "limit").
256
+     * Returns NULL if {@link setMaxResults} was not applied to this query builder.
257
+     *
258
+     * @return integer The maximum number of results.
259
+     * @since 8.2.0
260
+     */
261
+    public function getMaxResults();
262
+
263
+    /**
264
+     * Specifies an item that is to be returned in the query result.
265
+     * Replaces any previously specified selections, if any.
266
+     *
267
+     * <code>
268
+     *     $qb = $conn->getQueryBuilder()
269
+     *         ->select('u.id', 'p.id')
270
+     *         ->from('users', 'u')
271
+     *         ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id');
272
+     * </code>
273
+     *
274
+     * @param mixed $select The selection expressions.
275
+     *
276
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
277
+     * @since 8.2.0
278
+     */
279
+    public function select($select = null);
280
+
281
+    /**
282
+     * Specifies an item that is to be returned with a different name in the query result.
283
+     *
284
+     * <code>
285
+     *     $qb = $conn->getQueryBuilder()
286
+     *         ->selectAlias('u.id', 'user_id')
287
+     *         ->from('users', 'u')
288
+     *         ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id');
289
+     * </code>
290
+     *
291
+     * @param mixed $select The selection expressions.
292
+     * @param string $alias The column alias used in the constructed query.
293
+     *
294
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
295
+     * @since 8.2.1
296
+     */
297
+    public function selectAlias($select, $alias);
298
+
299
+    /**
300
+     * Specifies an item that is to be returned uniquely in the query result.
301
+     *
302
+     * <code>
303
+     *     $qb = $conn->getQueryBuilder()
304
+     *         ->selectDistinct('type')
305
+     *         ->from('users');
306
+     * </code>
307
+     *
308
+     * @param mixed $select The selection expressions.
309
+     *
310
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
311
+     * @since 9.0.0
312
+     */
313
+    public function selectDistinct($select);
314
+
315
+    /**
316
+     * Adds an item that is to be returned in the query result.
317
+     *
318
+     * <code>
319
+     *     $qb = $conn->getQueryBuilder()
320
+     *         ->select('u.id')
321
+     *         ->addSelect('p.id')
322
+     *         ->from('users', 'u')
323
+     *         ->leftJoin('u', 'phonenumbers', 'u.id = p.user_id');
324
+     * </code>
325
+     *
326
+     * @param mixed $select The selection expression.
327
+     *
328
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
329
+     * @since 8.2.0
330
+     */
331
+    public function addSelect($select = null);
332
+
333
+    /**
334
+     * Turns the query being built into a bulk delete query that ranges over
335
+     * a certain table.
336
+     *
337
+     * <code>
338
+     *     $qb = $conn->getQueryBuilder()
339
+     *         ->delete('users', 'u')
340
+     *         ->where('u.id = :user_id');
341
+     *         ->setParameter(':user_id', 1);
342
+     * </code>
343
+     *
344
+     * @param string $delete The table whose rows are subject to the deletion.
345
+     * @param string $alias The table alias used in the constructed query.
346
+     *
347
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
348
+     * @since 8.2.0
349
+     */
350
+    public function delete($delete = null, $alias = null);
351
+
352
+    /**
353
+     * Turns the query being built into a bulk update query that ranges over
354
+     * a certain table
355
+     *
356
+     * <code>
357
+     *     $qb = $conn->getQueryBuilder()
358
+     *         ->update('users', 'u')
359
+     *         ->set('u.password', md5('password'))
360
+     *         ->where('u.id = ?');
361
+     * </code>
362
+     *
363
+     * @param string $update The table whose rows are subject to the update.
364
+     * @param string $alias The table alias used in the constructed query.
365
+     *
366
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
367
+     * @since 8.2.0
368
+     */
369
+    public function update($update = null, $alias = null);
370
+
371
+    /**
372
+     * Turns the query being built into an insert query that inserts into
373
+     * a certain table
374
+     *
375
+     * <code>
376
+     *     $qb = $conn->getQueryBuilder()
377
+     *         ->insert('users')
378
+     *         ->values(
379
+     *             array(
380
+     *                 'name' => '?',
381
+     *                 'password' => '?'
382
+     *             )
383
+     *         );
384
+     * </code>
385
+     *
386
+     * @param string $insert The table into which the rows should be inserted.
387
+     *
388
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
389
+     * @since 8.2.0
390
+     */
391
+    public function insert($insert = null);
392
+
393
+    /**
394
+     * Creates and adds a query root corresponding to the table identified by the
395
+     * given alias, forming a cartesian product with any existing query roots.
396
+     *
397
+     * <code>
398
+     *     $qb = $conn->getQueryBuilder()
399
+     *         ->select('u.id')
400
+     *         ->from('users', 'u')
401
+     * </code>
402
+     *
403
+     * @param string $from The table.
404
+     * @param string|null $alias The alias of the table.
405
+     *
406
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
407
+     * @since 8.2.0
408
+     */
409
+    public function from($from, $alias = null);
410
+
411
+    /**
412
+     * Creates and adds a join to the query.
413
+     *
414
+     * <code>
415
+     *     $qb = $conn->getQueryBuilder()
416
+     *         ->select('u.name')
417
+     *         ->from('users', 'u')
418
+     *         ->join('u', 'phonenumbers', 'p', 'p.is_primary = 1');
419
+     * </code>
420
+     *
421
+     * @param string $fromAlias The alias that points to a from clause.
422
+     * @param string $join The table name to join.
423
+     * @param string $alias The alias of the join table.
424
+     * @param string $condition The condition for the join.
425
+     *
426
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
427
+     * @since 8.2.0
428
+     */
429
+    public function join($fromAlias, $join, $alias, $condition = null);
430
+
431
+    /**
432
+     * Creates and adds a join to the query.
433
+     *
434
+     * <code>
435
+     *     $qb = $conn->getQueryBuilder()
436
+     *         ->select('u.name')
437
+     *         ->from('users', 'u')
438
+     *         ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
439
+     * </code>
440
+     *
441
+     * @param string $fromAlias The alias that points to a from clause.
442
+     * @param string $join The table name to join.
443
+     * @param string $alias The alias of the join table.
444
+     * @param string $condition The condition for the join.
445
+     *
446
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
447
+     * @since 8.2.0
448
+     */
449
+    public function innerJoin($fromAlias, $join, $alias, $condition = null);
450
+
451
+    /**
452
+     * Creates and adds a left join to the query.
453
+     *
454
+     * <code>
455
+     *     $qb = $conn->getQueryBuilder()
456
+     *         ->select('u.name')
457
+     *         ->from('users', 'u')
458
+     *         ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
459
+     * </code>
460
+     *
461
+     * @param string $fromAlias The alias that points to a from clause.
462
+     * @param string $join The table name to join.
463
+     * @param string $alias The alias of the join table.
464
+     * @param string $condition The condition for the join.
465
+     *
466
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
467
+     * @since 8.2.0
468
+     */
469
+    public function leftJoin($fromAlias, $join, $alias, $condition = null);
470
+
471
+    /**
472
+     * Creates and adds a right join to the query.
473
+     *
474
+     * <code>
475
+     *     $qb = $conn->getQueryBuilder()
476
+     *         ->select('u.name')
477
+     *         ->from('users', 'u')
478
+     *         ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');
479
+     * </code>
480
+     *
481
+     * @param string $fromAlias The alias that points to a from clause.
482
+     * @param string $join The table name to join.
483
+     * @param string $alias The alias of the join table.
484
+     * @param string $condition The condition for the join.
485
+     *
486
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
487
+     * @since 8.2.0
488
+     */
489
+    public function rightJoin($fromAlias, $join, $alias, $condition = null);
490
+
491
+    /**
492
+     * Sets a new value for a column in a bulk update query.
493
+     *
494
+     * <code>
495
+     *     $qb = $conn->getQueryBuilder()
496
+     *         ->update('users', 'u')
497
+     *         ->set('u.password', md5('password'))
498
+     *         ->where('u.id = ?');
499
+     * </code>
500
+     *
501
+     * @param string $key The column to set.
502
+     * @param string $value The value, expression, placeholder, etc.
503
+     *
504
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
505
+     * @since 8.2.0
506
+     */
507
+    public function set($key, $value);
508
+
509
+    /**
510
+     * Specifies one or more restrictions to the query result.
511
+     * Replaces any previously specified restrictions, if any.
512
+     *
513
+     * <code>
514
+     *     $qb = $conn->getQueryBuilder()
515
+     *         ->select('u.name')
516
+     *         ->from('users', 'u')
517
+     *         ->where('u.id = ?');
518
+     *
519
+     *     // You can optionally programatically build and/or expressions
520
+     *     $qb = $conn->getQueryBuilder();
521
+     *
522
+     *     $or = $qb->expr()->orx();
523
+     *     $or->add($qb->expr()->eq('u.id', 1));
524
+     *     $or->add($qb->expr()->eq('u.id', 2));
525
+     *
526
+     *     $qb->update('users', 'u')
527
+     *         ->set('u.password', md5('password'))
528
+     *         ->where($or);
529
+     * </code>
530
+     *
531
+     * @param mixed $predicates The restriction predicates.
532
+     *
533
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
534
+     * @since 8.2.0
535
+     */
536
+    public function where($predicates);
537
+
538
+    /**
539
+     * Adds one or more restrictions to the query results, forming a logical
540
+     * conjunction with any previously specified restrictions.
541
+     *
542
+     * <code>
543
+     *     $qb = $conn->getQueryBuilder()
544
+     *         ->select('u')
545
+     *         ->from('users', 'u')
546
+     *         ->where('u.username LIKE ?')
547
+     *         ->andWhere('u.is_active = 1');
548
+     * </code>
549
+     *
550
+     * @param mixed $where The query restrictions.
551
+     *
552
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
553
+     *
554
+     * @see where()
555
+     * @since 8.2.0
556
+     */
557
+    public function andWhere($where);
558
+
559
+    /**
560
+     * Adds one or more restrictions to the query results, forming a logical
561
+     * disjunction with any previously specified restrictions.
562
+     *
563
+     * <code>
564
+     *     $qb = $conn->getQueryBuilder()
565
+     *         ->select('u.name')
566
+     *         ->from('users', 'u')
567
+     *         ->where('u.id = 1')
568
+     *         ->orWhere('u.id = 2');
569
+     * </code>
570
+     *
571
+     * @param mixed $where The WHERE statement.
572
+     *
573
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
574
+     *
575
+     * @see where()
576
+     * @since 8.2.0
577
+     */
578
+    public function orWhere($where);
579
+
580
+    /**
581
+     * Specifies a grouping over the results of the query.
582
+     * Replaces any previously specified groupings, if any.
583
+     *
584
+     * <code>
585
+     *     $qb = $conn->getQueryBuilder()
586
+     *         ->select('u.name')
587
+     *         ->from('users', 'u')
588
+     *         ->groupBy('u.id');
589
+     * </code>
590
+     *
591
+     * @param mixed $groupBy The grouping expression.
592
+     *
593
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
594
+     * @since 8.2.0
595
+     */
596
+    public function groupBy($groupBy);
597
+
598
+    /**
599
+     * Adds a grouping expression to the query.
600
+     *
601
+     * <code>
602
+     *     $qb = $conn->getQueryBuilder()
603
+     *         ->select('u.name')
604
+     *         ->from('users', 'u')
605
+     *         ->groupBy('u.lastLogin');
606
+     *         ->addGroupBy('u.createdAt')
607
+     * </code>
608
+     *
609
+     * @param mixed $groupBy The grouping expression.
610
+     *
611
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
612
+     * @since 8.2.0
613
+     */
614
+    public function addGroupBy($groupBy);
615
+
616
+    /**
617
+     * Sets a value for a column in an insert query.
618
+     *
619
+     * <code>
620
+     *     $qb = $conn->getQueryBuilder()
621
+     *         ->insert('users')
622
+     *         ->values(
623
+     *             array(
624
+     *                 'name' => '?'
625
+     *             )
626
+     *         )
627
+     *         ->setValue('password', '?');
628
+     * </code>
629
+     *
630
+     * @param string $column The column into which the value should be inserted.
631
+     * @param string $value The value that should be inserted into the column.
632
+     *
633
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
634
+     * @since 8.2.0
635
+     */
636
+    public function setValue($column, $value);
637
+
638
+    /**
639
+     * Specifies values for an insert query indexed by column names.
640
+     * Replaces any previous values, if any.
641
+     *
642
+     * <code>
643
+     *     $qb = $conn->getQueryBuilder()
644
+     *         ->insert('users')
645
+     *         ->values(
646
+     *             array(
647
+     *                 'name' => '?',
648
+     *                 'password' => '?'
649
+     *             )
650
+     *         );
651
+     * </code>
652
+     *
653
+     * @param array $values The values to specify for the insert query indexed by column names.
654
+     *
655
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
656
+     * @since 8.2.0
657
+     */
658
+    public function values(array $values);
659
+
660
+    /**
661
+     * Specifies a restriction over the groups of the query.
662
+     * Replaces any previous having restrictions, if any.
663
+     *
664
+     * @param mixed $having The restriction over the groups.
665
+     *
666
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
667
+     * @since 8.2.0
668
+     */
669
+    public function having($having);
670
+
671
+    /**
672
+     * Adds a restriction over the groups of the query, forming a logical
673
+     * conjunction with any existing having restrictions.
674
+     *
675
+     * @param mixed $having The restriction to append.
676
+     *
677
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
678
+     * @since 8.2.0
679
+     */
680
+    public function andHaving($having);
681
+
682
+    /**
683
+     * Adds a restriction over the groups of the query, forming a logical
684
+     * disjunction with any existing having restrictions.
685
+     *
686
+     * @param mixed $having The restriction to add.
687
+     *
688
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
689
+     * @since 8.2.0
690
+     */
691
+    public function orHaving($having);
692
+
693
+    /**
694
+     * Specifies an ordering for the query results.
695
+     * Replaces any previously specified orderings, if any.
696
+     *
697
+     * @param string $sort The ordering expression.
698
+     * @param string $order The ordering direction.
699
+     *
700
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
701
+     * @since 8.2.0
702
+     */
703
+    public function orderBy($sort, $order = null);
704
+
705
+    /**
706
+     * Adds an ordering to the query results.
707
+     *
708
+     * @param string $sort The ordering expression.
709
+     * @param string $order The ordering direction.
710
+     *
711
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
712
+     * @since 8.2.0
713
+     */
714
+    public function addOrderBy($sort, $order = null);
715
+
716
+    /**
717
+     * Gets a query part by its name.
718
+     *
719
+     * @param string $queryPartName
720
+     *
721
+     * @return mixed
722
+     * @since 8.2.0
723
+     */
724
+    public function getQueryPart($queryPartName);
725
+
726
+    /**
727
+     * Gets all query parts.
728
+     *
729
+     * @return array
730
+     * @since 8.2.0
731
+     */
732
+    public function getQueryParts();
733
+
734
+    /**
735
+     * Resets SQL parts.
736
+     *
737
+     * @param array|null $queryPartNames
738
+     *
739
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
740
+     * @since 8.2.0
741
+     */
742
+    public function resetQueryParts($queryPartNames = null);
743
+
744
+    /**
745
+     * Resets a single SQL part.
746
+     *
747
+     * @param string $queryPartName
748
+     *
749
+     * @return \OCP\DB\QueryBuilder\IQueryBuilder This QueryBuilder instance.
750
+     * @since 8.2.0
751
+     */
752
+    public function resetQueryPart($queryPartName);
753
+
754
+    /**
755
+     * Creates a new named parameter and bind the value $value to it.
756
+     *
757
+     * This method provides a shortcut for PDOStatement::bindValue
758
+     * when using prepared statements.
759
+     *
760
+     * The parameter $value specifies the value that you want to bind. If
761
+     * $placeholder is not provided bindValue() will automatically create a
762
+     * placeholder for you. An automatic placeholder will be of the name
763
+     * ':dcValue1', ':dcValue2' etc.
764
+     *
765
+     * For more information see {@link http://php.net/pdostatement-bindparam}
766
+     *
767
+     * Example:
768
+     * <code>
769
+     * $value = 2;
770
+     * $q->eq( 'id', $q->bindValue( $value ) );
771
+     * $stmt = $q->executeQuery(); // executed with 'id = 2'
772
+     * </code>
773
+     *
774
+     * @license New BSD License
775
+     * @link http://www.zetacomponents.org
776
+     *
777
+     * @param mixed $value
778
+     * @param mixed $type
779
+     * @param string $placeHolder The name to bind with. The string must start with a colon ':'.
780
+     *
781
+     * @return IParameter
782
+     * @since 8.2.0
783
+     */
784
+    public function createNamedParameter($value, $type = self::PARAM_STR, $placeHolder = null);
785
+
786
+    /**
787
+     * Creates a new positional parameter and bind the given value to it.
788
+     *
789
+     * Attention: If you are using positional parameters with the query builder you have
790
+     * to be very careful to bind all parameters in the order they appear in the SQL
791
+     * statement , otherwise they get bound in the wrong order which can lead to serious
792
+     * bugs in your code.
793
+     *
794
+     * Example:
795
+     * <code>
796
+     *  $qb = $conn->getQueryBuilder();
797
+     *  $qb->select('u.*')
798
+     *     ->from('users', 'u')
799
+     *     ->where('u.username = ' . $qb->createPositionalParameter('Foo', IQueryBuilder::PARAM_STR))
800
+     *     ->orWhere('u.username = ' . $qb->createPositionalParameter('Bar', IQueryBuilder::PARAM_STR))
801
+     * </code>
802
+     *
803
+     * @param mixed $value
804
+     * @param integer $type
805
+     *
806
+     * @return IParameter
807
+     * @since 8.2.0
808
+     */
809
+    public function createPositionalParameter($value, $type = self::PARAM_STR);
810
+
811
+    /**
812
+     * Creates a new parameter
813
+     *
814
+     * Example:
815
+     * <code>
816
+     *  $qb = $conn->getQueryBuilder();
817
+     *  $qb->select('u.*')
818
+     *     ->from('users', 'u')
819
+     *     ->where('u.username = ' . $qb->createParameter('name'))
820
+     *     ->setParameter('name', 'Bar', IQueryBuilder::PARAM_STR))
821
+     * </code>
822
+     *
823
+     * @param string $name
824
+     *
825
+     * @return IParameter
826
+     * @since 8.2.0
827
+     */
828
+    public function createParameter($name);
829
+
830
+    /**
831
+     * Creates a new function
832
+     *
833
+     * Attention: Column names inside the call have to be quoted before hand
834
+     *
835
+     * Example:
836
+     * <code>
837
+     *  $qb = $conn->getQueryBuilder();
838
+     *  $qb->select($qb->createFunction('COUNT(*)'))
839
+     *     ->from('users', 'u')
840
+     *  echo $qb->getSQL(); // SELECT COUNT(*) FROM `users` u
841
+     * </code>
842
+     * <code>
843
+     *  $qb = $conn->getQueryBuilder();
844
+     *  $qb->select($qb->createFunction('COUNT(`column`)'))
845
+     *     ->from('users', 'u')
846
+     *  echo $qb->getSQL(); // SELECT COUNT(`column`) FROM `users` u
847
+     * </code>
848
+     *
849
+     * @param string $call
850
+     *
851
+     * @return IQueryFunction
852
+     * @since 8.2.0
853
+     */
854
+    public function createFunction($call);
855
+
856
+    /**
857
+     * Used to get the id of the last inserted element
858
+     * @return int
859
+     * @throws \BadMethodCallException When being called before an insert query has been run.
860
+     * @since 9.0.0
861
+     */
862
+    public function getLastInsertId();
863
+
864
+    /**
865
+     * Returns the table name quoted and with database prefix as needed by the implementation
866
+     *
867
+     * @param string $table
868
+     * @return string
869
+     * @since 9.0.0
870
+     */
871
+    public function getTableName($table);
872
+
873
+    /**
874
+     * Returns the column name quoted and with table alias prefix as needed by the implementation
875
+     *
876
+     * @param string $column
877
+     * @param string $tableAlias
878
+     * @return string
879
+     * @since 9.0.0
880
+     */
881
+    public function getColumnName($column, $tableAlias = '');
882 882
 }
Please login to merge, or discard this patch.
lib/public/DB/QueryBuilder/ICompositeExpression.php 1 patch
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -28,39 +28,39 @@
 block discarded – undo
28 28
  * @since 8.2.0
29 29
  */
30 30
 interface ICompositeExpression {
31
-	/**
32
-	 * Adds multiple parts to composite expression.
33
-	 *
34
-	 * @param array $parts
35
-	 *
36
-	 * @return ICompositeExpression
37
-	 * @since 8.2.0
38
-	 */
39
-	public function addMultiple(array $parts = array());
31
+    /**
32
+     * Adds multiple parts to composite expression.
33
+     *
34
+     * @param array $parts
35
+     *
36
+     * @return ICompositeExpression
37
+     * @since 8.2.0
38
+     */
39
+    public function addMultiple(array $parts = array());
40 40
 
41
-	/**
42
-	 * Adds an expression to composite expression.
43
-	 *
44
-	 * @param mixed $part
45
-	 *
46
-	 * @return ICompositeExpression
47
-	 * @since 8.2.0
48
-	 */
49
-	public function add($part);
41
+    /**
42
+     * Adds an expression to composite expression.
43
+     *
44
+     * @param mixed $part
45
+     *
46
+     * @return ICompositeExpression
47
+     * @since 8.2.0
48
+     */
49
+    public function add($part);
50 50
 
51
-	/**
52
-	 * Retrieves the amount of expressions on composite expression.
53
-	 *
54
-	 * @return integer
55
-	 * @since 8.2.0
56
-	 */
57
-	public function count();
51
+    /**
52
+     * Retrieves the amount of expressions on composite expression.
53
+     *
54
+     * @return integer
55
+     * @since 8.2.0
56
+     */
57
+    public function count();
58 58
 
59
-	/**
60
-	 * Returns the type of this composite expression (AND/OR).
61
-	 *
62
-	 * @return string
63
-	 * @since 8.2.0
64
-	 */
65
-	public function getType();
59
+    /**
60
+     * Returns the type of this composite expression (AND/OR).
61
+     *
62
+     * @return string
63
+     * @since 8.2.0
64
+     */
65
+    public function getType();
66 66
 }
Please login to merge, or discard this patch.
lib/public/DB/QueryBuilder/IParameter.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -26,9 +26,9 @@
 block discarded – undo
26 26
  * @since 8.2.0
27 27
  */
28 28
 interface IParameter {
29
-	/**
30
-	 * @return string
31
-	 * @since 8.2.0
32
-	 */
33
-	public function __toString();
29
+    /**
30
+     * @return string
31
+     * @since 8.2.0
32
+     */
33
+    public function __toString();
34 34
 }
Please login to merge, or discard this patch.