lore 0.4.8 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. data/Manifest.txt +16 -7
  2. data/README.rdoc +91 -0
  3. data/benchmark/benchmark.sql +11 -0
  4. data/benchmark/results.txt +28 -0
  5. data/benchmark/select.rb +352 -0
  6. data/lib/lore.rb +22 -8
  7. data/lib/lore/adapters/context.rb +64 -0
  8. data/lib/lore/adapters/postgres-pr.rb +6 -0
  9. data/lib/lore/adapters/postgres-pr/connection.rb +93 -0
  10. data/lib/lore/adapters/postgres-pr/result.rb +63 -0
  11. data/lib/lore/{types.rb → adapters/postgres-pr/types.rb} +36 -0
  12. data/lib/lore/adapters/postgres.rb +24 -0
  13. data/lib/lore/adapters/postgres/connection.rb +81 -0
  14. data/lib/lore/adapters/postgres/result.rb +82 -0
  15. data/lib/lore/adapters/postgres/types.rb +91 -0
  16. data/lib/lore/bits.rb +18 -0
  17. data/lib/lore/cache/abstract_entity_cache.rb +2 -1
  18. data/lib/lore/cache/cacheable.rb +12 -177
  19. data/lib/lore/cache/memcache_entity_cache.rb +89 -0
  20. data/lib/lore/cache/memory_entity_cache.rb +77 -0
  21. data/lib/lore/cache/mmap_entity_cache.rb +2 -2
  22. data/lib/lore/cache/mmap_entity_cache_bork.rb +86 -0
  23. data/lib/lore/clause.rb +107 -35
  24. data/lib/lore/{exception → exceptions}/ambiguous_attribute.rb +2 -2
  25. data/lib/lore/{exception → exceptions}/cache_exception.rb +1 -1
  26. data/lib/lore/exceptions/database_exception.rb +16 -0
  27. data/lib/lore/{exception/invalid_parameter.rb → exceptions/invalid_field.rb} +7 -4
  28. data/lib/lore/exceptions/unknown_type.rb +18 -0
  29. data/lib/lore/exceptions/validation_failure.rb +71 -0
  30. data/lib/lore/gui/form_generator.rb +109 -60
  31. data/lib/lore/gui/lore_model_select_field.rb +1 -0
  32. data/lib/lore/migration.rb +84 -25
  33. data/lib/lore/model.rb +3 -18
  34. data/lib/lore/{aspect.rb → model/aspect.rb} +0 -0
  35. data/lib/lore/model/associations.rb +225 -0
  36. data/lib/lore/model/attribute_settings.rb +233 -0
  37. data/lib/lore/model/filters.rb +34 -0
  38. data/lib/lore/model/mockable.rb +62 -0
  39. data/lib/lore/{model_factory.rb → model/model_factory.rb} +68 -39
  40. data/lib/lore/model/model_instance.rb +382 -0
  41. data/lib/lore/{model_shortcuts.rb → model/model_shortcuts.rb} +7 -0
  42. data/lib/lore/model/polymorphic.rb +53 -0
  43. data/lib/lore/model/prepare.rb +97 -0
  44. data/lib/lore/model/table_accessor.rb +1016 -0
  45. data/lib/lore/query.rb +71 -0
  46. data/lib/lore/query_shortcuts.rb +43 -11
  47. data/lib/lore/strategies/table_delete.rb +115 -0
  48. data/lib/lore/strategies/table_insert.rb +146 -0
  49. data/lib/lore/strategies/table_select.rb +299 -0
  50. data/lib/lore/strategies/table_update.rb +155 -0
  51. data/lib/lore/validation/parameter_validator.rb +85 -26
  52. data/lib/lore/validation/type_validator.rb +34 -78
  53. data/{custom_models.rb → lore-0.9.2.gem} +0 -0
  54. data/lore.gemspec +26 -17
  55. data/spec/clause.rb +37 -0
  56. data/spec/fixtures/blank_models.rb +37 -0
  57. data/{test/model.rb → spec/fixtures/models.rb} +64 -41
  58. data/spec/fixtures/polymorphic_models.rb +68 -0
  59. data/spec/model_associations.rb +86 -0
  60. data/spec/model_create.rb +47 -0
  61. data/spec/model_definition.rb +151 -0
  62. data/spec/model_delete.rb +31 -0
  63. data/spec/model_inheritance.rb +50 -0
  64. data/spec/model_polymorphic.rb +85 -0
  65. data/spec/model_select.rb +101 -0
  66. data/spec/model_select_eager.rb +42 -0
  67. data/spec/model_union_select.rb +33 -0
  68. data/spec/model_update.rb +45 -0
  69. data/spec/model_validation.rb +20 -0
  70. data/spec/spec_db.sql +808 -0
  71. data/spec/spec_env.rb +19 -0
  72. data/spec/spec_helpers.rb +77 -0
  73. metadata +93 -82
  74. data/lib/lore/README.txt +0 -84
  75. data/lib/lore/behaviours/lockable.rb +0 -55
  76. data/lib/lore/behaviours/movable.rb +0 -72
  77. data/lib/lore/behaviours/paginated.rb +0 -31
  78. data/lib/lore/behaviours/versioned.rb +0 -36
  79. data/lib/lore/connection.rb +0 -152
  80. data/lib/lore/exception/invalid_klass_parameters.rb +0 -63
  81. data/lib/lore/exception/unknown_typecode.rb +0 -19
  82. data/lib/lore/result.rb +0 -119
  83. data/lib/lore/symbol.rb +0 -58
  84. data/lib/lore/table_accessor.rb +0 -1790
  85. data/lib/lore/table_deleter.rb +0 -116
  86. data/lib/lore/table_inserter.rb +0 -170
  87. data/lib/lore/table_instance.rb +0 -389
  88. data/lib/lore/table_selector.rb +0 -285
  89. data/lib/lore/table_updater.rb +0 -157
  90. data/lib/lore/validation.rb +0 -65
  91. data/lib/lore/validation/message.rb +0 -60
  92. data/lib/lore/validation/reason.rb +0 -52
  93. data/lore_test.log +0 -2366
  94. data/test/README +0 -31
  95. data/test/custom_models.rb +0 -18
  96. data/test/env.rb +0 -5
  97. data/test/prepare.rb +0 -37
  98. data/test/tc_aspect.rb +0 -58
  99. data/test/tc_cache.rb +0 -83
  100. data/test/tc_clause.rb +0 -104
  101. data/test/tc_deep_inheritance.rb +0 -49
  102. data/test/tc_factory.rb +0 -57
  103. data/test/tc_filter.rb +0 -37
  104. data/test/tc_form.rb +0 -32
  105. data/test/tc_model.rb +0 -140
  106. data/test/tc_prepare.rb +0 -44
  107. data/test/tc_refined_query.rb +0 -88
  108. data/test/tc_table_accessor.rb +0 -267
  109. data/test/tc_thread.rb +0 -100
  110. data/test/test_db.sql +0 -400
  111. data/test/test_lore.rb +0 -50
@@ -0,0 +1,42 @@
1
+
2
+ require 'spec_env'
3
+ include Lore::Spec_Fixtures::Models
4
+
5
+ describe(Lore::Table_Accessor) do
6
+ before do
7
+ end
8
+ it "provides eager loading of 1:1 relations" do
9
+ Lore::Connection.reset_query_count
10
+ # First query
11
+ car_1 = Car.find(1).with(Car.name == 'Ford').eager(Manufacturer).entity
12
+ # Second query
13
+ car_2 = Car.find(1, :eager => Manufacturer).with(Car.name == 'Ford').entity
14
+ # Third query
15
+ car_3 = Car.select(:eager => Manufacturer) { |c|
16
+ c.where(c.name == 'Ford')
17
+ c.limit(1)
18
+ }.first
19
+
20
+ Lore::Connection.num_queries.should == 3
21
+ car_1.manufacturer.should_be car_2.manufacturer
22
+ car_1.manufacturer.should_be car_3.manufacturer
23
+ end
24
+
25
+ it "provides eager loading of 1:n relations" do
26
+ Lore::Connection.reset_query_count
27
+ # Two queries
28
+ car_1 = Car.find(1).with(Car.name == 'Ford').eager(Owner).entity
29
+ # Two queries
30
+ car_2 = Car.find(1, :eager => Owner).with(Car.name == 'Ford').entity
31
+ # Two queries
32
+ car_3 = Car.select(:eager => Owner) { |c|
33
+ c.where(c.name == 'Ford')
34
+ c.limit(1)
35
+ }.first
36
+
37
+ Lore::Connection.num_queries.should == 6
38
+ car_1.owner_set.should_be car_2.owner_set
39
+ car_1.owner_set.should_be car_3.owner_set
40
+ end
41
+
42
+ end
@@ -0,0 +1,33 @@
1
+
2
+ require 'spec_env'
3
+ include Lore::Spec_Fixtures::Models
4
+ include Spec_Model_Select_Helpers
5
+
6
+ describe(Lore::Table_Accessor) do
7
+ before do
8
+ flush_test_data()
9
+ end
10
+
11
+ it "proved unions of result rows" do
12
+ 10.times {
13
+ Car.create(car_create_values(:num_seats => 4, :maxspeed => 170))
14
+ Car.create(car_create_values(:num_seats => 5, :maxspeed => 210))
15
+ Car.create(car_create_values(:num_seats => 3, :maxspeed => 210))
16
+ }
17
+
18
+ all_cars = 0
19
+ cars_with_4_seats = 0
20
+ cars_with_maxspeed_200 = 0
21
+ (Car.select { |c| c.where(c.num_seats == 4); } +
22
+ Car.select { |c| c.where(c.maxspeed >= 200); c.order_by(:num_seats) }).each { |car|
23
+ cars_with_4_seats +=1 if car.num_seats.to_i == 4
24
+ cars_with_maxspeed_200 +=1 if car.maxspeed.to_i >= 200
25
+ all_cars += 1
26
+ }
27
+ cars_with_4_seats.should == 10
28
+ cars_with_maxspeed_200.should == 20
29
+ all_cars.should == 30
30
+ end
31
+
32
+ end
33
+
@@ -0,0 +1,45 @@
1
+
2
+ require 'spec_env'
3
+ include Lore::Spec_Fixtures::Models
4
+
5
+ include Spec_Model_Select_Helpers
6
+
7
+ describe(Lore::Table_Accessor) do
8
+ before do
9
+ flush_test_data()
10
+ end
11
+
12
+ it "provides a DSL for updating models" do
13
+ car = Car.create(car_create_values)
14
+
15
+ Car.update { |c|
16
+ c.where(c.id == car.pkey)
17
+ c.set(:num_doors => 20)
18
+ }
19
+
20
+ car_sel = Car.load(:id => car.pkey)
21
+ car_sel.num_doors.should == 20
22
+ end
23
+
24
+ it "changes field values on #[:field_name] = value" do
25
+ car = Car.create(car_create_values(:num_doors => 4))
26
+ car[:num_doors] = 10
27
+ car.num_doors.should == 10
28
+ car.commit
29
+ car.num_doors.should == 10
30
+ car_sel = Car.load(:id => car.pkey)
31
+ car_sel.num_doors.should == 10
32
+ end
33
+
34
+ it "changes field values on #field_name = value" do
35
+ car = Car.create(car_create_values(:num_doors => 4))
36
+ car[:num_doors] = 10
37
+ car.num_doors.should == 10
38
+ car.commit
39
+ car.num_doors.should == 10
40
+ car.set_attribute_value(:num_doors, 10)
41
+ car_sel = Car.load(:id => car.pkey)
42
+ car_sel.num_doors.should == 10
43
+ end
44
+
45
+ end
@@ -0,0 +1,20 @@
1
+
2
+ require 'spec_env'
3
+ include Lore::Spec_Fixtures::Models
4
+
5
+ describe(Lore::Table_Accessor) do
6
+
7
+ before do
8
+ flush_test_data()
9
+ end
10
+
11
+ it "can validate required attribute values to be set" do
12
+ lambda { Vehicle.create() }.should raise_error(Lore::Exceptions::Validation_Failure)
13
+ lambda { Vehicle.create(:name => 'first') }.should raise_error(Lore::Exceptions::Validation_Failure)
14
+ lambda { Vehicle.create(:name => 'first',
15
+ :maxspeed => 120,
16
+ :num_seats => 4) }.should_not raise_error(Lore::Exceptions::Validation_Failure)
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,808 @@
1
+ --
2
+ -- PostgreSQL database dump
3
+ --
4
+
5
+ SET client_encoding = 'UTF8';
6
+ SET standard_conforming_strings = off;
7
+ SET check_function_bodies = false;
8
+ SET client_min_messages = warning;
9
+ SET escape_string_warning = off;
10
+
11
+ SET search_path = public, pg_catalog;
12
+
13
+ SET default_tablespace = '';
14
+
15
+ SET default_with_oids = false;
16
+
17
+ --
18
+ -- Name: asset; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
19
+ --
20
+
21
+ CREATE TABLE asset (
22
+ asset_id integer NOT NULL,
23
+ folder character varying(100) NOT NULL,
24
+ filename character varying(100) NOT NULL,
25
+ model character varying(100) NOT NULL
26
+ );
27
+
28
+
29
+ ALTER TABLE public.asset OWNER TO cuba;
30
+
31
+ --
32
+ -- Name: asset_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
33
+ --
34
+
35
+ CREATE SEQUENCE asset_id_seq
36
+ INCREMENT BY 1
37
+ NO MAXVALUE
38
+ NO MINVALUE
39
+ CACHE 1;
40
+
41
+
42
+ ALTER TABLE public.asset_id_seq OWNER TO cuba;
43
+
44
+ --
45
+ -- Name: autobot; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
46
+ --
47
+
48
+ CREATE TABLE autobot (
49
+ id integer NOT NULL,
50
+ car_id integer NOT NULL,
51
+ robot_id integer NOT NULL,
52
+ can_fly boolean DEFAULT false NOT NULL
53
+ );
54
+
55
+
56
+ ALTER TABLE public.autobot OWNER TO cuba;
57
+
58
+ --
59
+ -- Name: autobot_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
60
+ --
61
+
62
+ CREATE SEQUENCE autobot_id_seq
63
+ INCREMENT BY 1
64
+ NO MAXVALUE
65
+ NO MINVALUE
66
+ CACHE 1;
67
+
68
+
69
+ ALTER TABLE public.autobot_id_seq OWNER TO cuba;
70
+
71
+ --
72
+ -- Name: bike_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
73
+ --
74
+
75
+ CREATE SEQUENCE bike_id_seq
76
+ START WITH 1
77
+ INCREMENT BY 1
78
+ NO MAXVALUE
79
+ NO MINVALUE
80
+ CACHE 1;
81
+
82
+
83
+ ALTER TABLE public.bike_id_seq OWNER TO cuba;
84
+
85
+ --
86
+ -- Name: car; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
87
+ --
88
+
89
+ CREATE TABLE car (
90
+ id integer NOT NULL,
91
+ motorized_id integer NOT NULL,
92
+ car_type_id integer NOT NULL,
93
+ num_doors smallint NOT NULL
94
+ );
95
+
96
+
97
+ ALTER TABLE public.car OWNER TO cuba;
98
+
99
+ --
100
+ -- Name: car_features; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
101
+ --
102
+
103
+ CREATE TABLE car_features (
104
+ id integer NOT NULL,
105
+ car_id integer NOT NULL,
106
+ color character varying(10) NOT NULL
107
+ );
108
+
109
+
110
+ ALTER TABLE public.car_features OWNER TO cuba;
111
+
112
+ --
113
+ -- Name: car_features_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
114
+ --
115
+
116
+ CREATE SEQUENCE car_features_id_seq
117
+ INCREMENT BY 1
118
+ NO MAXVALUE
119
+ NO MINVALUE
120
+ CACHE 1;
121
+
122
+
123
+ ALTER TABLE public.car_features_id_seq OWNER TO cuba;
124
+
125
+ --
126
+ -- Name: car_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
127
+ --
128
+
129
+ CREATE SEQUENCE car_id_seq
130
+ INCREMENT BY 1
131
+ NO MAXVALUE
132
+ NO MINVALUE
133
+ CACHE 1;
134
+
135
+
136
+ ALTER TABLE public.car_id_seq OWNER TO cuba;
137
+
138
+ --
139
+ -- Name: car_type; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
140
+ --
141
+
142
+ CREATE TABLE car_type (
143
+ car_type_id integer NOT NULL,
144
+ type_name character varying(100) NOT NULL
145
+ );
146
+
147
+
148
+ ALTER TABLE public.car_type OWNER TO cuba;
149
+
150
+ --
151
+ -- Name: car_type_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
152
+ --
153
+
154
+ CREATE SEQUENCE car_type_id_seq
155
+ INCREMENT BY 1
156
+ NO MAXVALUE
157
+ NO MINVALUE
158
+ CACHE 1;
159
+
160
+
161
+ ALTER TABLE public.car_type_id_seq OWNER TO cuba;
162
+
163
+ --
164
+ -- Name: convertible; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
165
+ --
166
+
167
+ CREATE TABLE convertible (
168
+ id integer NOT NULL,
169
+ car_id integer NOT NULL
170
+ );
171
+
172
+
173
+ ALTER TABLE public.convertible OWNER TO cuba;
174
+
175
+ --
176
+ -- Name: convertible_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
177
+ --
178
+
179
+ CREATE SEQUENCE convertible_id_seq
180
+ START WITH 1
181
+ INCREMENT BY 1
182
+ NO MAXVALUE
183
+ NO MINVALUE
184
+ CACHE 1;
185
+
186
+
187
+ ALTER TABLE public.convertible_id_seq OWNER TO cuba;
188
+
189
+ --
190
+ -- Name: document_asset; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
191
+ --
192
+
193
+ CREATE TABLE document_asset (
194
+ id integer NOT NULL,
195
+ asset_id integer NOT NULL,
196
+ doctype character varying(10),
197
+ author character varying(30)
198
+ );
199
+
200
+
201
+ ALTER TABLE public.document_asset OWNER TO cuba;
202
+
203
+ --
204
+ -- Name: document_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
205
+ --
206
+
207
+ CREATE SEQUENCE document_asset_id_seq
208
+ INCREMENT BY 1
209
+ NO MAXVALUE
210
+ NO MINVALUE
211
+ CACHE 1;
212
+
213
+
214
+ ALTER TABLE public.document_asset_id_seq OWNER TO cuba;
215
+
216
+ --
217
+ -- Name: garage; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
218
+ --
219
+
220
+ CREATE TABLE garage (
221
+ garage_id integer NOT NULL,
222
+ vehicle_id integer NOT NULL
223
+ );
224
+
225
+
226
+ ALTER TABLE public.garage OWNER TO cuba;
227
+
228
+ --
229
+ -- Name: garage_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
230
+ --
231
+
232
+ CREATE SEQUENCE garage_id_seq
233
+ INCREMENT BY 1
234
+ NO MAXVALUE
235
+ NO MINVALUE
236
+ CACHE 1;
237
+
238
+
239
+ ALTER TABLE public.garage_id_seq OWNER TO cuba;
240
+
241
+ --
242
+ -- Name: manuf_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
243
+ --
244
+
245
+ CREATE SEQUENCE manuf_id_seq
246
+ INCREMENT BY 1
247
+ NO MAXVALUE
248
+ NO MINVALUE
249
+ CACHE 1;
250
+
251
+
252
+ ALTER TABLE public.manuf_id_seq OWNER TO cuba;
253
+
254
+ --
255
+ -- Name: manufacturer; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
256
+ --
257
+
258
+ CREATE TABLE manufacturer (
259
+ manuf_id integer NOT NULL,
260
+ name character varying(100) NOT NULL
261
+ );
262
+
263
+
264
+ ALTER TABLE public.manufacturer OWNER TO cuba;
265
+
266
+ --
267
+ -- Name: media_asset; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
268
+ --
269
+
270
+ CREATE TABLE media_asset (
271
+ id integer NOT NULL,
272
+ asset_id integer NOT NULL,
273
+ media_type character varying(10) NOT NULL
274
+ );
275
+
276
+
277
+ ALTER TABLE public.media_asset OWNER TO cuba;
278
+
279
+ --
280
+ -- Name: media_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
281
+ --
282
+
283
+ CREATE SEQUENCE media_asset_id_seq
284
+ INCREMENT BY 1
285
+ NO MAXVALUE
286
+ NO MINVALUE
287
+ CACHE 1;
288
+
289
+
290
+ ALTER TABLE public.media_asset_id_seq OWNER TO cuba;
291
+
292
+ --
293
+ -- Name: motor; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
294
+ --
295
+
296
+ CREATE TABLE motor (
297
+ id integer NOT NULL,
298
+ motor_name character varying(30) NOT NULL,
299
+ kw integer NOT NULL
300
+ );
301
+
302
+
303
+ ALTER TABLE public.motor OWNER TO cuba;
304
+
305
+ --
306
+ -- Name: motor_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
307
+ --
308
+
309
+ CREATE SEQUENCE motor_id_seq
310
+ INCREMENT BY 1
311
+ NO MAXVALUE
312
+ NO MINVALUE
313
+ CACHE 1;
314
+
315
+
316
+ ALTER TABLE public.motor_id_seq OWNER TO cuba;
317
+
318
+ --
319
+ -- Name: motorbike; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
320
+ --
321
+
322
+ CREATE TABLE motorbike (
323
+ bike_id integer NOT NULL,
324
+ vehicle_id integer NOT NULL,
325
+ is_chopper boolean NOT NULL
326
+ );
327
+
328
+
329
+ ALTER TABLE public.motorbike OWNER TO cuba;
330
+
331
+ --
332
+ -- Name: motorized; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
333
+ --
334
+
335
+ CREATE TABLE motorized (
336
+ vehicle_id integer NOT NULL,
337
+ motor_id integer NOT NULL,
338
+ id integer NOT NULL
339
+ );
340
+
341
+
342
+ ALTER TABLE public.motorized OWNER TO cuba;
343
+
344
+ --
345
+ -- Name: motorized_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
346
+ --
347
+
348
+ CREATE SEQUENCE motorized_id_seq
349
+ INCREMENT BY 1
350
+ NO MAXVALUE
351
+ NO MINVALUE
352
+ CACHE 1;
353
+
354
+
355
+ ALTER TABLE public.motorized_id_seq OWNER TO cuba;
356
+
357
+ --
358
+ -- Name: other_id_1_seq; Type: SEQUENCE; Schema: public; Owner: cuba
359
+ --
360
+
361
+ CREATE SEQUENCE other_id_1_seq
362
+ START WITH 1
363
+ INCREMENT BY 1
364
+ NO MAXVALUE
365
+ NO MINVALUE
366
+ CACHE 1;
367
+
368
+
369
+ ALTER TABLE public.other_id_1_seq OWNER TO cuba;
370
+
371
+ --
372
+ -- Name: owner; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
373
+ --
374
+
375
+ CREATE TABLE owner (
376
+ owner_id integer NOT NULL,
377
+ name character varying(200) NOT NULL
378
+ );
379
+
380
+
381
+ ALTER TABLE public.owner OWNER TO cuba;
382
+
383
+ --
384
+ -- Name: owner_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
385
+ --
386
+
387
+ CREATE SEQUENCE owner_id_seq
388
+ INCREMENT BY 1
389
+ NO MAXVALUE
390
+ NO MINVALUE
391
+ CACHE 1;
392
+
393
+
394
+ ALTER TABLE public.owner_id_seq OWNER TO cuba;
395
+
396
+ --
397
+ -- Name: robot; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
398
+ --
399
+
400
+ CREATE TABLE robot (
401
+ id integer NOT NULL,
402
+ robot_class character varying(30) NOT NULL,
403
+ motor_type character varying(20),
404
+ locomotion_type character varying(40)
405
+ );
406
+
407
+
408
+ ALTER TABLE public.robot OWNER TO cuba;
409
+
410
+ --
411
+ -- Name: robot_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
412
+ --
413
+
414
+ CREATE SEQUENCE robot_id_seq
415
+ INCREMENT BY 1
416
+ NO MAXVALUE
417
+ NO MINVALUE
418
+ CACHE 1;
419
+
420
+
421
+ ALTER TABLE public.robot_id_seq OWNER TO cuba;
422
+
423
+ --
424
+ -- Name: trailer; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
425
+ --
426
+
427
+ CREATE TABLE trailer (
428
+ trailer_id integer NOT NULL,
429
+ car_id integer NOT NULL,
430
+ maxweight integer NOT NULL
431
+ );
432
+
433
+
434
+ ALTER TABLE public.trailer OWNER TO cuba;
435
+
436
+ --
437
+ -- Name: trailer_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
438
+ --
439
+
440
+ CREATE SEQUENCE trailer_id_seq
441
+ START WITH 1
442
+ INCREMENT BY 1
443
+ NO MAXVALUE
444
+ NO MINVALUE
445
+ CACHE 1;
446
+
447
+
448
+ ALTER TABLE public.trailer_id_seq OWNER TO cuba;
449
+
450
+ --
451
+ -- Name: vehicle; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
452
+ --
453
+
454
+ CREATE TABLE vehicle (
455
+ id integer NOT NULL,
456
+ manuf_id integer,
457
+ num_seats smallint NOT NULL,
458
+ maxspeed integer NOT NULL,
459
+ name character varying(100) NOT NULL,
460
+ owner_id integer
461
+ );
462
+
463
+
464
+ ALTER TABLE public.vehicle OWNER TO cuba;
465
+
466
+ --
467
+ -- Name: vehicle_id_seq; Type: SEQUENCE; Schema: public; Owner: cuba
468
+ --
469
+
470
+ CREATE SEQUENCE vehicle_id_seq
471
+ INCREMENT BY 1
472
+ NO MAXVALUE
473
+ NO MINVALUE
474
+ CACHE 1;
475
+
476
+
477
+ ALTER TABLE public.vehicle_id_seq OWNER TO cuba;
478
+
479
+ --
480
+ -- Name: vehicle_owner; Type: TABLE; Schema: public; Owner: cuba; Tablespace:
481
+ --
482
+
483
+ CREATE TABLE vehicle_owner (
484
+ owner_id integer NOT NULL,
485
+ vehicle_id integer NOT NULL
486
+ );
487
+
488
+
489
+ ALTER TABLE public.vehicle_owner OWNER TO cuba;
490
+
491
+ --
492
+ -- Name: public; Type: ACL; Schema: -; Owner: postgres
493
+ --
494
+
495
+ REVOKE ALL ON SCHEMA public FROM PUBLIC;
496
+ REVOKE ALL ON SCHEMA public FROM postgres;
497
+ GRANT ALL ON SCHEMA public TO postgres;
498
+ GRANT ALL ON SCHEMA public TO PUBLIC;
499
+
500
+
501
+ --
502
+ -- Name: asset; Type: ACL; Schema: public; Owner: cuba
503
+ --
504
+
505
+ REVOKE ALL ON TABLE asset FROM PUBLIC;
506
+ REVOKE ALL ON TABLE asset FROM cuba;
507
+ GRANT ALL ON TABLE asset TO cuba;
508
+ GRANT ALL ON TABLE asset TO cuba;
509
+
510
+
511
+ --
512
+ -- Name: asset_id_seq; Type: ACL; Schema: public; Owner: cuba
513
+ --
514
+
515
+ REVOKE ALL ON SEQUENCE asset_id_seq FROM PUBLIC;
516
+ REVOKE ALL ON SEQUENCE asset_id_seq FROM cuba;
517
+ GRANT ALL ON SEQUENCE asset_id_seq TO cuba;
518
+ GRANT ALL ON SEQUENCE asset_id_seq TO cuba;
519
+
520
+
521
+ --
522
+ -- Name: autobot; Type: ACL; Schema: public; Owner: cuba
523
+ --
524
+
525
+ REVOKE ALL ON TABLE autobot FROM PUBLIC;
526
+ REVOKE ALL ON TABLE autobot FROM cuba;
527
+ GRANT ALL ON TABLE autobot TO cuba;
528
+ GRANT ALL ON TABLE autobot TO cuba;
529
+
530
+
531
+ --
532
+ -- Name: autobot_id_seq; Type: ACL; Schema: public; Owner: cuba
533
+ --
534
+
535
+ REVOKE ALL ON SEQUENCE autobot_id_seq FROM PUBLIC;
536
+ REVOKE ALL ON SEQUENCE autobot_id_seq FROM cuba;
537
+ GRANT ALL ON SEQUENCE autobot_id_seq TO cuba;
538
+ GRANT ALL ON SEQUENCE autobot_id_seq TO cuba;
539
+
540
+
541
+ --
542
+ -- Name: bike_id_seq; Type: ACL; Schema: public; Owner: cuba
543
+ --
544
+
545
+ REVOKE ALL ON SEQUENCE bike_id_seq FROM PUBLIC;
546
+ REVOKE ALL ON SEQUENCE bike_id_seq FROM cuba;
547
+ GRANT ALL ON SEQUENCE bike_id_seq TO cuba;
548
+
549
+
550
+ --
551
+ -- Name: car; Type: ACL; Schema: public; Owner: cuba
552
+ --
553
+
554
+ REVOKE ALL ON TABLE car FROM PUBLIC;
555
+ REVOKE ALL ON TABLE car FROM cuba;
556
+ GRANT ALL ON TABLE car TO cuba;
557
+
558
+
559
+ --
560
+ -- Name: car_features; Type: ACL; Schema: public; Owner: cuba
561
+ --
562
+
563
+ REVOKE ALL ON TABLE car_features FROM PUBLIC;
564
+ REVOKE ALL ON TABLE car_features FROM cuba;
565
+ GRANT ALL ON TABLE car_features TO cuba;
566
+ GRANT ALL ON TABLE car_features TO cuba;
567
+
568
+
569
+ --
570
+ -- Name: car_features_id_seq; Type: ACL; Schema: public; Owner: cuba
571
+ --
572
+
573
+ REVOKE ALL ON SEQUENCE car_features_id_seq FROM PUBLIC;
574
+ REVOKE ALL ON SEQUENCE car_features_id_seq FROM cuba;
575
+ GRANT ALL ON SEQUENCE car_features_id_seq TO cuba;
576
+ GRANT ALL ON SEQUENCE car_features_id_seq TO cuba;
577
+
578
+
579
+ --
580
+ -- Name: car_id_seq; Type: ACL; Schema: public; Owner: cuba
581
+ --
582
+
583
+ REVOKE ALL ON SEQUENCE car_id_seq FROM PUBLIC;
584
+ REVOKE ALL ON SEQUENCE car_id_seq FROM cuba;
585
+ GRANT ALL ON SEQUENCE car_id_seq TO cuba;
586
+
587
+
588
+ --
589
+ -- Name: car_type; Type: ACL; Schema: public; Owner: cuba
590
+ --
591
+
592
+ REVOKE ALL ON TABLE car_type FROM PUBLIC;
593
+ REVOKE ALL ON TABLE car_type FROM cuba;
594
+ GRANT ALL ON TABLE car_type TO cuba;
595
+
596
+
597
+ --
598
+ -- Name: car_type_id_seq; Type: ACL; Schema: public; Owner: cuba
599
+ --
600
+
601
+ REVOKE ALL ON SEQUENCE car_type_id_seq FROM PUBLIC;
602
+ REVOKE ALL ON SEQUENCE car_type_id_seq FROM cuba;
603
+ GRANT ALL ON SEQUENCE car_type_id_seq TO cuba;
604
+
605
+
606
+ --
607
+ -- Name: convertible; Type: ACL; Schema: public; Owner: cuba
608
+ --
609
+
610
+ REVOKE ALL ON TABLE convertible FROM PUBLIC;
611
+ REVOKE ALL ON TABLE convertible FROM cuba;
612
+ GRANT ALL ON TABLE convertible TO cuba;
613
+
614
+
615
+ --
616
+ -- Name: convertible_id_seq; Type: ACL; Schema: public; Owner: cuba
617
+ --
618
+
619
+ REVOKE ALL ON SEQUENCE convertible_id_seq FROM PUBLIC;
620
+ REVOKE ALL ON SEQUENCE convertible_id_seq FROM cuba;
621
+ GRANT ALL ON SEQUENCE convertible_id_seq TO cuba;
622
+
623
+
624
+ --
625
+ -- Name: document_asset; Type: ACL; Schema: public; Owner: cuba
626
+ --
627
+
628
+ REVOKE ALL ON TABLE document_asset FROM PUBLIC;
629
+ REVOKE ALL ON TABLE document_asset FROM cuba;
630
+ GRANT ALL ON TABLE document_asset TO cuba;
631
+ GRANT ALL ON TABLE document_asset TO cuba;
632
+
633
+
634
+ --
635
+ -- Name: document_asset_id_seq; Type: ACL; Schema: public; Owner: cuba
636
+ --
637
+
638
+ REVOKE ALL ON SEQUENCE document_asset_id_seq FROM PUBLIC;
639
+ REVOKE ALL ON SEQUENCE document_asset_id_seq FROM cuba;
640
+ GRANT ALL ON SEQUENCE document_asset_id_seq TO cuba;
641
+ GRANT ALL ON SEQUENCE document_asset_id_seq TO cuba;
642
+
643
+
644
+ --
645
+ -- Name: garage; Type: ACL; Schema: public; Owner: cuba
646
+ --
647
+
648
+ REVOKE ALL ON TABLE garage FROM PUBLIC;
649
+ REVOKE ALL ON TABLE garage FROM cuba;
650
+ GRANT ALL ON TABLE garage TO cuba;
651
+
652
+
653
+ --
654
+ -- Name: garage_id_seq; Type: ACL; Schema: public; Owner: cuba
655
+ --
656
+
657
+ REVOKE ALL ON SEQUENCE garage_id_seq FROM PUBLIC;
658
+ REVOKE ALL ON SEQUENCE garage_id_seq FROM cuba;
659
+ GRANT ALL ON SEQUENCE garage_id_seq TO cuba;
660
+
661
+
662
+ --
663
+ -- Name: manuf_id_seq; Type: ACL; Schema: public; Owner: cuba
664
+ --
665
+
666
+ REVOKE ALL ON SEQUENCE manuf_id_seq FROM PUBLIC;
667
+ REVOKE ALL ON SEQUENCE manuf_id_seq FROM cuba;
668
+ GRANT ALL ON SEQUENCE manuf_id_seq TO cuba;
669
+
670
+
671
+ --
672
+ -- Name: manufacturer; Type: ACL; Schema: public; Owner: cuba
673
+ --
674
+
675
+ REVOKE ALL ON TABLE manufacturer FROM PUBLIC;
676
+ REVOKE ALL ON TABLE manufacturer FROM cuba;
677
+ GRANT ALL ON TABLE manufacturer TO cuba;
678
+
679
+
680
+ --
681
+ -- Name: media_asset; Type: ACL; Schema: public; Owner: cuba
682
+ --
683
+
684
+ REVOKE ALL ON TABLE media_asset FROM PUBLIC;
685
+ REVOKE ALL ON TABLE media_asset FROM cuba;
686
+ GRANT ALL ON TABLE media_asset TO cuba;
687
+ GRANT ALL ON TABLE media_asset TO cuba;
688
+
689
+
690
+ --
691
+ -- Name: media_asset_id_seq; Type: ACL; Schema: public; Owner: cuba
692
+ --
693
+
694
+ REVOKE ALL ON SEQUENCE media_asset_id_seq FROM PUBLIC;
695
+ REVOKE ALL ON SEQUENCE media_asset_id_seq FROM cuba;
696
+ GRANT ALL ON SEQUENCE media_asset_id_seq TO cuba;
697
+ GRANT ALL ON SEQUENCE media_asset_id_seq TO cuba;
698
+
699
+
700
+ --
701
+ -- Name: motor; Type: ACL; Schema: public; Owner: cuba
702
+ --
703
+
704
+ REVOKE ALL ON TABLE motor FROM PUBLIC;
705
+ REVOKE ALL ON TABLE motor FROM cuba;
706
+ GRANT ALL ON TABLE motor TO cuba;
707
+ GRANT ALL ON TABLE motor TO cuba;
708
+
709
+
710
+ --
711
+ -- Name: motor_id_seq; Type: ACL; Schema: public; Owner: cuba
712
+ --
713
+
714
+ REVOKE ALL ON SEQUENCE motor_id_seq FROM PUBLIC;
715
+ REVOKE ALL ON SEQUENCE motor_id_seq FROM cuba;
716
+ GRANT ALL ON SEQUENCE motor_id_seq TO cuba;
717
+ GRANT ALL ON SEQUENCE motor_id_seq TO cuba;
718
+
719
+
720
+ --
721
+ -- Name: motorbike; Type: ACL; Schema: public; Owner: cuba
722
+ --
723
+
724
+ REVOKE ALL ON TABLE motorbike FROM PUBLIC;
725
+ REVOKE ALL ON TABLE motorbike FROM cuba;
726
+ GRANT ALL ON TABLE motorbike TO cuba;
727
+
728
+
729
+ --
730
+ -- Name: motorized; Type: ACL; Schema: public; Owner: cuba
731
+ --
732
+
733
+ REVOKE ALL ON TABLE motorized FROM PUBLIC;
734
+ REVOKE ALL ON TABLE motorized FROM cuba;
735
+ GRANT ALL ON TABLE motorized TO cuba;
736
+ GRANT ALL ON TABLE motorized TO cuba;
737
+
738
+
739
+ --
740
+ -- Name: motorized_id_seq; Type: ACL; Schema: public; Owner: cuba
741
+ --
742
+
743
+ REVOKE ALL ON SEQUENCE motorized_id_seq FROM PUBLIC;
744
+ REVOKE ALL ON SEQUENCE motorized_id_seq FROM cuba;
745
+ GRANT ALL ON SEQUENCE motorized_id_seq TO cuba;
746
+ GRANT ALL ON SEQUENCE motorized_id_seq TO cuba;
747
+
748
+
749
+ --
750
+ -- Name: robot; Type: ACL; Schema: public; Owner: cuba
751
+ --
752
+
753
+ REVOKE ALL ON TABLE robot FROM PUBLIC;
754
+ REVOKE ALL ON TABLE robot FROM cuba;
755
+ GRANT ALL ON TABLE robot TO cuba;
756
+ GRANT ALL ON TABLE robot TO cuba;
757
+
758
+
759
+ --
760
+ -- Name: robot_id_seq; Type: ACL; Schema: public; Owner: cuba
761
+ --
762
+
763
+ REVOKE ALL ON SEQUENCE robot_id_seq FROM PUBLIC;
764
+ REVOKE ALL ON SEQUENCE robot_id_seq FROM cuba;
765
+ GRANT ALL ON SEQUENCE robot_id_seq TO cuba;
766
+ GRANT ALL ON SEQUENCE robot_id_seq TO cuba;
767
+
768
+
769
+ --
770
+ -- Name: trailer; Type: ACL; Schema: public; Owner: cuba
771
+ --
772
+
773
+ REVOKE ALL ON TABLE trailer FROM PUBLIC;
774
+ REVOKE ALL ON TABLE trailer FROM cuba;
775
+ GRANT ALL ON TABLE trailer TO cuba;
776
+
777
+
778
+ --
779
+ -- Name: trailer_id_seq; Type: ACL; Schema: public; Owner: cuba
780
+ --
781
+
782
+ REVOKE ALL ON SEQUENCE trailer_id_seq FROM PUBLIC;
783
+ REVOKE ALL ON SEQUENCE trailer_id_seq FROM cuba;
784
+ GRANT ALL ON SEQUENCE trailer_id_seq TO cuba;
785
+
786
+
787
+ --
788
+ -- Name: vehicle; Type: ACL; Schema: public; Owner: cuba
789
+ --
790
+
791
+ REVOKE ALL ON TABLE vehicle FROM PUBLIC;
792
+ REVOKE ALL ON TABLE vehicle FROM cuba;
793
+ GRANT ALL ON TABLE vehicle TO cuba;
794
+
795
+
796
+ --
797
+ -- Name: vehicle_id_seq; Type: ACL; Schema: public; Owner: cuba
798
+ --
799
+
800
+ REVOKE ALL ON SEQUENCE vehicle_id_seq FROM PUBLIC;
801
+ REVOKE ALL ON SEQUENCE vehicle_id_seq FROM cuba;
802
+ GRANT ALL ON SEQUENCE vehicle_id_seq TO cuba;
803
+
804
+
805
+ --
806
+ -- PostgreSQL database dump complete
807
+ --
808
+