aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
Commit message (Collapse)AuthorAgeFilesLines
* Fix some typos in comments.Joe Rafaniello2016-05-041-1/+1
| | | | [ci skip]
* Add `:nodoc:` to `schema_creation` [ci skip]Ryuta Kamizono2016-05-021-1/+1
| | | | | | | `schema_creation` is not public API. https://github.com/rails/rails/blob/v5.0.0.beta4/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb#L121 https://github.com/rails/rails/blob/v5.0.0.beta4/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L78
* Extract `add_sql_comment!` methodRyuta Kamizono2016-04-292-17/+10
| | | | | | Refactor of #22911. Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Treat blank comments as no comment for indexesRyuta Kamizono2016-04-292-5/+1
| | | | | | Follow up of 1683410. Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Merge pull request #24730 from vipulnsward/move-savepointsRafael França2016-04-252-4/+4
|\ | | | | Move remaining current_savepoint_name to savepoints module
| * Move remaining current_savepoint_name to savepoints moduleVipul A M2016-04-252-4/+4
| |
* | Dont simply assume a type is a valid database type. This is only always true ↵Vipul A M2016-04-252-1/+5
|/ | | | | | | in the case of sqlite. Others adapters need to perform a check for validity. Add coverage for mysql2 db type validation
* Add Expression Indexes and Operator Classes support for PostgreSQLRyuta Kamizono2016-04-244-18/+46
| | | | | | | | | | | | | | | | Example: create_table :users do |t| t.string :name t.index 'lower(name) varchar_pattern_ops' end Fixes #19090. Fixes #21765. Fixes #21819. Fixes #24359. Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* remove_index do not fetch indexes if name is specifiedSeva Orlov2016-04-241-1/+7
| | | | | | There is no need to fetch all table indexes in remove_index if name is specified. If name is wrong, then StatementInvalid will be raised. Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Follow up of #23461Vipul A M2016-04-244-6/+8
| | | | | | | | - Rename max to statement_limit - Remove magic number 1000 from everywhere - Defined StatementPool::DEFAULT_STATEMENT_LIMIT and started using it everywhere Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
* Include the Savepoints module in all adapters.Vipul A M2016-04-247-17/+10
| | | | | Adapters override `#supports_savepoints?` to return `true` if they support transaction savepoints. Defaults to `false`.
* :nodoc: internal StatementPool class.Vipul A M2016-04-241-1/+1
| | | | [ci skip]
* Merge pull request #23461 from kamipo/prepared_statements_for_mysql2_adapterJeremy Daer2016-04-233-55/+153
|\ | | | | | | Add prepared statements support for `Mysql2Adapter`
| * Add prepared statements support for `Mysql2Adapter`Ryuta Kamizono2016-04-213-56/+155
| |
* | Merge pull request #24708 from ↵Jeremy Daer2016-04-232-5/+1
|\ \ | | | | | | | | | | | | | | | kamipo/move_select_rows_implementation_to_super_class Move `select_rows` implementation to super class
| * | Move `select_rows` implementation to super classRyuta Kamizono2016-04-242-5/+1
| | |
* | | Merge pull request #24705 from kamipo/add_nodoc_to_insert_versions_sqlGuillermo Iguaran2016-04-232-2/+2
|\ \ \ | | | | | | | | Add `:nodoc:` to `insert_versions_sql` [ci skip]
| * | | Add `:nodoc:` to `insert_versions_sql` [ci skip]Ryuta Kamizono2016-04-242-2/+2
| |/ / | | | | | | | | | Follow up to #24685. `insert_versions_sql` is not public API.
* | | Merge pull request #24706 from kamipo/remove_in_doc_about_mysql_versions_below_5Guillermo Iguaran2016-04-231-3/+1
|\ \ \ | | | | | | | | Remove in the doc about MySQL versions below 5 [ci skip]
| * | | Remove in the doc about MySQL versions below 5 [ci skip]Ryuta Kamizono2016-04-241-3/+1
| |/ / | | | | | | | | | | | | Follow up to #23458. Active Record supports MySQL >= 5.0 now.
* / / Move `require 'ipaddr'` in `postgresql/oid/cidr.rb`Ryuta Kamizono2016-04-242-2/+2
|/ / | | | | | | `IPAddr` is used in `OID::Cidr`.
* | Schema load: Fix dupe version insertJeremy Daer2016-04-221-1/+1
| | | | | | | | Re. 6e098284e97250eaed6f30f5c7c362d87da986b0
* | https://github.com/rails/rails/commit/42dd2336b31a8d98776d039a2b9fd7f834156a ↵Vipul A M2016-04-233-4/+25
| | | | | | | | | | | | | | | | | | 78 changed INSERT INTO versions to run in 1 single query. This breaks for sqlite versions < 3.7.11, which is especially the case on Ubuntu 12.04 LTS, that has SQLite version 3.7.9 as default. So we check for support for multi insert, before performing single query inserts, else fallback to older version of running multiple queries. [Vipul A M & Yasuo Honda]
* | Revert "add doc for `:type` option of `#create_join_table` [ci skip]"प्रथमेश Sonpatki2016-04-211-2/+0
| |
* | add doc for `:type` option of `#create_join_table` [ci skip]yuuji.yaginuma2016-04-211-0/+2
|/ | | | Follow up to #24221.
* Merge pull request #24221 from gregmolnar/uuidKasper Timm Hansen2016-04-201-2/+3
|\ | | | | create_join_table should work with uuid
| * add column type option to create_join_table to support uuidGreg Molnar2016-03-171-2/+3
| |
* | `undef_method` is not neededRyuta Kamizono2016-04-191-2/+3
| |
* | Fix `test_blank_columns_created_in_block`Ryuta Kamizono2016-04-201-1/+1
| | | | | | | | Follow up to 1683410.
* | Database comments: Treat blank comments as no comment. Don't dump blank ↵Jeremy Daer2016-04-191-1/+1
| | | | | | | | comments.
* | Define `arel_visitor` method on all adaptersRyuta Kamizono2016-04-204-1/+13
| | | | | | | | `Arel::Visitors::VISITORS` was removed at https://github.com/rails/arel/pull/412.
* | Merge pull request #24317 from Gaurav2728/unused_set_in_active_recordJeremy Daer2016-04-191-2/+0
|\ \ | | | | | | | | | connection adapters column, delegation in Active Record have not use …
| * | connection adapters column, delegation in Active Record have not use of ↵Gaurav Sharma2016-03-311-2/+0
| | | | | | | | | | | | | | | ‘set’ found these commits https://github.com/rails/rails/commit/9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6, https://github.com/rails/rails/commit/9d79334a1dee67e31222c790e231772deafcaeb8 that also should remove it.
* | | Merge pull request #23497 from kamipo/extract_schema_qualified_nameJeremy Daer2016-04-191-8/+15
|\ \ \ | | | | | | | | | | | | Extract `extract_schema_qualified_name` method
| * | | Extract `extract_schema_qualified_name` methodRyuta Kamizono2016-02-051-8/+15
| | | |
* | | | Merge pull request #23515 from kamipo/extract_arel_visitorJeremy Daer2016-04-194-28/+12
|\ \ \ \ | | | | | | | | | | | | | | | Extract `arel_visitor` and move up to the abstract adapter
| * | | | Extract `arel_visitor` and move up to the abstract adapterRyuta Kamizono2016-04-044-28/+12
| | | | |
* | | | | Merge pull request #23522 from kamipo/add_value_too_long_exception_classJeremy Daer2016-04-182-0/+5
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Add `ActiveRecord::ValueTooLong` exception class
| * | | | | Add `ActiveRecord::ValueTooLong` exception classRyuta Kamizono2016-02-062-0/+5
| | |/ / / | |/| | |
* | | | | `foreign_key` respects `table_name_prefix` and `table_name_suffix`Ryuta Kamizono2016-04-191-0/+3
| | | | |
* | | | | Merge pull request #23622 from kamipo/primary_key_should_be_not_nullJeremy Daer2016-04-184-3/+10
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Primary key should be `NOT NULL`
| * | | | | Primary key should be `NOT NULL`Ryuta Kamizono2016-03-124-3/+10
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up to #18228. In MySQL and PostgreSQL, primary key is to be `NOT NULL` implicitly. But in SQLite it must be specified `NOT NULL` explicitly.
* | | | | Database comments: switch to keyword args for new table optionsJeremy Daer2016-04-189-64/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switch to keyword args where we can without breaking compat. * Use add_table_options! for :options, too. * Some code polish.
* | | | | Merge pull request #22911 from Envek/database_commentsJeremy Daer2016-04-1611-37/+166
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Add support for specifying comments for tables, columns, and indexes in database itself
| * | | | | Add support for specifying comments for tables, columns, and indexes.Andrey Novikov2016-04-1611-37/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Comments are specified in migrations, stored in database itself (in its schema), and dumped into db/schema.rb file. This allows to generate good documentation and explain columns and tables' purpose to everyone from new developers to database administrators. For PostgreSQL and MySQL only. SQLite does not support comments at the moment. See docs for PostgreSQL: http://www.postgresql.org/docs/current/static/sql-comment.html See docs for MySQL: http://dev.mysql.com/doc/refman/5.7/en/create-table.html
* | | | | | documentation for add_references index option [ci skip]Vipul A M2016-04-171-1/+10
|\ \ \ \ \ \ | |/ / / / / |/| | | | | documentation for add_references index option [ci skip]
| * | | | | [ci skip] docs for add_references index optionAlex Handley2016-04-161-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add link for finding the addional options for index. - Add example for unique index as this is a common requirement. - Add link in guide for index options.
* | | | | | Should keep quoting behaivor of a time column value in sqlite3 adapterRyuta Kamizono2016-04-151-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up to #24542. In MySQL and PostgreSQL, a time column value is saved as ignored the date part of it. But in SQLite3, a time column value is saved as a string. We should keep previous quoting behavior in sqlite3 adapter. ``` sqlite> CREATE TABLE "foos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "start" time(0), "finish" time(4)); sqlite> INSERT INTO "foos" ("start", "finish") VALUES ('2000-01-01 12:30:00', '2000-01-01 12:30:00.999900'); sqlite> SELECT "foos".* FROM "foos"; 1|2000-01-01 12:30:00|2000-01-01 12:30:00.999900 sqlite> SELECT "foos".* FROM "foos" WHERE "foos"."start" = '2000-01-01 12:30:00' LIMIT 1; 1|2000-01-01 12:30:00|2000-01-01 12:30:00.999900 sqlite> SELECT "foos".* FROM "foos" WHERE "foos"."start" = '12:30:00' LIMIT 1; sqlite> ```
* | | | | | Add `quoted_time` for truncating the date part of a time column valueRyuta Kamizono2016-04-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Context #24522. TIME column on MariaDB doesn't ignore the date part of the string when it coerces to time. ``` root@localhost [test] > CREATE TABLE `foos` (`id` int AUTO_INCREMENT PRIMARY KEY, `start` time(0), `finish` time(4)) ENGINE=InnoDB; Query OK, 0 rows affected (0.02 sec) root@localhost [test] > INSERT INTO `foos` (`start`, `finish`) VALUES ('2000-01-01 12:30:00', '2000-01-01 12:30:00.999900'); Query OK, 1 row affected, 2 warnings (0.00 sec) Note (Code 1265): Data truncated for column 'start' at row 1 Note (Code 1265): Data truncated for column 'finish' at row 1 root@localhost [test] > SELECT `foos`.* FROM `foos`; +----+----------+---------------+ | id | start | finish | +----+----------+---------------+ | 1 | 12:30:00 | 12:30:00.9999 | +----+----------+---------------+ 1 row in set (0.00 sec) root@localhost [test] > SELECT `foos`.* FROM `foos` WHERE `foos`.`start` = '2000-01-01 12:30:00' LIMIT 1; Empty set (0.00 sec) root@localhost [test] > SELECT `foos`.* FROM `foos` WHERE `foos`.`start` = '12:30:00' LIMIT 1; +----+----------+---------------+ | id | start | finish | +----+----------+---------------+ | 1 | 12:30:00 | 12:30:00.9999 | +----+----------+---------------+ 1 row in set (0.00 sec) ```
* | | | | | Merge pull request #24522 from vipulnsward/run-mariadb-on-travisJeremy Daer2016-04-131-4/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | Test against MariaDB 10.0