Browse Source

It turns out that SQLite 3.7.11+ implements multi-inserts!

Version 3.8 is the minimum sqlite version fro php 5.5
Jose Lorenzo Rodriguez 10 years ago
parent
commit
3cbb89cefb
1 changed files with 0 additions and 53 deletions
  1. 0 53
      src/Database/Dialect/SqliteDialectTrait.php

+ 0 - 53
src/Database/Dialect/SqliteDialectTrait.php

@@ -150,59 +150,6 @@ trait SqliteDialectTrait
     }
 
     /**
-     * Transforms an insert query that is meant to insert multiple rows at a time,
-     * otherwise it leaves the query untouched.
-     *
-     * The way SQLite works with multi insert is by having multiple select statements
-     * joined with UNION.
-     *
-     * @param \Cake\Database\Query $query The query to translate
-     * @return \Cake\Database\Query
-     */
-    protected function _insertQueryTranslator($query)
-    {
-        $v = $query->clause('values');
-        if (count($v->values()) === 1 || $v->query()) {
-            return $query;
-        }
-
-        $newQuery = $query->connection()->newQuery();
-        $cols = $v->columns();
-        $placeholder = 0;
-        $replaceQuery = false;
-
-        foreach ($v->values() as $k => $val) {
-            $fillLength = count($cols) - count($val);
-            if ($fillLength > 0) {
-                $val = array_merge($val, array_fill(0, $fillLength, null));
-            }
-
-            foreach ($val as $col => $attr) {
-                if (!($attr instanceof ExpressionInterface)) {
-                    $val[$col] = sprintf(':c%d', $placeholder);
-                    $placeholder++;
-                }
-            }
-
-            $select = array_combine($cols, $val);
-            if ($k === 0) {
-                $replaceQuery = true;
-                $newQuery->select($select);
-                continue;
-            }
-
-            $q = $newQuery->connection()->newQuery();
-            $newQuery->unionAll($q->select($select));
-        }
-
-        if ($replaceQuery) {
-            $v->query($newQuery);
-        }
-
-        return $query;
-    }
-
-    /**
      * Get the schema dialect.
      *
      * Used by Cake\Database\Schema package to reflect schema and