Code Duplication    Length = 10-10 lines in 3 locations

source/Spiral/Database/Builders/Prototypes/AbstractSelect.php 3 locations

@@ 146-155 (lines=10) @@
143
     *
144
     * @throws BuilderException
145
     */
146
    public function having(
147
        $identifier,
148
        $variousA = null,
149
        $variousB = null,
150
        $variousC = null
151
    ): AbstractSelect {
152
        $this->whereToken('AND', func_get_args(), $this->havingTokens, $this->havingWrapper());
153
154
        return $this;
155
    }
156
157
    /**
158
     * Simple AND HAVING condition with various set of arguments.
@@ 171-180 (lines=10) @@
168
     *
169
     * @throws BuilderException
170
     */
171
    public function andHaving(
172
        $identifier,
173
        $variousA = null,
174
        $variousB = null,
175
        $variousC = null
176
    ): AbstractSelect {
177
        $this->whereToken('AND', func_get_args(), $this->havingTokens, $this->havingWrapper());
178
179
        return $this;
180
    }
181
182
    /**
183
     * Simple OR HAVING condition with various set of arguments.
@@ 196-205 (lines=10) @@
193
     *
194
     * @throws BuilderException
195
     */
196
    public function orHaving(
197
        $identifier,
198
        $variousA = [],
199
        $variousB = null,
200
        $variousC = null
201
    ): AbstractSelect {
202
        $this->whereToken('OR', func_get_args(), $this->havingTokens, $this->havingWrapper());
203
204
        return $this;
205
    }
206
207
    /**
208
     * Sort result by column/expression. You can apply multiple sortings to query via calling method