activerecord 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activerecord might be problematic. Click here for more details.

Files changed (311) hide show
  1. data/CHANGELOG +4928 -3
  2. data/README +45 -46
  3. data/RUNNING_UNIT_TESTS +8 -11
  4. data/Rakefile +247 -0
  5. data/install.rb +8 -38
  6. data/lib/active_record/aggregations.rb +64 -49
  7. data/lib/active_record/associations/association_collection.rb +217 -47
  8. data/lib/active_record/associations/association_proxy.rb +159 -0
  9. data/lib/active_record/associations/belongs_to_association.rb +56 -0
  10. data/lib/active_record/associations/belongs_to_polymorphic_association.rb +50 -0
  11. data/lib/active_record/associations/has_and_belongs_to_many_association.rb +155 -37
  12. data/lib/active_record/associations/has_many_association.rb +145 -75
  13. data/lib/active_record/associations/has_many_through_association.rb +283 -0
  14. data/lib/active_record/associations/has_one_association.rb +96 -0
  15. data/lib/active_record/associations.rb +1537 -304
  16. data/lib/active_record/attribute_methods.rb +328 -0
  17. data/lib/active_record/base.rb +2001 -588
  18. data/lib/active_record/calculations.rb +269 -0
  19. data/lib/active_record/callbacks.rb +169 -165
  20. data/lib/active_record/connection_adapters/abstract/connection_specification.rb +308 -0
  21. data/lib/active_record/connection_adapters/abstract/database_statements.rb +171 -0
  22. data/lib/active_record/connection_adapters/abstract/query_cache.rb +87 -0
  23. data/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  24. data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +472 -0
  25. data/lib/active_record/connection_adapters/abstract/schema_statements.rb +306 -0
  26. data/lib/active_record/connection_adapters/abstract_adapter.rb +125 -279
  27. data/lib/active_record/connection_adapters/mysql_adapter.rb +442 -77
  28. data/lib/active_record/connection_adapters/postgresql_adapter.rb +805 -135
  29. data/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  30. data/lib/active_record/connection_adapters/sqlite_adapter.rb +353 -69
  31. data/lib/active_record/fixtures.rb +946 -100
  32. data/lib/active_record/locking/optimistic.rb +144 -0
  33. data/lib/active_record/locking/pessimistic.rb +77 -0
  34. data/lib/active_record/migration.rb +417 -0
  35. data/lib/active_record/observer.rb +142 -32
  36. data/lib/active_record/query_cache.rb +23 -0
  37. data/lib/active_record/reflection.rb +163 -70
  38. data/lib/active_record/schema.rb +58 -0
  39. data/lib/active_record/schema_dumper.rb +171 -0
  40. data/lib/active_record/serialization.rb +98 -0
  41. data/lib/active_record/serializers/json_serializer.rb +71 -0
  42. data/lib/active_record/serializers/xml_serializer.rb +315 -0
  43. data/lib/active_record/timestamp.rb +41 -0
  44. data/lib/active_record/transactions.rb +87 -57
  45. data/lib/active_record/validations.rb +909 -122
  46. data/lib/active_record/vendor/db2.rb +362 -0
  47. data/lib/active_record/vendor/mysql.rb +126 -29
  48. data/lib/active_record/version.rb +9 -0
  49. data/lib/active_record.rb +35 -7
  50. data/lib/activerecord.rb +1 -0
  51. data/test/aaa_create_tables_test.rb +72 -0
  52. data/test/abstract_unit.rb +73 -5
  53. data/test/active_schema_test_mysql.rb +43 -0
  54. data/test/adapter_test.rb +105 -0
  55. data/test/adapter_test_sqlserver.rb +95 -0
  56. data/test/aggregations_test.rb +110 -16
  57. data/test/all.sh +2 -2
  58. data/test/ar_schema_test.rb +33 -0
  59. data/test/association_inheritance_reload.rb +14 -0
  60. data/test/associations/ar_joins_test.rb +0 -0
  61. data/test/associations/callbacks_test.rb +147 -0
  62. data/test/associations/cascaded_eager_loading_test.rb +110 -0
  63. data/test/associations/eager_singularization_test.rb +145 -0
  64. data/test/associations/eager_test.rb +442 -0
  65. data/test/associations/extension_test.rb +47 -0
  66. data/test/associations/inner_join_association_test.rb +88 -0
  67. data/test/associations/join_model_test.rb +553 -0
  68. data/test/associations_test.rb +1930 -267
  69. data/test/attribute_methods_test.rb +146 -0
  70. data/test/base_test.rb +1316 -84
  71. data/test/binary_test.rb +32 -0
  72. data/test/calculations_test.rb +251 -0
  73. data/test/callbacks_test.rb +400 -0
  74. data/test/class_inheritable_attributes_test.rb +3 -4
  75. data/test/column_alias_test.rb +17 -0
  76. data/test/connection_test_firebird.rb +8 -0
  77. data/test/connection_test_mysql.rb +30 -0
  78. data/test/connections/native_db2/connection.rb +25 -0
  79. data/test/connections/native_firebird/connection.rb +26 -0
  80. data/test/connections/native_frontbase/connection.rb +27 -0
  81. data/test/connections/native_mysql/connection.rb +21 -18
  82. data/test/connections/native_openbase/connection.rb +21 -0
  83. data/test/connections/native_oracle/connection.rb +27 -0
  84. data/test/connections/native_postgresql/connection.rb +17 -18
  85. data/test/connections/native_sqlite/connection.rb +17 -16
  86. data/test/connections/native_sqlite3/connection.rb +25 -0
  87. data/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  88. data/test/connections/native_sybase/connection.rb +23 -0
  89. data/test/copy_table_test_sqlite.rb +69 -0
  90. data/test/datatype_test_postgresql.rb +203 -0
  91. data/test/date_time_test.rb +37 -0
  92. data/test/default_test_firebird.rb +16 -0
  93. data/test/defaults_test.rb +67 -0
  94. data/test/deprecated_finder_test.rb +30 -0
  95. data/test/finder_test.rb +607 -32
  96. data/test/fixtures/accounts.yml +28 -0
  97. data/test/fixtures/all/developers.yml +0 -0
  98. data/test/fixtures/all/people.csv +0 -0
  99. data/test/fixtures/all/tasks.yml +0 -0
  100. data/test/fixtures/author.rb +107 -0
  101. data/test/fixtures/author_favorites.yml +4 -0
  102. data/test/fixtures/authors.yml +7 -0
  103. data/test/fixtures/bad_fixtures/attr_with_numeric_first_char +1 -0
  104. data/test/fixtures/bad_fixtures/attr_with_spaces +1 -0
  105. data/test/fixtures/bad_fixtures/blank_line +3 -0
  106. data/test/fixtures/bad_fixtures/duplicate_attributes +3 -0
  107. data/test/fixtures/bad_fixtures/missing_value +1 -0
  108. data/test/fixtures/binaries.yml +132 -0
  109. data/test/fixtures/binary.rb +2 -0
  110. data/test/fixtures/book.rb +4 -0
  111. data/test/fixtures/books.yml +7 -0
  112. data/test/fixtures/categories/special_categories.yml +9 -0
  113. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  114. data/test/fixtures/categories.yml +14 -0
  115. data/test/fixtures/categories_ordered.yml +7 -0
  116. data/test/fixtures/categories_posts.yml +23 -0
  117. data/test/fixtures/categorization.rb +5 -0
  118. data/test/fixtures/categorizations.yml +17 -0
  119. data/test/fixtures/category.rb +26 -0
  120. data/test/fixtures/citation.rb +6 -0
  121. data/test/fixtures/comment.rb +23 -0
  122. data/test/fixtures/comments.yml +59 -0
  123. data/test/fixtures/companies.yml +55 -0
  124. data/test/fixtures/company.rb +81 -4
  125. data/test/fixtures/company_in_module.rb +32 -6
  126. data/test/fixtures/computer.rb +4 -0
  127. data/test/fixtures/computers.yml +4 -0
  128. data/test/fixtures/contact.rb +16 -0
  129. data/test/fixtures/courses.yml +7 -0
  130. data/test/fixtures/customer.rb +28 -3
  131. data/test/fixtures/customers.yml +17 -0
  132. data/test/fixtures/db_definitions/db2.drop.sql +33 -0
  133. data/test/fixtures/db_definitions/db2.sql +235 -0
  134. data/test/fixtures/db_definitions/db22.drop.sql +2 -0
  135. data/test/fixtures/db_definitions/db22.sql +5 -0
  136. data/test/fixtures/db_definitions/firebird.drop.sql +65 -0
  137. data/test/fixtures/db_definitions/firebird.sql +310 -0
  138. data/test/fixtures/db_definitions/firebird2.drop.sql +2 -0
  139. data/test/fixtures/db_definitions/firebird2.sql +6 -0
  140. data/test/fixtures/db_definitions/frontbase.drop.sql +33 -0
  141. data/test/fixtures/db_definitions/frontbase.sql +273 -0
  142. data/test/fixtures/db_definitions/frontbase2.drop.sql +1 -0
  143. data/test/fixtures/db_definitions/frontbase2.sql +4 -0
  144. data/test/fixtures/db_definitions/openbase.drop.sql +2 -0
  145. data/test/fixtures/db_definitions/openbase.sql +318 -0
  146. data/test/fixtures/db_definitions/openbase2.drop.sql +2 -0
  147. data/test/fixtures/db_definitions/openbase2.sql +7 -0
  148. data/test/fixtures/db_definitions/oracle.drop.sql +67 -0
  149. data/test/fixtures/db_definitions/oracle.sql +330 -0
  150. data/test/fixtures/db_definitions/oracle2.drop.sql +2 -0
  151. data/test/fixtures/db_definitions/oracle2.sql +6 -0
  152. data/test/fixtures/db_definitions/postgresql.drop.sql +44 -0
  153. data/test/fixtures/db_definitions/postgresql.sql +217 -38
  154. data/test/fixtures/db_definitions/postgresql2.drop.sql +2 -0
  155. data/test/fixtures/db_definitions/postgresql2.sql +2 -2
  156. data/test/fixtures/db_definitions/schema.rb +354 -0
  157. data/test/fixtures/db_definitions/schema2.rb +11 -0
  158. data/test/fixtures/db_definitions/sqlite.drop.sql +33 -0
  159. data/test/fixtures/db_definitions/sqlite.sql +139 -5
  160. data/test/fixtures/db_definitions/sqlite2.drop.sql +2 -0
  161. data/test/fixtures/db_definitions/sqlite2.sql +1 -0
  162. data/test/fixtures/db_definitions/sybase.drop.sql +35 -0
  163. data/test/fixtures/db_definitions/sybase.sql +222 -0
  164. data/test/fixtures/db_definitions/sybase2.drop.sql +4 -0
  165. data/test/fixtures/db_definitions/sybase2.sql +5 -0
  166. data/test/fixtures/developer.rb +70 -6
  167. data/test/fixtures/developers.yml +21 -0
  168. data/test/fixtures/developers_projects/david_action_controller +2 -1
  169. data/test/fixtures/developers_projects/david_active_record +2 -1
  170. data/test/fixtures/developers_projects.yml +17 -0
  171. data/test/fixtures/edge.rb +5 -0
  172. data/test/fixtures/edges.yml +6 -0
  173. data/test/fixtures/entrants.yml +14 -0
  174. data/test/fixtures/example.log +1 -0
  175. data/test/fixtures/fk_test_has_fk.yml +3 -0
  176. data/test/fixtures/fk_test_has_pk.yml +2 -0
  177. data/test/fixtures/flowers.jpg +0 -0
  178. data/test/fixtures/funny_jokes.yml +10 -0
  179. data/test/fixtures/item.rb +7 -0
  180. data/test/fixtures/items.yml +4 -0
  181. data/test/fixtures/joke.rb +3 -0
  182. data/test/fixtures/keyboard.rb +3 -0
  183. data/test/fixtures/legacy_thing.rb +3 -0
  184. data/test/fixtures/legacy_things.yml +3 -0
  185. data/test/fixtures/matey.rb +4 -0
  186. data/test/fixtures/mateys.yml +4 -0
  187. data/test/fixtures/migrations/1_people_have_last_names.rb +9 -0
  188. data/test/fixtures/migrations/2_we_need_reminders.rb +12 -0
  189. data/test/fixtures/migrations/3_innocent_jointable.rb +12 -0
  190. data/test/fixtures/migrations_with_decimal/1_give_me_big_numbers.rb +15 -0
  191. data/test/fixtures/migrations_with_duplicate/1_people_have_last_names.rb +9 -0
  192. data/test/fixtures/migrations_with_duplicate/2_we_need_reminders.rb +12 -0
  193. data/test/fixtures/migrations_with_duplicate/3_foo.rb +7 -0
  194. data/test/fixtures/migrations_with_duplicate/3_innocent_jointable.rb +12 -0
  195. data/test/fixtures/migrations_with_missing_versions/1000_people_have_middle_names.rb +9 -0
  196. data/test/fixtures/migrations_with_missing_versions/1_people_have_last_names.rb +9 -0
  197. data/test/fixtures/migrations_with_missing_versions/3_we_need_reminders.rb +12 -0
  198. data/test/fixtures/migrations_with_missing_versions/4_innocent_jointable.rb +12 -0
  199. data/test/fixtures/minimalistic.rb +2 -0
  200. data/test/fixtures/minimalistics.yml +2 -0
  201. data/test/fixtures/mixed_case_monkey.rb +3 -0
  202. data/test/fixtures/mixed_case_monkeys.yml +6 -0
  203. data/test/fixtures/mixins.yml +29 -0
  204. data/test/fixtures/movies.yml +7 -0
  205. data/test/fixtures/naked/csv/accounts.csv +1 -0
  206. data/test/fixtures/naked/yml/accounts.yml +1 -0
  207. data/test/fixtures/naked/yml/companies.yml +1 -0
  208. data/test/fixtures/naked/yml/courses.yml +1 -0
  209. data/test/fixtures/order.rb +4 -0
  210. data/test/fixtures/parrot.rb +13 -0
  211. data/test/fixtures/parrots.yml +27 -0
  212. data/test/fixtures/parrots_pirates.yml +7 -0
  213. data/test/fixtures/people.yml +3 -0
  214. data/test/fixtures/person.rb +4 -0
  215. data/test/fixtures/pirate.rb +5 -0
  216. data/test/fixtures/pirates.yml +9 -0
  217. data/test/fixtures/post.rb +59 -0
  218. data/test/fixtures/posts.yml +48 -0
  219. data/test/fixtures/project.rb +27 -2
  220. data/test/fixtures/projects.yml +7 -0
  221. data/test/fixtures/reader.rb +4 -0
  222. data/test/fixtures/readers.yml +4 -0
  223. data/test/fixtures/reply.rb +18 -2
  224. data/test/fixtures/reserved_words/distinct.yml +5 -0
  225. data/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  226. data/test/fixtures/reserved_words/group.yml +14 -0
  227. data/test/fixtures/reserved_words/select.yml +8 -0
  228. data/test/fixtures/reserved_words/values.yml +7 -0
  229. data/test/fixtures/ship.rb +3 -0
  230. data/test/fixtures/ships.yml +5 -0
  231. data/test/fixtures/subject.rb +4 -0
  232. data/test/fixtures/subscriber.rb +4 -3
  233. data/test/fixtures/tag.rb +7 -0
  234. data/test/fixtures/tagging.rb +10 -0
  235. data/test/fixtures/taggings.yml +25 -0
  236. data/test/fixtures/tags.yml +7 -0
  237. data/test/fixtures/task.rb +3 -0
  238. data/test/fixtures/tasks.yml +7 -0
  239. data/test/fixtures/topic.rb +20 -3
  240. data/test/fixtures/topics.yml +22 -0
  241. data/test/fixtures/treasure.rb +4 -0
  242. data/test/fixtures/treasures.yml +10 -0
  243. data/test/fixtures/vertex.rb +9 -0
  244. data/test/fixtures/vertices.yml +4 -0
  245. data/test/fixtures_test.rb +574 -8
  246. data/test/inheritance_test.rb +113 -27
  247. data/test/json_serialization_test.rb +180 -0
  248. data/test/lifecycle_test.rb +56 -29
  249. data/test/locking_test.rb +273 -0
  250. data/test/method_scoping_test.rb +416 -0
  251. data/test/migration_test.rb +933 -0
  252. data/test/migration_test_firebird.rb +124 -0
  253. data/test/mixin_test.rb +95 -0
  254. data/test/modules_test.rb +23 -10
  255. data/test/multiple_db_test.rb +17 -3
  256. data/test/pk_test.rb +59 -15
  257. data/test/query_cache_test.rb +104 -0
  258. data/test/readonly_test.rb +107 -0
  259. data/test/reflection_test.rb +124 -27
  260. data/test/reserved_word_test_mysql.rb +177 -0
  261. data/test/schema_authorization_test_postgresql.rb +75 -0
  262. data/test/schema_dumper_test.rb +131 -0
  263. data/test/schema_test_postgresql.rb +64 -0
  264. data/test/serialization_test.rb +47 -0
  265. data/test/synonym_test_oracle.rb +17 -0
  266. data/test/table_name_test_sqlserver.rb +23 -0
  267. data/test/threaded_connections_test.rb +48 -0
  268. data/test/transactions_test.rb +227 -29
  269. data/test/unconnected_test.rb +14 -6
  270. data/test/validations_test.rb +1293 -32
  271. data/test/xml_serialization_test.rb +202 -0
  272. metadata +347 -143
  273. data/dev-utils/eval_debugger.rb +0 -9
  274. data/examples/associations.rb +0 -87
  275. data/examples/shared_setup.rb +0 -15
  276. data/examples/validation.rb +0 -88
  277. data/lib/active_record/deprecated_associations.rb +0 -70
  278. data/lib/active_record/support/class_attribute_accessors.rb +0 -43
  279. data/lib/active_record/support/class_inheritable_attributes.rb +0 -37
  280. data/lib/active_record/support/clean_logger.rb +0 -10
  281. data/lib/active_record/support/inflector.rb +0 -70
  282. data/lib/active_record/vendor/simple.rb +0 -702
  283. data/lib/active_record/wrappers/yaml_wrapper.rb +0 -15
  284. data/lib/active_record/wrappings.rb +0 -59
  285. data/rakefile +0 -122
  286. data/test/deprecated_associations_test.rb +0 -336
  287. data/test/fixtures/accounts/signals37 +0 -3
  288. data/test/fixtures/accounts/unknown +0 -2
  289. data/test/fixtures/companies/first_client +0 -6
  290. data/test/fixtures/companies/first_firm +0 -4
  291. data/test/fixtures/companies/second_client +0 -6
  292. data/test/fixtures/courses/java +0 -2
  293. data/test/fixtures/courses/ruby +0 -2
  294. data/test/fixtures/customers/david +0 -6
  295. data/test/fixtures/db_definitions/mysql.sql +0 -96
  296. data/test/fixtures/db_definitions/mysql2.sql +0 -4
  297. data/test/fixtures/developers/david +0 -2
  298. data/test/fixtures/developers/jamis +0 -2
  299. data/test/fixtures/entrants/first +0 -3
  300. data/test/fixtures/entrants/second +0 -3
  301. data/test/fixtures/entrants/third +0 -3
  302. data/test/fixtures/fixture_database.sqlite +0 -0
  303. data/test/fixtures/fixture_database_2.sqlite +0 -0
  304. data/test/fixtures/movies/first +0 -2
  305. data/test/fixtures/movies/second +0 -2
  306. data/test/fixtures/projects/action_controller +0 -2
  307. data/test/fixtures/projects/active_record +0 -2
  308. data/test/fixtures/topics/first +0 -9
  309. data/test/fixtures/topics/second +0 -8
  310. data/test/inflector_test.rb +0 -104
  311. data/test/thread_safety_test.rb +0 -33
@@ -0,0 +1,2 @@
1
+ drop table courses;
2
+ drop sequence courses_seq;
@@ -0,0 +1,6 @@
1
+ create table courses (
2
+ id int not null primary key,
3
+ name varchar(255) not null
4
+ );
5
+
6
+ create sequence courses_seq minvalue 10000;
@@ -0,0 +1,44 @@
1
+ DROP TABLE accounts;
2
+ DROP SEQUENCE accounts_id_seq;
3
+ DROP TABLE funny_jokes;
4
+ DROP TABLE companies;
5
+ DROP SEQUENCE companies_nonstd_seq;
6
+ DROP TABLE topics;
7
+ DROP TABLE developers;
8
+ DROP TABLE projects;
9
+ DROP TABLE developers_projects;
10
+ DROP TABLE customers;
11
+ DROP TABLE orders;
12
+ DROP TABLE movies;
13
+ DROP TABLE subscribers;
14
+ DROP TABLE booleantests;
15
+ DROP TABLE auto_id_tests;
16
+ DROP TABLE entrants;
17
+ DROP TABLE colnametests;
18
+ DROP TABLE mixins;
19
+ DROP TABLE people;
20
+ DROP TABLE readers;
21
+ DROP TABLE binaries;
22
+ DROP TABLE computers;
23
+ DROP TABLE posts;
24
+ DROP TABLE comments;
25
+ DROP TABLE authors;
26
+ DROP TABLE tasks;
27
+ DROP TABLE categories;
28
+ DROP TABLE categories_posts;
29
+ DROP TABLE defaults;
30
+ DROP TABLE fk_test_has_fk;
31
+ DROP TABLE fk_test_has_pk;
32
+ DROP TABLE geometrics;
33
+ DROP TABLE keyboards;
34
+ DROP TABLE legacy_things;
35
+ DROP TABLE numeric_data;
36
+ DROP TABLE column_data;
37
+ DROP TABLE mixed_case_monkeys;
38
+ DROP TABLE postgresql_arrays;
39
+ DROP TABLE postgresql_moneys;
40
+ DROP TABLE postgresql_numbers;
41
+ DROP TABLE postgresql_times;
42
+ DROP TABLE postgresql_network_addresses;
43
+ DROP TABLE postgresql_bit_strings;
44
+ DROP TABLE postgresql_oids;
@@ -1,113 +1,292 @@
1
- SET search_path = public, pg_catalog;
1
+ CREATE SEQUENCE public.accounts_id_seq START 100;
2
2
 
3
3
  CREATE TABLE accounts (
4
- id serial,
4
+ id integer primary key DEFAULT nextval('public.accounts_id_seq'),
5
5
  firm_id integer,
6
- credit_limit integer,
7
- PRIMARY KEY (id)
6
+ credit_limit integer
8
7
  );
9
- SELECT setval('accounts_id_seq', 100);
8
+
9
+ CREATE TABLE funny_jokes (
10
+ id serial,
11
+ name character varying(50)
12
+ );
13
+
14
+ CREATE SEQUENCE companies_nonstd_seq START 101;
10
15
 
11
16
  CREATE TABLE companies (
12
- id serial,
17
+ id integer primary key DEFAULT nextval('companies_nonstd_seq'),
13
18
  "type" character varying(50),
14
19
  "ruby_type" character varying(50),
15
20
  firm_id integer,
16
21
  name character varying(50),
17
22
  client_of integer,
18
- rating integer default 1,
19
- PRIMARY KEY (id)
23
+ rating integer default 1
20
24
  );
21
- SELECT setval('companies_id_seq', 100);
22
25
 
23
26
  CREATE TABLE developers_projects (
24
27
  developer_id integer NOT NULL,
25
- project_id integer NOT NULL
28
+ project_id integer NOT NULL,
29
+ joined_on date,
30
+ access_level integer default 1
26
31
  );
27
32
 
28
33
  CREATE TABLE developers (
29
- id serial,
34
+ id serial primary key,
30
35
  name character varying(100),
31
- PRIMARY KEY (id)
36
+ salary integer DEFAULT 70000,
37
+ created_at timestamp,
38
+ updated_at timestamp
32
39
  );
33
40
  SELECT setval('developers_id_seq', 100);
34
41
 
35
42
  CREATE TABLE projects (
36
- id serial,
43
+ id serial primary key,
37
44
  name character varying(100),
38
- PRIMARY KEY (id)
45
+ type varchar(255)
39
46
  );
40
47
  SELECT setval('projects_id_seq', 100);
41
48
 
42
49
  CREATE TABLE topics (
43
- id serial,
50
+ id serial primary key,
44
51
  title character varying(255),
45
52
  author_name character varying(255),
46
53
  author_email_address character varying(255),
47
54
  written_on timestamp without time zone,
55
+ bonus_time time,
48
56
  last_read date,
49
57
  content text,
58
+ approved boolean default true,
50
59
  replies_count integer default 0,
51
60
  parent_id integer,
52
- "type" character varying(50),
53
- approved smallint DEFAULT 1,
54
- PRIMARY KEY (id)
61
+ "type" character varying(50)
55
62
  );
56
63
  SELECT setval('topics_id_seq', 100);
57
64
 
58
65
  CREATE TABLE customers (
59
- id serial,
66
+ id serial primary key,
60
67
  name character varying,
61
68
  balance integer default 0,
62
69
  address_street character varying,
63
70
  address_city character varying,
64
71
  address_country character varying,
65
- PRIMARY KEY (id)
72
+ gps_location character varying
66
73
  );
67
74
  SELECT setval('customers_id_seq', 100);
68
75
 
76
+ CREATE TABLE orders (
77
+ id serial primary key,
78
+ name character varying,
79
+ billing_customer_id integer,
80
+ shipping_customer_id integer
81
+ );
82
+ SELECT setval('orders_id_seq', 100);
83
+
69
84
  CREATE TABLE movies (
70
- movieid serial,
71
- name text,
72
- PRIMARY KEY (movieid)
85
+ movieid serial primary key,
86
+ name text
73
87
  );
74
88
 
75
89
  CREATE TABLE subscribers (
76
- nick text NOT NULL,
77
- name text,
78
- PRIMARY KEY (nick)
90
+ nick text primary key NOT NULL,
91
+ name text
79
92
  );
80
93
 
81
94
  CREATE TABLE booleantests (
82
- id serial,
83
- value boolean,
84
- PRIMARY KEY (id)
95
+ id serial primary key,
96
+ value boolean
85
97
  );
86
98
 
87
99
  CREATE TABLE defaults (
88
- id serial,
100
+ id serial primary key,
89
101
  modified_date date default CURRENT_DATE,
102
+ modified_date_function date default now(),
90
103
  fixed_date date default '2004-01-01',
91
104
  modified_time timestamp default CURRENT_TIMESTAMP,
105
+ modified_time_function timestamp default now(),
92
106
  fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
93
107
  char1 char(1) default 'Y',
94
108
  char2 character varying(50) default 'a varchar field',
95
- char3 text default 'a text field'
109
+ char3 text default 'a text field',
110
+ positive_integer integer default 1,
111
+ negative_integer integer default -1,
112
+ decimal_number decimal(3,2) default 2.78,
113
+ multiline_default text DEFAULT E'--- []\n\n'::text
96
114
  );
97
115
 
98
116
  CREATE TABLE auto_id_tests (
99
- auto_id serial,
100
- value integer,
101
- PRIMARY KEY (auto_id)
117
+ auto_id serial primary key,
118
+ value integer
102
119
  );
103
120
 
104
121
  CREATE TABLE entrants (
105
- id serial,
106
- name text,
107
- course_id integer
122
+ id serial primary key,
123
+ name text not null,
124
+ course_id integer not null
108
125
  );
109
126
 
110
127
  CREATE TABLE colnametests (
111
- id serial,
128
+ id serial primary key,
112
129
  "references" integer NOT NULL
113
130
  );
131
+
132
+ CREATE TABLE mixins (
133
+ id serial primary key,
134
+ parent_id integer,
135
+ type character varying,
136
+ pos integer,
137
+ lft integer,
138
+ rgt integer,
139
+ root_id integer,
140
+ created_at timestamp,
141
+ updated_at timestamp
142
+ );
143
+
144
+ CREATE TABLE people (
145
+ id serial primary key,
146
+ first_name text,
147
+ lock_version integer default 0
148
+ );
149
+
150
+ CREATE TABLE readers (
151
+ id serial primary key,
152
+ post_id integer NOT NULL,
153
+ person_id integer NOT NULL
154
+ );
155
+
156
+ CREATE TABLE binaries (
157
+ id serial primary key,
158
+ data bytea
159
+ );
160
+
161
+ CREATE TABLE computers (
162
+ id serial primary key,
163
+ developer integer NOT NULL,
164
+ "extendedWarranty" integer NOT NULL
165
+ );
166
+
167
+ CREATE TABLE posts (
168
+ id serial primary key,
169
+ author_id integer,
170
+ title varchar(255),
171
+ type varchar(255),
172
+ body text
173
+ );
174
+
175
+ CREATE TABLE comments (
176
+ id serial primary key,
177
+ post_id integer,
178
+ type varchar(255),
179
+ body text
180
+ );
181
+
182
+ CREATE TABLE authors (
183
+ id serial primary key,
184
+ name varchar(255) default NULL
185
+ );
186
+
187
+ CREATE TABLE tasks (
188
+ id serial primary key,
189
+ starting timestamp,
190
+ ending timestamp
191
+ );
192
+
193
+ CREATE TABLE categories (
194
+ id serial primary key,
195
+ name varchar(255),
196
+ type varchar(255)
197
+ );
198
+
199
+ CREATE TABLE categories_posts (
200
+ category_id integer NOT NULL,
201
+ post_id integer NOT NULL
202
+ );
203
+
204
+ CREATE TABLE fk_test_has_pk (
205
+ id INTEGER NOT NULL PRIMARY KEY
206
+ );
207
+
208
+ CREATE TABLE fk_test_has_fk (
209
+ id INTEGER NOT NULL PRIMARY KEY,
210
+ fk_id INTEGER NOT NULL REFERENCES fk_test_has_fk(id)
211
+ );
212
+
213
+ CREATE TABLE geometrics (
214
+ id serial primary key,
215
+ a_point point,
216
+ -- a_line line, (the line type is currently not implemented in postgresql)
217
+ a_line_segment lseg,
218
+ a_box box,
219
+ a_path path,
220
+ a_polygon polygon,
221
+ a_circle circle
222
+ );
223
+
224
+ CREATE TABLE keyboards (
225
+ key_number serial primary key,
226
+ "name" character varying(50)
227
+ );
228
+
229
+ --Altered lock_version column name.
230
+ CREATE TABLE legacy_things (
231
+ id serial primary key,
232
+ tps_report_number integer,
233
+ version integer default 0
234
+ );
235
+
236
+ CREATE TABLE numeric_data (
237
+ id serial primary key,
238
+ bank_balance decimal(10,2),
239
+ big_bank_balance decimal(15,2),
240
+ world_population decimal(10),
241
+ my_house_population decimal(2),
242
+ decimal_number_with_default decimal(3,2) default 2.78
243
+ );
244
+
245
+ CREATE TABLE mixed_case_monkeys (
246
+ "monkeyID" INTEGER PRIMARY KEY,
247
+ "fleaCount" INTEGER
248
+ );
249
+
250
+ CREATE TABLE postgresql_arrays (
251
+ id SERIAL PRIMARY KEY,
252
+ commission_by_quarter INTEGER[],
253
+ nicknames TEXT[]
254
+ );
255
+
256
+ CREATE TABLE postgresql_moneys (
257
+ id SERIAL PRIMARY KEY,
258
+ wealth MONEY
259
+ );
260
+
261
+ CREATE TABLE postgresql_numbers (
262
+ id SERIAL PRIMARY KEY,
263
+ single REAL,
264
+ double DOUBLE PRECISION
265
+ );
266
+
267
+ CREATE TABLE postgresql_times (
268
+ id SERIAL PRIMARY KEY,
269
+ time_interval INTERVAL
270
+ );
271
+
272
+ CREATE TABLE postgresql_network_addresses (
273
+ id SERIAL PRIMARY KEY,
274
+ cidr_address CIDR,
275
+ inet_address INET,
276
+ mac_address MACADDR
277
+ );
278
+
279
+ CREATE TABLE postgresql_bit_strings (
280
+ id SERIAL PRIMARY KEY,
281
+ bit_string BIT(8),
282
+ bit_string_varying BIT VARYING(8)
283
+ );
284
+
285
+ CREATE TABLE postgresql_oids (
286
+ id SERIAL PRIMARY KEY,
287
+ obj_id OID
288
+ );
289
+
290
+ CREATE TABLE minimalistics (
291
+ id serial primary key
292
+ );
@@ -0,0 +1,2 @@
1
+ DROP TABLE courses;
2
+
@@ -1,4 +1,4 @@
1
1
  CREATE TABLE courses (
2
- id serial,
2
+ id serial primary key,
3
3
  name text
4
- );
4
+ );