Code Duplication    Length = 22-22 lines in 2 locations

src/Query/Grammar.php 2 locations

@@ 84-105 (lines=22) @@
81
    /**
82
     * {@inheritdoc}
83
     */
84
    public function compileInsert(Builder $query, array $values)
85
    {
86
        // keyspace-ref:
87
        $table = $this->wrapTable($query->from);
88
        // use-keys-clause:
89
        $keyClause = $this->wrapKey($query->key);
90
        // returning-clause
91
        $returning = implode(', ', $query->returning);
92
93
        if (!is_array(reset($values))) {
94
            $values = [$values];
95
        }
96
        $parameters = [];
97
98
        foreach ($values as $record) {
99
            $parameters[] = '('.$this->parameterize($record).')';
100
        }
101
        $parameters = (!$keyClause) ? implode(', ', $parameters) : "({$keyClause}, \$parameters)";
102
        $keyValue = (!$keyClause) ? null : '(KEY, VALUE)';
103
104
        return "insert into {$table} {$keyValue} values $parameters RETURNING {$returning}";
105
    }
106
107
    /**
108
     * {@inheritdoc}
@@ 131-152 (lines=22) @@
128
     *
129
     * @return string
130
     */
131
    public function compileUpsert(QueryBuilder $query, array $values)
132
    {
133
        // keyspace-ref:
134
        $table = $this->wrapTable($query->from);
135
        // use-keys-clause:
136
        $keyClause = $this->wrapKey($query->key);
137
        // returning-clause
138
        $returning = implode(', ', $query->returning);
139
140
        if (!is_array(reset($values))) {
141
            $values = [$values];
142
        }
143
        $parameters = [];
144
145
        foreach ($values as $record) {
146
            $parameters[] = '('.$this->parameterize($record).')';
147
        }
148
        $parameters = (!$keyClause) ? implode(', ', $parameters) : "({$keyClause}, \$parameters)";
149
        $keyValue = (!$keyClause) ? null : '(KEY, VALUE)';
150
151
        return "UPSERT INTO {$table} {$keyValue} VALUES $parameters RETURNING {$returning}";
152
    }
153
}
154